Add retrieving account data, namely the notification setting.
This commit is contained in:
		
							parent
							
								
									490d0eff2c
								
							
						
					
					
						commit
						50701e1885
					
				| @ -12,6 +12,7 @@ import Scylla.UserData exposing (..) | ||||
| import Scylla.Notification exposing (..) | ||||
| import Scylla.Storage exposing (..) | ||||
| import Scylla.Markdown exposing (..) | ||||
| import Scylla.AccountData exposing (..) | ||||
| import Url exposing (Url) | ||||
| import Url.Parser exposing (parse) | ||||
| import Url.Builder | ||||
|  | ||||
							
								
								
									
										22
									
								
								src/Scylla/AccountData.elm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/Scylla/AccountData.elm
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| module Scylla.AccountData exposing (..) | ||||
| import Scylla.Sync exposing (AccountData, JoinedRoom, roomAccountData) | ||||
| import Json.Decode as Decode | ||||
| 
 | ||||
| type NotificationSetting = Normal | MentionsOnly | None | ||||
| 
 | ||||
| notificationSettingDecoder : Decode.Decoder NotificationSetting | ||||
| notificationSettingDecoder = | ||||
|     let | ||||
|         checkString s = case s of | ||||
|             "Normal" -> Decode.succeed Normal | ||||
|             "MentionsOnly" -> Decode.succeed MentionsOnly | ||||
|             "None" -> Decode.succeed None | ||||
|             _ -> Decode.fail "Not a valid notification setting" | ||||
|     in | ||||
|         Decode.andThen checkString Decode.string | ||||
| 
 | ||||
| roomNotificationSetting : JoinedRoom -> NotificationSetting | ||||
| roomNotificationSetting jr = Maybe.withDefault Normal | ||||
|     <| Maybe.andThen Result.toMaybe | ||||
|     <| Maybe.map (Decode.decodeValue notificationSettingDecoder) | ||||
|     <| roomAccountData jr "com.danilafe.scylla.notifications" | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user