コード例 #1
0
        private void MoveMessageReaderByPos(int id)
        {
            if (textToSpeech.IsSpeaking)
            {
                textToSpeech.Stop();
            }

            if (id <= maxPos - 1 && id >= 0)
            {
                if (id == maxPos - 1)
                {
                    var btnNext = FindViewById <Button>(Resource.Id.btnNextEmailReader);
                    btnNext.Enabled = false;
                }
                else
                {
                    var btnNext = FindViewById <Button>(Resource.Id.btnNextEmailReader);
                    btnNext.Enabled = true;
                }

                if (id >= 0)
                {
                    var btnPrev = FindViewById <Button>(Resource.Id.btnPrevEmailReader);
                    btnPrev.Enabled = true;
                }
                else
                {
                    var btnPrev = FindViewById <Button>(Resource.Id.btnPrevEmailReader);
                    btnPrev.Enabled = false;
                }

                //DBManagerHelper dbmgr = new DBManagerHelper(this);
                DatabaseUpdates    tblEmail   = new DatabaseUpdates();
                List <EmailObject> eListAdapt = tblEmail.EmailOBJ();
                EmailObject        emlObj     = eListAdapt[id];
                emlFrom    = emlObj.From;            //Intent.GetStringExtra("emlFrom") ?? "From Data not available";
                emlDate    = emlObj.date.ToString(); //Intent.GetStringExtra("emlDate") ?? "Date Data not available";
                emlCC      = emlObj.CC;              //Intent.GetStringExtra("emlCC") ?? "CC Data not available";
                emlSubject = emlObj.Subject;         //Intent.GetStringExtra("emlSubject") ?? "Subject Data not available";
                emlBody    = emlObj.Body;            //Intent.GetStringExtra("emlBody") ?? "Body Data not available";
                curPos     = id;                     //Intent.GetIntExtra("curPos", 0);

                var tvFrom = FindViewById <TextView>(Resource.Id.tvFromEmailReaer);
                tvFrom.Text = emlFrom;
                var tvCC = FindViewById <TextView>(Resource.Id.tvCCEmailReader);
                tvCC.Text = emlCC;
                var tvSubject = FindViewById <TextView>(Resource.Id.tvSubjectEmailReader);
                tvSubject.Text = emlSubject;
                var tvBody = FindViewById <TextView>(Resource.Id.tvBodyEmailReader);
                tvBody.Text = emlBody;
            }
        }
コード例 #2
0
        private void RetrieveDBMail()
        {
            EmailsToRead = "";
            DBManagerHelper dbmgr      = new DBManagerHelper(this);
            DatabaseUpdates tblEmail   = new DatabaseUpdates();
            var             eListAdapt = new EmailListAdapter(this, tblEmail.EmailOBJ());

            eListAdapt.NotifyDataSetChanged();

            var emailListView = FindViewById <ListView>(Resource.Id.lvEmailList);

            emailListView.Adapter = eListAdapt;
        }
