예제 #1
0
        public override void onCreate(Bundle savedInstanceState)
        {
            base.onCreate(savedInstanceState);
            Bundle args = Arguments;

            colour     = args.getInt("colour");
            identifier = args.getInt("identifier");
        }
        public override void handleMessage(Message msg)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final android.os.Bundle bundle = msg.getData();
            Bundle bundle = msg.Data;

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final int action = bundle.getInt(ACTION);
            int action = bundle.getInt(ACTION);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final String timestamp = bundle.getString(TIMESTAMP);
            string timestamp = bundle.getString(TIMESTAMP);

            switch (action)
            {
            case ADD_TIMESTAMP:
                realm.beginTransaction();
                realm.createObject(typeof(TimeStamp)).TimeStamp = timestamp;
                realm.commitTransaction();
                break;

            case REMOVE_TIMESTAMP:
                realm.beginTransaction();
                realm.@where(typeof(TimeStamp)).equalTo("timeStamp", timestamp).findAll().clear();
                realm.commitTransaction();
                break;
            }
        }
예제 #3
0
        public override void onReceive(android.content.Context context, android.content.Intent
                                       intent)
        {
            // BEGIN_INCLUDE(onReceive)
            // Protect against rogue update broadcasts (not really a security issue,
            // just filter bad broacasts out so subclasses are less likely to crash).
            string action = intent.getAction();

            if (android.appwidget.AppWidgetManager.ACTION_APPWIDGET_UPDATE.Equals(action))
            {
                android.os.Bundle extras = intent.getExtras();
                if (extras != null)
                {
                    int[] appWidgetIds = extras.getIntArray(android.appwidget.AppWidgetManager.EXTRA_APPWIDGET_IDS
                                                            );
                    if (appWidgetIds != null && appWidgetIds.Length > 0)
                    {
                        this.onUpdate(context, android.appwidget.AppWidgetManager.getInstance(context), appWidgetIds
                                      );
                    }
                }
            }
            else
            {
                if (android.appwidget.AppWidgetManager.ACTION_APPWIDGET_DELETED.Equals(action))
                {
                    android.os.Bundle extras = intent.getExtras();
                    if (extras != null && extras.containsKey(android.appwidget.AppWidgetManager.EXTRA_APPWIDGET_ID
                                                             ))
                    {
                        int appWidgetId = extras.getInt(android.appwidget.AppWidgetManager.EXTRA_APPWIDGET_ID
                                                        );
                        this.onDeleted(context, new int[] { appWidgetId });
                    }
                }
                else
                {
                    if (android.appwidget.AppWidgetManager.ACTION_APPWIDGET_ENABLED.Equals(action))
                    {
                        this.onEnabled(context);
                    }
                    else
                    {
                        if (android.appwidget.AppWidgetManager.ACTION_APPWIDGET_DISABLED.Equals(action))
                        {
                            this.onDisabled(context);
                        }
                    }
                }
            }
        }
        /*
         * 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();
                }
            }
        }