コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: CallsViewModel.cs プロジェクト: nazzi88ua/Unigram
        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);
        }
コード例 #3
0
ファイル: AlertsService.cs プロジェクト: nazzi88ua/Unigram
        private static String GetFloodWaitString(String error)
        {
            var time = error.ToInt32();

            return(string.Format(Strings.Android.FloodWaitTime, LocaleHelper.FormatCallDuration(time)));
        }