KieronQuinn / Smartspacer

Smartspacer is a customisable widget for Android, but with a difference: It can upgrade the built in At a Glance on Pixels - without root!
GNU General Public License v3.0
1.84k stars 38 forks source link

Smartspacer incorrectly repositions notifications on lock screen #133

Closed harshil21 closed 6 months ago

harshil21 commented 6 months ago

Description

I'm using Smartspacer's native integration with the Pixel Launcher on my pixel 8 pro, and recently noticed that some new update (unsure if it was Smartspacer/December feature drop) caused all incoming notifications on the lock screen/AOD to be positioned right at the top of the screen.

Screenshot_20240113-170459~2

Smartspacer version: 1.5.1 Android: 14 - QPR1 Enhanced Mode ON, Native Smartspace ON, Expanded Smartspace ON

Dumped Targets and actions ``` ===================== Merged Targets: ===================== SmartspaceTarget(smartspaceTargetId=!blank_915504ae-e158-408d-bf52-c9e18d88f499, headerAction=SmartspaceAction(id=WEATHER, icon=Icon(typ=BITMAP size=192x192), title=1°C, subtitle=1°C, contentDescription=Partly cloudy, pendingIntent=null, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, userHandle=UserHandle{0}, extras=Bundle[{description=Partly cloudy, explanation_intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.google.android.googlequicksearchbox/com.google.android.apps.search.assistant.verticals.ambient.smartspace.trampolineactivity.ExportedSmartspaceTrampolineActivity (has extras) }, is_gaia_linked_data=true, use_celsius=true, state=6, temperature=1, subcardType=1}], subItemInfo=SubItemInfo(text=Text(text=1°C, truncateAtType=END, maxLines=1), icon=Icon(icon=Icon(typ=BITMAP size=192x192), contentDescription=null, shouldTint=false), tapAction=TapAction(id=WEATHER, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, pendingIntent=null, extras=Bundle[{description=Partly cloudy, feedback_intent=null, explanation_intent=Supplier{Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.google.android.googlequicksearchbox/com.google.android.apps.search.assistant.verticals.ambient.smartspace.trampolineactivity.ExportedSmartspaceTrampolineActivity (has extras) }}, is_gaia_linked_data=true, use_celsius=true, state=6, temperature=1}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), limitToSurfaces=[HOMESCREEN], skipPendingIntent=false), baseAction=SmartspaceAction(id=WEATHER-569377244_base, icon=null, title=· Today 16° / 1° · Partly cloudy, subtitle=null, contentDescription=null, pendingIntent=null, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, userHandle=UserHandle{0}, extras=Bundle[{subcardType=1}], subItemInfo=SubItemInfo(text=Text(text=· Today 16° / 1° · Partly cloudy, truncateAtType=END, maxLines=1), icon=null, tapAction=TapAction(id=, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, pendingIntent=null, extras=Bundle[{}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=SubItemLoggingInfo(featureType=54, instanceId=886, packageName=)), limitToSurfaces=[HOMESCREEN], skipPendingIntent=false), creationTimeMillis=1705283308672, expiryTimeMillis=9223372036854775807, score=0.0, actionChips=[], iconGrid=[], featureType=1, isSensitive=false, shouldShowExpanded=false, sourceNotificationKey=null, componentName=ComponentInfo{package_name/class_name}, userHandle=UserHandle{0}, associatedSmartspaceTargetId=null, sliceUri=null, widget=null, templateData=BasicTemplateData(layoutWeight=0, primaryItem=null, subtitleItem=SubItemInfo(text=Text(text=1°C, truncateAtType=END, maxLines=1), icon=Icon(icon=Icon(typ=BITMAP size=192x192), contentDescription=null, shouldTint=false), tapAction=TapAction(id=WEATHER, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, pendingIntent=null, extras=Bundle[{description=Partly cloudy, feedback_intent=null, explanation_intent=Supplier{Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.google.android.googlequicksearchbox/com.google.android.apps.search.assistant.verticals.ambient.smartspace.trampolineactivity.ExportedSmartspaceTrampolineActivity (has extras) }}, is_gaia_linked_data=true, use_celsius=true, state=6, temperature=1}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), subtitleSupplementalItem=SubItemInfo(text=Text(text=· Today 16° / 1° · Partly cloudy, truncateAtType=END, maxLines=1), icon=null, tapAction=TapAction(id=, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, pendingIntent=null, extras=Bundle[{}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=SubItemLoggingInfo(featureType=54, instanceId=886, packageName=)), supplementalAlarmItem=null, supplementalLineItem=null), expandedState=null, canBeDismissed=false, canTakeTwoComplications=false, hideIfNoComplications=false, limitToSurfaces=[]) SmartspaceTarget(smartspaceTargetId=!blank_fe397f64-a9e9-41e8-aac4-5ca4f15db47f, headerAction=SmartspaceAction(id=smartspacer_com.kieronquinn.app.smartspacer_digital_wellbeing, icon=Icon(typ=RESOURCE pkg=com.kieronquinn.app.smartspacer id=0x7f080146), title=, subtitle=3h 9m, contentDescription=null, pendingIntent=PendingIntent{9501460: android.os.BinderProxy@f8e1d19}, intent=null, userHandle=UserHandle{0}, extras=Bundle[{hide_title_on_aod=true}], subItemInfo=SubItemInfo(text=Text(text=3h 9m, truncateAtType=END, maxLines=1), icon=Icon(icon=Icon(typ=RESOURCE pkg=com.kieronquinn.app.smartspacer id=0x7f080146), contentDescription=null, shouldTint=true), tapAction=TapAction(id=01fcbed6-484a-48b5-baff-c02b6e22805a, intent=null, pendingIntent=PendingIntent{9501460: android.os.BinderProxy@f8e1d19}, extras=Bundle[{}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), limitToSurfaces=[], skipPendingIntent=false), baseAction=SmartspaceAction(id=smartspacer_com.kieronquinn.app.smartspacer.plugins.datausage_39d3be8e-c296-4855-b523-74b06c5f5d27_data_usage_at_1705282420645, icon=Icon(typ=RESOURCE pkg=com.kieronquinn.app.smartspacer.plugins.datausage id=0x7f07009a), title=, subtitle=2.94 GB, contentDescription=null, pendingIntent=null, intent=Intent { act=android.settings.DATA_USAGE_SETTINGS }, userHandle=UserHandle{0}, extras=Bundle[{}], subItemInfo=SubItemInfo(text=Text(text=2.94 GB, truncateAtType=END, maxLines=1), icon=Icon(icon=Icon(typ=RESOURCE pkg=com.kieronquinn.app.smartspacer.plugins.datausage id=0x7f07009a), contentDescription=null, shouldTint=true), tapAction=TapAction(id=2de8e62c-066c-4aef-bd5a-bc3b2bb5539d, intent=Intent { act=android.settings.DATA_USAGE_SETTINGS }, pendingIntent=null, extras=Bundle[EMPTY_PARCEL], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), limitToSurfaces=[], skipPendingIntent=false), creationTimeMillis=1705283308672, expiryTimeMillis=9223372036854775807, score=0.0, actionChips=[], iconGrid=[], featureType=1, isSensitive=false, shouldShowExpanded=false, sourceNotificationKey=null, componentName=ComponentInfo{package_name/class_name}, userHandle=UserHandle{0}, associatedSmartspaceTargetId=null, sliceUri=null, widget=null, templateData=BasicTemplateData(layoutWeight=0, primaryItem=null, subtitleItem=SubItemInfo(text=Text(text=3h 9m, truncateAtType=END, maxLines=1), icon=Icon(icon=Icon(typ=RESOURCE pkg=com.kieronquinn.app.smartspacer id=0x7f080146), contentDescription=null, shouldTint=true), tapAction=TapAction(id=01fcbed6-484a-48b5-baff-c02b6e22805a, intent=null, pendingIntent=PendingIntent{9501460: android.os.BinderProxy@f8e1d19}, extras=Bundle[{}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), subtitleSupplementalItem=SubItemInfo(text=Text(text=2.94 GB, truncateAtType=END, maxLines=1), icon=Icon(icon=Icon(typ=RESOURCE pkg=com.kieronquinn.app.smartspacer.plugins.datausage id=0x7f07009a), contentDescription=null, shouldTint=true), tapAction=TapAction(id=2de8e62c-066c-4aef-bd5a-bc3b2bb5539d, intent=Intent { act=android.settings.DATA_USAGE_SETTINGS }, pendingIntent=null, extras=Bundle[EMPTY_PARCEL], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), supplementalAlarmItem=null, supplementalLineItem=null), expandedState=null, canBeDismissed=false, canTakeTwoComplications=false, hideIfNoComplications=false, limitToSurfaces=[]) ===================== System Home Targets: ===================== SmartspaceTarget(smartspaceTargetId=WEATHER-569377244, headerAction=SmartspaceAction(id=WEATHER, icon=Icon(typ=BITMAP size=192x192), title=1°C, subtitle=1°C, contentDescription=Partly cloudy, pendingIntent=null, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, userHandle=UserHandle{0}, extras=Bundle[{description=Partly cloudy, feedback_intent=null, explanation_intent=Supplier{Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.google.android.googlequicksearchbox/com.google.android.apps.search.assistant.verticals.ambient.smartspace.trampolineactivity.ExportedSmartspaceTrampolineActivity (has extras) }}, is_gaia_linked_data=true, use_celsius=true, state=6, temperature=1}], subItemInfo=SubItemInfo(text=Text(text=1°C, truncateAtType=END, maxLines=1), icon=Icon(icon=Icon(typ=BITMAP size=192x192), contentDescription=null, shouldTint=false), tapAction=TapAction(id=WEATHER, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, pendingIntent=null, extras=Bundle[{description=Partly cloudy, feedback_intent=null, explanation_intent=Supplier{Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.google.android.googlequicksearchbox/com.google.android.apps.search.assistant.verticals.ambient.smartspace.trampolineactivity.ExportedSmartspaceTrampolineActivity (has extras) }}, is_gaia_linked_data=true, use_celsius=true, state=6, temperature=1}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), limitToSurfaces=[], skipPendingIntent=false), baseAction=SmartspaceAction(id=, icon=null, title=, subtitle=, contentDescription=, pendingIntent=null, intent=null, userHandle=UserHandle{0}, extras=Bundle[{description=Partly cloudy, feedback_intent=null, explanation_intent=Supplier{Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.google.android.googlequicksearchbox/com.google.android.apps.search.assistant.verticals.ambient.smartspace.trampolineactivity.ExportedSmartspaceTrampolineActivity (has extras) }}, is_gaia_linked_data=true, use_celsius=true, state=6, temperature=1}], subItemInfo=SubItemInfo(text=Text(text=, truncateAtType=END, maxLines=1), icon=null, tapAction=TapAction(id=, intent=null, pendingIntent=null, extras=Bundle[{description=Partly cloudy, feedback_intent=null, explanation_intent=Supplier{Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.google.android.googlequicksearchbox/com.google.android.apps.search.assistant.verticals.ambient.smartspace.trampolineactivity.ExportedSmartspaceTrampolineActivity (has extras) }}, is_gaia_linked_data=true, use_celsius=true, state=6, temperature=1}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), limitToSurfaces=[], skipPendingIntent=false), creationTimeMillis=1705060800000, expiryTimeMillis=1705064400000, score=0.0, actionChips=[], iconGrid=[], featureType=1, isSensitive=false, shouldShowExpanded=false, sourceNotificationKey=, componentName=ComponentInfo{package_name/class_name}, userHandle=UserHandle{0}, associatedSmartspaceTargetId=null, sliceUri=null, widget=null, templateData=BaseTemplateData (1) primaryItem=(SubItemInfo(text=Text(text=1°C, truncateAtType=END, maxLines=1), icon=Icon(icon=Icon(typ=BITMAP size=192x192), contentDescription=Partly cloudy, shouldTint=false), tapAction=TapAction(id=, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, pendingIntent=null, extras=Bundle[{}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=SubItemLoggingInfo(featureType=1, instanceId=2046, packageName=))) subtitleSupplementalItem=(SubItemInfo(text=Text(text=· Today 16° / 1° · Partly cloudy, truncateAtType=END, maxLines=1), icon=null, tapAction=TapAction(id=, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, pendingIntent=null, extras=Bundle[{}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=SubItemLoggingInfo(featureType=54, instanceId=886, packageName=))), expandedState=null, canBeDismissed=false, canTakeTwoComplications=false, hideIfNoComplications=false, limitToSurfaces=[]) ===================== System Lock Targets: ===================== SmartspaceTarget(smartspaceTargetId=WEATHER-569377244, headerAction=SmartspaceAction(id=WEATHER, icon=Icon(typ=BITMAP size=192x192), title=1°C, subtitle=1°C, contentDescription=Partly cloudy, pendingIntent=null, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, userHandle=UserHandle{0}, extras=Bundle[{description=Partly cloudy, feedback_intent=null, explanation_intent=Supplier{Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.google.android.googlequicksearchbox/com.google.android.apps.search.assistant.verticals.ambient.smartspace.trampolineactivity.ExportedSmartspaceTrampolineActivity (has extras) }}, is_gaia_linked_data=true, use_celsius=true, state=6, temperature=1}], subItemInfo=SubItemInfo(text=Text(text=1°C, truncateAtType=END, maxLines=1), icon=Icon(icon=Icon(typ=BITMAP size=192x192), contentDescription=null, shouldTint=false), tapAction=TapAction(id=WEATHER, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, pendingIntent=null, extras=Bundle[{description=Partly cloudy, feedback_intent=null, explanation_intent=Supplier{Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.google.android.googlequicksearchbox/com.google.android.apps.search.assistant.verticals.ambient.smartspace.trampolineactivity.ExportedSmartspaceTrampolineActivity (has extras) }}, is_gaia_linked_data=true, use_celsius=true, state=6, temperature=1}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), limitToSurfaces=[], skipPendingIntent=false), baseAction=SmartspaceAction(id=, icon=null, title=, subtitle=, contentDescription=, pendingIntent=null, intent=null, userHandle=UserHandle{0}, extras=Bundle[{description=Partly cloudy, feedback_intent=null, explanation_intent=Supplier{Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.google.android.googlequicksearchbox/com.google.android.apps.search.assistant.verticals.ambient.smartspace.trampolineactivity.ExportedSmartspaceTrampolineActivity (has extras) }}, is_gaia_linked_data=true, use_celsius=true, state=6, temperature=1}], subItemInfo=SubItemInfo(text=Text(text=, truncateAtType=END, maxLines=1), icon=null, tapAction=TapAction(id=, intent=null, pendingIntent=null, extras=Bundle[{description=Partly cloudy, feedback_intent=null, explanation_intent=Supplier{Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.google.android.googlequicksearchbox/com.google.android.apps.search.assistant.verticals.ambient.smartspace.trampolineactivity.ExportedSmartspaceTrampolineActivity (has extras) }}, is_gaia_linked_data=true, use_celsius=true, state=6, temperature=1}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), limitToSurfaces=[], skipPendingIntent=false), creationTimeMillis=1705060800000, expiryTimeMillis=1705064400000, score=0.0, actionChips=[], iconGrid=[], featureType=1, isSensitive=false, shouldShowExpanded=false, sourceNotificationKey=, componentName=ComponentInfo{package_name/class_name}, userHandle=UserHandle{0}, associatedSmartspaceTargetId=null, sliceUri=null, widget=null, templateData=BaseTemplateData (1) primaryItem=(SubItemInfo(text=Text(text=1°C, truncateAtType=END, maxLines=1), icon=Icon(icon=Icon(typ=BITMAP size=192x192), contentDescription=Partly cloudy, shouldTint=false), tapAction=TapAction(id=, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, pendingIntent=null, extras=Bundle[{}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=SubItemLoggingInfo(featureType=1, instanceId=2046, packageName=))), expandedState=null, canBeDismissed=false, canTakeTwoComplications=false, hideIfNoComplications=false, limitToSurfaces=[]) SmartspaceTarget(smartspaceTargetId=WEATHER-569377244-subitem, headerAction=SmartspaceAction(id=WEATHER_DAILY_FORECAST, icon=null, title=, subtitle=, contentDescription=, pendingIntent=null, intent=null, userHandle=UserHandle{0}, extras=Bundle[{}], subItemInfo=SubItemInfo(text=Text(text=, truncateAtType=END, maxLines=1), icon=null, tapAction=TapAction(id=WEATHER_DAILY_FORECAST, intent=null, pendingIntent=null, extras=Bundle[{}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), limitToSurfaces=[], skipPendingIntent=false), baseAction=SmartspaceAction(id=, icon=null, title=, subtitle=, contentDescription=, pendingIntent=null, intent=null, userHandle=UserHandle{0}, extras=Bundle[{}], subItemInfo=SubItemInfo(text=Text(text=, truncateAtType=END, maxLines=1), icon=null, tapAction=TapAction(id=, intent=null, pendingIntent=null, extras=Bundle[{}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=null), limitToSurfaces=[], skipPendingIntent=false), creationTimeMillis=1705061609885, expiryTimeMillis=1705061609885, score=0.0, actionChips=[], iconGrid=[], featureType=54, isSensitive=false, shouldShowExpanded=false, sourceNotificationKey=, componentName=ComponentInfo{package_name/class_name}, userHandle=UserHandle{0}, associatedSmartspaceTargetId=null, sliceUri=null, widget=null, templateData=BaseTemplateData (1) primaryItem=(SubItemInfo(text=Text(text=Today 16° / 1° · Partly cloudy, truncateAtType=END, maxLines=1), icon=null, tapAction=TapAction(id=, intent=Intent { act=android.intent.action.VIEW flg=0x18000000 cmp=com.kieronquinn.app.smartspacer/.ui.activities.ExportedSmartspaceTrampolineProxyActivity (has extras) }, pendingIntent=null, extras=Bundle[{}], shouldShowOnLockScreen=false, userHandle=UserHandle{0}), loggingInfo=SubItemLoggingInfo(featureType=54, instanceId=886, packageName=))) primaryItem=(SubItemInfo(text=Text(text=Daily Forecast, truncateAtType=END, maxLines=1), icon=null, tapAction=null, loggingInfo=null)), expandedState=null, canBeDismissed=true, canTakeTwoComplications=false, hideIfNoComplications=false, limitToSurfaces=[]) ```
KieronQuinn commented 6 months ago

Unfortunately notification positioning is not under the control of Smartspacer, so this isn't something I control.