public static void SetLastSelected(string ListName, status selectedStatus, ISpecialTimeLine specialTime) { if (ListName == "Conversation" || ListName == "Search_TimeLine" || ListName == "@User_TimeLine" || ListName == "Favorites_TimeLine" ) { return; } if (!LastSelectedItemsDictionary.ContainsKey(ListName)) { LastSelectedItemsDictionary.Add(ListName, ""); } LastSelectedItemsDictionary[ListName] = selectedStatus.id; var newInfo = new NewestSelectedInformation { CreatedAtTicks = (Int64) selectedStatus.createdAt.Ticks, id = selectedStatus.id }; if (!NewestSelectedItemsDictionary.ContainsKey(ListName)) { lock(NewestSelectedItemsDictionary) { NewestSelectedItemsDictionary.Add(ListName, newInfo); StoreNewestInfoInRegistry(ListName, newInfo); } SetUnreadCount(ListName, selectedStatus.id, specialTime); } else { if (NewestSelectedItemsDictionary[ListName].CreatedAtTicks <= newInfo.CreatedAtTicks) { NewestSelectedItemsDictionary[ListName] = newInfo; StoreNewestInfoInRegistry(ListName, newInfo); SetUnreadCount(ListName, newInfo.id, specialTime); } } StoreSelectedItem(ListName, selectedStatus.id); }
private static void LoadStoredItems() { LastSavedItemsRoot = Registry.LocalMachine.OpenSubKey(LastSavedStoragePath, true); NewestSavedItemsRoot = Registry.LocalMachine.OpenSubKey(NewestSavedStoragePath, true); UnreadCountRoot = Registry.LocalMachine.OpenSubKey(UnreadCountRegistryPath, true); if (UnreadCountRoot == null) { RegistryKey ParentKey = Registry.LocalMachine.OpenSubKey(@"\Software\Apps\", true); if (ParentKey != null) UnreadCountRoot = ParentKey.CreateSubKey("PockeTwit\\UnreadCount"); } if (LastSavedItemsRoot == null) { RegistryKey ParentKey = Registry.LocalMachine.OpenSubKey(@"\Software\Apps\", true); if (ParentKey != null) LastSavedItemsRoot = ParentKey.CreateSubKey("PockeTwit\\LastSaved"); } if (LastSavedItemsRoot != null) { string[] StoredItems = LastSavedItemsRoot.GetValueNames(); foreach (string StoredItem in StoredItems) { LastSelectedItemsDictionary.Add(StoredItem, (string) LastSavedItemsRoot.GetValue(StoredItem)); } } if (NewestSavedItemsRoot == null) { RegistryKey ParentKey = Registry.LocalMachine.OpenSubKey(@"\Software\Apps\", true); if (ParentKey != null) NewestSavedItemsRoot = ParentKey.CreateSubKey("PockeTwit\\NewestSaved"); } if (NewestSavedItemsRoot != null) { string[] storedItems = NewestSavedItemsRoot.GetValueNames(); foreach (string storedItem in storedItems) { var serializedItem = (string)NewestSavedItemsRoot.GetValue(storedItem); NewestSelectedInformation newItem; try { var splitItem = serializedItem.Split('|'); //newItem = new NewestSelectedInformation {CreatedAtTicks = long.Parse(splitItem[1]), id = splitItem[1]}; newItem = new NewestSelectedInformation { CreatedAtTicks = Int64.Parse(splitItem[0]), id = Int64.Parse(splitItem[1]).ToString() }; NewestSelectedItemsDictionary.Add(storedItem, newItem); } catch { NewestSavedItemsRoot.DeleteValue(storedItem, false); //var deserializedStatus = status.DeserializeSingle(serializedItem, null); //newItem = new NewestSelectedInformation { CreatedAtTicks = (Int64)deserializedStatus.createdAt.Ticks, id = deserializedStatus.id }; } } } UpdateUnreadCounts(); }
private static void StoreNewestInfoInRegistry(string ListName, NewestSelectedInformation Item) { NewestSavedItemsRoot.SetValue(ListName, Item.CreatedAtTicks + "|" + Item.id); }