private string ConvertDuration(TLMessageActionBase action) { if (action is TLMessageActionPhoneCall phoneCallAction) { var missed = phoneCallAction.Reason is TLPhoneCallDiscardReasonMissed || phoneCallAction.Reason is TLPhoneCallDiscardReasonBusy; if (!missed && (phoneCallAction.Duration ?? 0) > 0) { var duration = LocaleHelper.FormatCallDuration(phoneCallAction.Duration ?? 0); return($", {duration}"); } } return(string.Empty); }
private string GetDisplayType() { if (IsFailed) { return(Strings.Android.CallMessageIncomingMissed); } var finalType = string.Empty; var types = new List <TLCallDisplayType>(); foreach (var message in Items) { var action = message.Action as TLMessageActionPhoneCall; var outgoing = message.IsOut; var reason = action.Reason; var missed = reason is TLPhoneCallDiscardReasonMissed || reason is TLPhoneCallDiscardReasonBusy; var type = missed ? (outgoing ? TLCallDisplayType.Cancelled : TLCallDisplayType.Missed) : (outgoing ? TLCallDisplayType.Outgoing : TLCallDisplayType.Incoming); if (types.Contains(type)) { } else { types.Add(type); } } if (types.Count > 1) { while (types.Contains(TLCallDisplayType.Cancelled)) { types.Remove(TLCallDisplayType.Cancelled); } } var typesArray = types.OrderBy(x => (int)x); foreach (var typeValue in typesArray) { var type = StringForDisplayType(typeValue); if (finalType.Length == 0) { finalType = type; } else { finalType += $", {type}"; } } if (Items.Count == 1) { var message = Items[0]; var action = message.Action as TLMessageActionPhoneCall; var reason = action.Reason; var missed = reason is TLPhoneCallDiscardReasonMissed || reason is TLPhoneCallDiscardReasonBusy; var callDuration = action.Duration ?? 0; var duration = missed || callDuration < 1 ? null : LocaleHelper.FormatCallDuration(callDuration); finalType = duration != null?string.Format("{0} ({1})", finalType, duration) : finalType; } return(finalType); }
private static String GetFloodWaitString(String error) { var time = error.ToInt32(); return(string.Format(Strings.Android.FloodWaitTime, LocaleHelper.FormatCallDuration(time))); }