Adium

Ticket #9082 (closed defect: fixed)

Opened 3 months ago

Last modified 3 months ago

Custom Status dialog does not pre-populate with previous message

Reported by: markbach Assigned to: evands
Priority: normal Milestone: Adium X 1.2.2
Component: Adium Core Version: 1.2.1
Severity: regression Keywords: status, status message, custom status, away, away message
Cc: Patch: None
Pending: 0

Description

Prior to version 1.2.1, the "Custom Status" dialog box was pre-populated with the previous custom status. In 1.2.1, that no longer happens.

Steps to Reproduce:

  • Open the Custom Status dialog, either by command-y or Status Menu -> Custom....
  • Populate the Status Message field with some text.
  • Check the Auto-reply and Appear Idle Immediately boxes, as shown in Figure 1
  • Click the OK button to set the Away status.
  • Wait a short period of time (say, 30 seconds).
  • Return from Away status by command-y or clicking the Return button on the Current Status window.
  • Wait at least 60 seconds. The bug does not seem to manifest if you do not remain Available for at least a minute.
  • Open the Custom Status dialog, either by command-y or Status Menu -> Custom....
    • In 1.2.0 and previous, the Custom Status dialog would be pre-populated with your previous status message and the appropriate boxes checked.
    • In 1.2.1, the Custom Status dialog is blank and the checkboxes are returned to defaults.

I have confirmed this occurs on the following:

  • Mac G5 (PowerPC) running 10.4.11
  • MacBook Pro (Intel) running 10.4.11

IRC user greatcaffeine was able to reproduce this on

  • Macbook Pro (Intel) running 10.5.1

Attachments

Figure 1.png (33.4 kB) - added by markbach on 01/29/2008 03:15:48 PM.
Figure 1: An example of how the Custom Status dialog should look

Change History

01/29/2008 03:15:48 PM changed by markbach

  • attachment Figure 1.png added.

Figure 1: An example of how the Custom Status dialog should look

01/31/2008 09:29:24 PM changed by jas8522

  • severity changed from normal to regression.
  • milestone set to Adium X 1.2.2.

I can confirm... I didn't use that feature often enough before 1.2.1, but I *thought* that was there... it seems so cumbersome to set my status again now.

01/31/2008 10:36:37 PM changed by evands

  • owner changed from nobody to evands.
  • status changed from new to assigned.

01/31/2008 10:37:40 PM changed by evands

Turns out this is actually ancient bad behavior... when the preference controller kept everything in memory all the time (1.2 and before), we didn't properly save this across sessions. Now that we dump our in-memory cache after 60 seconds of non-use, the bug appears within a single session. Fantastic reporting, thanks!

01/31/2008 10:44:50 PM changed by evands

  • status changed from assigned to closed.
  • resolution set to fixed.

(In [22539]) Don't use an NSNumber key in a dictionary which will be saved as a preference, as this prevents the entire preference group from saving; you must use an NSString. We now have logging which points the problem out.

Fixes #9082 (Custom status pre-population with previous message. Fixes #225 (yes, a ticket from 3 years ago!) which was previously very, very mysterious - the preference in question is in the same group as the last-status preference, which is why it wouldn't save.

01/31/2008 10:45:26 PM changed by evands

(In [22540]) Merged [22539]: Don't use an NSNumber key in a dictionary which will be saved as a preference, as this prevents the entire preference group from saving; you must use an NSString. We now have logging which points the problem out.

Fixes #9082 (Custom status pre-population with previous message. Fixes #225 (yes, a ticket from 3 years ago!) which was previously very, very mysterious - the preference in question is in the same group as the last-status preference, which is why it wouldn't save.