コード例 #3
0
        protected override void OnActivityResult(int req, Result res, Intent data)
        {
            var tvPreviewCommand = FindViewById <TextView>(Resource.Id.tvPreviewCommand);

            //STTtextBox = FindViewById<TextView>(Resource.Id.etxtCommand);
            if (req == NeedLang)
            {
                // we need a new language installed
                var installTTS = new Intent();
                installTTS.SetAction(TextToSpeech.Engine.ActionInstallTtsData);
                StartActivity(installTTS);
            }
            else if (req == VOICE)
            {
                if (res == Result.Ok)
                {
                    var matches = data.GetStringArrayListExtra(RecognizerIntent.ExtraResults);

                    if (matches.Count != 0)
                    {
                        //string textInput = STTtextBox.Text + matches[0];
                        string textInput = matches[0];

                        // limit the output to 500 characters
                        if (textInput.Length > 500)
                        {
                            textInput = textInput.Substring(0, 500);
                        }

                        tvPreviewCommand.Text = textInput;
                        STTtextBox.Text       = textInput;

                        //put logic transfer here. compare keywords then redirect to next activity.
                        if (textInput.ToLower() == "one" || textInput.ToLower() == "1" || textInput.ToLower() == "call" || textInput.ToLower() == "dial")
                        {
                            //start activity here.
                            StartActivity(typeof(Activities.PhoneCallActivity));
                        }
                        else if (textInput.ToLower() == "two" || textInput.ToLower() == "2" || textInput.ToLower() == "message" || textInput.ToLower() == "SMS")
                        {
                            StartActivity(typeof(Activities.MessageActivity));
                        }
                        else if (textInput.ToLower() == "four" || textInput.ToLower() == "4" || textInput.ToLower() == "email" || textInput.ToLower() == "mail")
                        {
                            StartActivity(typeof(Activities.EmailActivity));
                        }
                        else if (textInput.ToLower() == "read email" || textInput.ToLower() == "5" || textInput.ToLower() == "five")
                        {
                            var progressDialog = ProgressDialog.Show(this, "Please wait...", "Connecting to GDSS Mail Server", true);
                            progressDialog.SetProgressStyle(ProgressDialogStyle.Spinner);
                            new Thread(new ThreadStart(delegate
                            {
                                //LOAD METHOD TO GET ACCOUNT INFO
                                RunOnUiThread(() => {
                                    Toast.MakeText(this, "Email Sync: Connecting to Server", ToastLength.Long).Show();
                                });

                                RunOnUiThread(() => RetrievePOP3Mail());
                                //RetrievePOP3Mail();
                                RunOnUiThread(() => {
                                    Toast.MakeText(this, "Email Sync: Successful", ToastLength.Long).Show();
                                });
                                //RunOnUiThread(() => {
                                DatabaseUpdates tblEmail           = new DatabaseUpdates();
                                List <EmailObject> EmailObjectList = tblEmail.EmailOBJ();
                                int emailListCount = 0;
                                EmailObject item   = EmailObjectList[emailListCount];

                                var actEmailReader = new Intent(this, typeof(EmailReaderActivity));
                                actEmailReader.PutExtra("emlFrom", item.From);
                                actEmailReader.PutExtra("emlCC", item.CC);
                                actEmailReader.PutExtra("emlDate", item.date.ToString());
                                actEmailReader.PutExtra("emlSubject", item.Subject);
                                actEmailReader.PutExtra("emlBody", item.Body);
                                actEmailReader.PutExtra("curPos", emailListCount);
                                actEmailReader.PutExtra("maxPos", EmailObjectList.Count());
                                actEmailReader.PutExtra("autoRead", 1);
                                actEmailReader.SetFlags(ActivityFlags.ReorderToFront);
                                StartActivity(actEmailReader);
                                //});

                                //HIDE PROGRESS DIALOG
                                RunOnUiThread(() => progressDialog.Hide());
                            })).Start();
                        }
                        else if (textInput.ToLower() == "read message" || textInput.ToLower() == "read messages" || textInput.ToLower() == "3" || textInput.ToLower() == "three")
                        {
                            var progressDialog = ProgressDialog.Show(this, "Please wait...", "Fetching Messages", true);
                            progressDialog.SetProgressStyle(ProgressDialogStyle.Spinner);
                            new Thread(new ThreadStart(delegate
                            {
                                //LOAD METHOD TO GET ACCOUNT INFO
                                RunOnUiThread(() => {
                                    Toast.MakeText(this, "SMS Sync: Fetching Messages", ToastLength.Long).Show();
                                });

                                RunOnUiThread(() => {
                                    Toast.MakeText(this, "SMS Sync: Successful", ToastLength.Long).Show();
                                });

                                //RunOnUiThread(() => {
                                var cursor       = Application.Context.ContentResolver.Query(Telephony.Sms.Inbox.ContentUri, null, null, null, null);
                                var actSMSReader = new Intent(this, typeof(MessageReaderActivity));

                                cursor.MoveToFirst();

                                var ID            = cursor.GetString(cursor.GetColumnIndex(Telephony.Sms.Inbox.InterfaceConsts.Id));
                                string From       = cursor.GetString(cursor.GetColumnIndex(Telephony.Sms.Inbox.InterfaceConsts.Address)).ToString();
                                string messageVal = cursor.GetString(cursor.GetColumnIndex(Telephony.Sms.Inbox.InterfaceConsts.Body)).ToString();

                                var epoch   = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Unspecified);
                                var Dateval = epoch.AddMilliseconds(cursor.GetLong(cursor.GetColumnIndex(Telephony.Sms.Inbox.InterfaceConsts.Date))).AddHours(10);
                                var currSMS = new MessageObject(ID, From, messageVal, Dateval);
                                actSMSReader.PutExtra("SMSFrom", From);
                                actSMSReader.PutExtra("SMSID", ID);
                                actSMSReader.PutExtra("SMSDate", Dateval.ToString());
                                actSMSReader.PutExtra("SMSMessage", messageVal);
                                actSMSReader.PutExtra("curPos", 0);
                                actSMSReader.PutExtra("maxPos", cursor.Count - 1);
                                actSMSReader.PutExtra("autoRead", 1);
                                actSMSReader.SetFlags(ActivityFlags.ReorderToFront);
                                cursor.Close();
                                StartActivity(actSMSReader);
                                //});
                                //HIDE PROGRESS DIALOG
                                RunOnUiThread(() => progressDialog.Hide());
                            })).Start();
                        }
                        else if (textInput.ToLower() == "six" || textInput.ToLower() == "6" || textInput.ToLower() == "assistant" || textInput.ToLower() == "google")
                        {
                            RunOnUiThread(async() =>
                            {
                                //Process.KillProcess(Process.MyPid());
                                var voiceAssistantIntent = new Intent(RecognizerIntent.ActionVoiceSearchHandsFree);
                                voiceAssistantIntent.PutExtra(RecognizerIntent.ExtraLanguageModel, RecognizerIntent.LanguageModelFreeForm);

                                // put a message on the modal dialog
                                voiceAssistantIntent.PutExtra(RecognizerIntent.ExtraPrompt, "Assistant Command");
                                //Application.Context.GetString(Resource.String));

                                // if there is more then 1.5s of silence, consider the speech over
                                voiceAssistantIntent.PutExtra(RecognizerIntent.ExtraSpeechInputCompleteSilenceLengthMillis, 3000);
                                voiceAssistantIntent.PutExtra(RecognizerIntent.ExtraSpeechInputPossiblyCompleteSilenceLengthMillis, 3000);
                                voiceAssistantIntent.PutExtra(RecognizerIntent.ExtraSpeechInputMinimumLengthMillis, 3000);
                                voiceAssistantIntent.PutExtra(RecognizerIntent.ExtraMaxResults, 1);

                                voiceAssistantIntent.PutExtra(RecognizerIntent.ExtraLanguage, Java.Util.Locale.Default);
                                voiceAssistantIntent.SetFlags(ActivityFlags.ReorderToFront);
                                try {
                                    await Task.Delay(4000);
                                    StartActivity(voiceAssistantIntent);
                                } catch (Exception ex) {
                                    //Console.WriteLine(ex.Source + "|" + ex.Message);
                                    Console.WriteLine(ex.Source + "|" + ex.Message);
                                }
                            });
                        }
                        else if (textInput.ToLower() == "quit" || textInput.ToLower() == "exit" || textInput.ToLower() == "close")
                        {
                            Process.KillProcess(Process.MyPid());
                        }
                        else if (textInput.ToLower() == "settings" || textInput.ToLower() == "configuration")
                        {
                            StartActivity(typeof(Activities.ConfigActivity));
                        }
                        else
                        {
                            SetReadMessage("Unrecognized command. You said: " + textInput);

                            var btnAction = FindViewById <ImageButton>(Resource.Id.imgBtnListen);
                            btnAction.SetImageResource(Resource.Drawable.micread);
                            //@android:drawable/presence_audio_online + Android.Resource.Drawable.PresenceAudioOnline + Android.Resource.Drawable.IcDialogInfo
                        }
                    }
                    else
                    {
                        STTtextBox.Text = "No speech was recognised";
                        SetReadMessage(STTtextBox.Text);
                    }
                }
            }

            base.OnActivityResult(req, res, data);
        }