Ejemplo n.º 1
0
        public override void onPause()
        {
            base.onPause();

            if (mSession != null)
            {
                mSession.onPause();
            }

            mNotifyBuilder = (new NotificationCompat.Builder(this)).setContentTitle(this.Title).setContentText(Resources.getString([email protected])).setSmallIcon(R.drawable.ic_launcher).setOngoing(true);

            Intent notificationIntent = new Intent(this, typeof(MultipartyActivity));

            notificationIntent.Flags = Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP;
            PendingIntent intent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

            mNotifyBuilder.ContentIntent = intent;

            if (mConnection == null)
            {
                mConnection = new ServiceConnectionAnonymousInnerClassHelper(this);
            }

            if (!mIsBound)
            {
                bindService(new Intent(MultipartyActivity.this, typeof(ClearNotificationService)), mConnection, Context.BIND_AUTO_CREATE);
                mIsBound = true;
                startService(notificationIntent);
            }
        }
		public override void onPause()
		{
			base.onPause();

			if (mSession != null)
			{
				mSession.onPause();
			}

			mNotifyBuilder = (new NotificationCompat.Builder(this)).setContentTitle(this.Title).setContentText(Resources.getString([email protected])).setSmallIcon(R.drawable.ic_launcher).setOngoing(true);

			Intent notificationIntent = new Intent(this, typeof(MultipartyActivity));
			notificationIntent.Flags = Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP;
			PendingIntent intent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
			mNotifyBuilder.ContentIntent = intent;

			if (mConnection == null)
			{
				mConnection = new ServiceConnectionAnonymousInnerClassHelper(this);
			}

			if (!mIsBound)
			{
				bindService(new Intent(MultipartyActivity.this, typeof(ClearNotificationService)), mConnection, Context.BIND_AUTO_CREATE);
				mIsBound = true;
				startService(notificationIntent);
			}

		}
        /*
         * Show the notification in the Android notification drawer
         */
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @TargetApi(android.os.Build.VERSION_CODES.KITKAT_WATCH) private void showNotification(com.twilio.voice.IncomingCallMessage incomingCallMessage, int notificationId)
        private void showNotification(IncomingCallMessage incomingCallMessage, int notificationId)
        {
            string callSid = incomingCallMessage.CallSid;

            if (!incomingCallMessage.Cancelled)
            {
                /*
                 * Create a PendingIntent to specify the action when the notification is
                 * selected in the notification drawer
                 */
                Intent intent = new Intent(this, typeof(VoiceActivity));
                intent.Action = VoiceActivity.ACTION_INCOMING_CALL;
                intent.putExtra(VoiceActivity.INCOMING_CALL_MESSAGE, incomingCallMessage);
                intent.putExtra(VoiceActivity.INCOMING_CALL_NOTIFICATION_ID, notificationId);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);

                /*
                 * Pass the notification id and call sid to use as an identifier to cancel the
                 * notification later
                 */
                Bundle extras = new Bundle();
                extras.putInt(NOTIFICATION_ID_KEY, notificationId);
                extras.putString(CALL_SID_KEY, callSid);

                /*
                 * Create the notification shown in the notification drawer
                 */
                NotificationCompat.Builder notificationBuilder = (new NotificationCompat.Builder(this)).setSmallIcon(R.drawable.ic_call_white_24px).setContentTitle(getString([email protected]_name)).setContentTextuniquetempvar.setAutoCancel(true).setExtras(extras).setContentIntent(pendingIntent).setColor(Color.rgb(214, 10, 37));

                notificationManager.notify(notificationId, notificationBuilder.build());
            }
            else
            {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
                {
                    /*
                     * If the incoming call was cancelled then remove the notification by matching
                     * it with the call sid from the list of notifications in the notification drawer.
                     */
                    StatusBarNotification[] activeNotifications = notificationManager.ActiveNotifications;
                    foreach (StatusBarNotification statusBarNotification in activeNotifications)
                    {
                        Notification notification        = statusBarNotification.Notification;
                        Bundle       extras              = notification.extras;
                        string       notificationCallSid = extras.getString(CALL_SID_KEY);
                        if (callSid.Equals(notificationCallSid))
                        {
                            notificationManager.cancel(extras.getInt(NOTIFICATION_ID_KEY));
                        }
                    }
                }
                else
                {
                    /*
                     * Prior to Android M the notification manager did not provide a list of
                     * active notifications so we lazily clear all the notifications when
                     * receiving a cancelled call.
                     *
                     * In order to properly cancel a notification using
                     * NotificationManager.cancel(notificationId) we should store the call sid &
                     * notification id of any incoming calls using shared preferences or some other form
                     * of persistent storage.
                     */
                    notificationManager.cancelAll();
                }
            }
        }