Example #1
0
        private void SaveContactsSim()
        {
            // check for contacts description chars len
            string retCheck = GlobalObjUI.CheckAlphaCharsLen(GlobalObjUI.SimContacts);

            if (retCheck != "")
            {
                MainClass.ShowMessage(MainWindow, "ERROR",
                                      GlobalObjUI.LMan.GetString("maxlenexceeded")
                                      .Replace("'description'", "'<b>" + retCheck + "</b>'")
                                      + "<b>" + GlobalObjUI.SimADNMaxAlphaChars.ToString() + "</b>", MessageType.Warning);
                return;
            }

            SelectWriteModeDialogClass swmdc =
                new SelectWriteModeDialogClass(MainWindow, GlobalObjUI.LMan.GetString("savesimact"));

            int retMode = swmdc.Show();

            if (retMode < 0)
            {
                // cancel button pressed
                return;
            }

            log.Debug("MainWindowClass::SaveContactsSim: SELECTED SIM WRITE MODE: " + retMode.ToString());
            if (retMode == 1)
            {
                WriteContactsOnSim(GlobalObjUI.SimContacts, true);
            }
            else
            {
                WriteContactsOnSim(GlobalObjUI.SimContacts, false);
            }
        }
Example #2
0
        /// <summary>
        /// Updates during sim contacts reading
        /// </summary>
        private void ReadingUpdate()
        {
            PBar.SetValue(GlobalObjUI.SimADNPosition);
            mainwindow_Ui.StatusBar.ShowMessage(GlobalObjUI.LMan.GetString("readcontact") +
                                                GlobalObjUI.SimADNPosition.ToString("d3"));
            MainClass.QtWait();


            if (GlobalObjUI.SimADNStatus == 3 && !isEnd)
            {
                isEnd = true;
                // End with errors
                MainClass.ShowMessage(this, "ERROR", GlobalObjUI.SimADNError, MainClass.MessageType.Error);

                // Update gui widgets properties
                ScanSimAfter();

                // update gui widgets with results
                UpdateSimControls(false);
            }

            if (GlobalObjUI.SimADNStatus == 2 && !isEnd)
            {
                isEnd = true;

                // Extract contacts from records
                retStr = GlobalObjUI.FromRecordsToContacts();

                if (retStr != "")
                {
                    // error detected
                    MainClass.ShowMessage(this, "ERROR", retStr, MainClass.MessageType.Error);

                    // Update gui widgets properties
                    ScanSimAfter();

                    // update gui widgets with results
                    UpdateSimControls(false);
                }
                else
                {
                    // update ListView
                    List <string> rowContent = null;
                    foreach (Contact cnt in GlobalObjUI.SimContacts.SimContacts)
                    {
                        rowContent = new List <string>();
                        rowContent.Add(" ");
                        rowContent.Add(cnt.Description);
                        rowContent.Add(cnt.PhoneNumber);
                        new QTreeWidgetItem(mainwindow_Ui.LstSimContacts, rowContent);
                    }

                    // Update gui widgets properties
                    ScanSimAfter();

                    // update gui widgets with results
                    UpdateSimControls(true);
                }
            }
        }
Example #3
0
        /// <summary>
        /// Perform sim card connection and contacts read.
        /// </summary>
        private void SimConnect()
        {
            MainClass.QtWait();

            if (GlobalObj.IsPowered)
            {
                // Disconnect card if needed
                GlobalObj.CloseConnection();
            }

            // Connect to smartcard
            retStr = GlobalObj.AnswerToReset(ref ATR);

            // check for error
            if (retStr != "")
            {
                // error on answer to reset
                log.Error("MainWindowClass::SimConnect: " + retStr);
                MainClass.ShowMessage(this, "ERROR", retStr, MainClass.MessageType.Error);
                return;
            }

            // read sim contacts and fill list
            retStr = GlobalObjUI.SelectSimContactsList();

            // check for error
            if (retStr != "")
            {
                if (retStr == GlobalObjUI.LMan.GetString("needpindisable"))
                {
                    // Pin1 enabled
                    MainClass.ShowMessage(this, "ERROR", retStr, MainClass.MessageType.Error);
                    EnableSimPinControl();
                    return;
                }
                else
                {
                    // error on reading contacts list
                    GlobalObj.CloseConnection();
                    MainClass.ShowMessage(this, "ERROR", retStr, MainClass.MessageType.Error);
                    return;
                }
            }

            ScanSimBefore();
            mainwindow_Ui.LstSimContacts.Clear();

            // Reset status values
            GlobalObjUI.SimADNStatus   = 1;
            GlobalObjUI.SimADNPosition = 0;
            GlobalObjUI.SimADNError    = "";

            // Start thread for reading process
            isEnd     = false;
            isReading = true;
            simThread = new System.Threading.Thread(new
                                                    System.Threading.ThreadStart(GlobalObjUI.ReadSimContactsList));
            simThread.Start();
        }
Example #4
0
        public static void Main(string[] args)
        {
            AppNameVer = Assembly.GetExecutingAssembly().GetName().Name + " " +
                         Assembly.GetExecutingAssembly().GetName().Version.ToString();

            // check for help request
            if (new List <string>(args).Contains("--help"))
            {
                Console.WriteLine(GetHelpMsg());
                return;
            }

            Application.Init();

            retStr = GlobalObj.Initialize(args);

            // check for problems detected
            if (retStr != "")
            {
                // check for problem type
                if (!retStr.Contains("SCARD_"))
                {
                    // error detected (not scard problem)
                    ShowMessage(null, "ERROR", retStr, MessageType.Error);
                    return;
                }
                else
                {
                    // warning (scard problem, can use serial reader)
                    ShowMessage(null, "WARNING", retStr, MessageType.Warning);
                }
            }

            try
            {
                // try to set language
                GlobalObjUI.SetLanguage("monosim-gtk");
            }
            catch (Exception Ex)
            {
                // error detected
                log.Error("GlobalObjUI::SetLanguage: " + Ex.Message + "\r\n" + Ex.StackTrace);
                ShowMessage(null, "LANGUAGE SET ERROR", Ex.Message, MessageType.Error);
                return;
            }


            // create new Gtk Gui for application and show it
            MainWindowClass mwc = new MainWindowClass();

            mwc.Show();
            Application.Run();
        }
Example #5
0
        /// <summary>
        /// Updates during sim contacts reading
        /// </summary>
        private void ReadingUpdate()
        {
            PBar.Adjustment.Value = (double)GlobalObjUI.SimADNPosition;
            StatusBar.Push(1, GlobalObjUI.LMan.GetString("readcontact") +
                           GlobalObjUI.SimADNPosition.ToString("d3"));
            MainClass.GtkWait();


            if (GlobalObjUI.SimADNStatus == 3)
            {
                // End with errors
                MainClass.ShowMessage(MainWindow, "ERROR", GlobalObjUI.SimADNError, MessageType.Error);

                // Update gui widgets properties
                ScanSimAfter();

                // update gui widgets with results
                UpdateSimControls(false);
            }

            if (GlobalObjUI.SimADNStatus == 2)
            {
                // Extract contacts from records
                retStr = GlobalObjUI.FromRecordsToContacts();

                if (retStr != "")
                {
                    // error detected
                    MainClass.ShowMessage(MainWindow, "ERROR", retStr, MessageType.Error);

                    // Update gui widgets properties
                    ScanSimAfter();

                    // update gui widgets with results
                    UpdateSimControls(false);
                }
                else
                {
                    // update ListView
                    foreach (Contact cnt in GlobalObjUI.SimContacts.SimContacts)
                    {
                        lstSimContacts.AppendValues(new string[] { cnt.Description, cnt.PhoneNumber });
                    }

                    // Update gui widgets properties
                    ScanSimAfter();

                    // update gui widgets with results
                    UpdateSimControls(true);
                }
            }
        }
Example #6
0
        private void SimChangePin()
        {
            // check for Pin1 check attempts
            if (GlobalObjUI.SimPin1Attempts == 1)
            {
                // Pin1 one attempt
                MainClass.ShowMessage(MainWindow, GlobalObjUI.LMan.GetString("pinsimact"),
                                      GlobalObjUI.LMan.GetString("pinsimchk3"), MessageType.Warning);
                return;
            }
            else if (GlobalObjUI.SimPin1Attempts == 0)
            {
                // Pin1 no more attempt
                MainClass.ShowMessage(MainWindow, GlobalObjUI.LMan.GetString("pinsimact"),
                                      GlobalObjUI.LMan.GetString("pinsimchk4"), MessageType.Warning);
                return;
            }

            // Change Pin1 dialog
            ChangePinStatusDialogClass cpsdc = new ChangePinStatusDialogClass(MainWindow);
            string pin1 = cpsdc.Show();

            if (pin1 == null)
            {
                // cancel button pressed
                return;
            }

            // Perform Pin1 status change
            retStr = GlobalObjUI.SetPinStatus(!GlobalObjUI.SimPin1Status, pin1);

            if (retStr != "")
            {
                // error detected during Pin1 status change
                MainClass.ShowMessage(MainWindow, GlobalObjUI.LMan.GetString("pinsimact"),
                                      retStr, MessageType.Error);
                return;
            }

            // Pin1 status changed, reconnect sim now
            MainClass.ShowMessage(MainWindow, GlobalObjUI.LMan.GetString("pinsimact"),
                                  GlobalObjUI.LMan.GetString("pinsimdone"), MessageType.Info);

            // Force sim disconnect
            SimDisconnect();
        }
Example #7
0
        /// <summary>
        /// Start sim update thread
        /// </summary>
        private void SimUpdate(Contacts cnts, bool isAppend)
        {
            ScanSimBefore();

            // Reset status values
            GlobalObjUI.SimADNStatus   = 1;
            GlobalObjUI.SimADNPosition = 0;
            GlobalObjUI.SimADNError    = "";

            // Start thread for reading process
            notify = new ThreadNotify(new ReadyEvent(WritingUpdate));
            System.Threading.ThreadStart threadStart = delegate() {
                GlobalObjUI.WriteSimContactsList(cnts, isAppend);
            };
            simThread = new System.Threading.Thread(threadStart);
            simThread.Start();
        }
Example #8
0
        public static void Main(string[] args)
        {
            AppNameVer = Assembly.GetExecutingAssembly().GetName().Name + " " +
                         Assembly.GetExecutingAssembly().GetName().Version.ToString();

            // check for help request
            if (new List <string>(args).Contains("--help"))
            {
                Console.WriteLine(GetHelpMsg());
                return;
            }


            // Init resource class manager
            Q_INIT_RESOURCE("ResManager");


            // Create new Qyoto Application
            new QApplication(args);


            retStr = GlobalObj.Initialize(args);

            // check for problems detected
            if (retStr != "")
            {
                // check for problem type
                if (!retStr.Contains("SCARD_"))
                {
                    // error detected (not scard problem)
                    ShowMessage(null, "ERROR", retStr, MessageType.Error);
                    QApplication.Quit();
                    return;
                }
                else
                {
                    // warning (scard problem, can use serial reader)
                    ShowMessage(null, "WARNING", retStr, MessageType.Warning);
                }
            }

            try
            {
                // try to set language
                GlobalObjUI.SetLanguage("monosim-qt");
            }
            catch (Exception Ex)
            {
                // error detected
                log.Error("GlobalObjUI::SetLanguage: " + Ex.Message + "\r\n" + Ex.StackTrace);
                ShowMessage(null, "LANGUAGE SET ERROR", Ex.Message, MessageType.Error);
                return;
            }

            // Create new Qyoto Desktop Object
            QDesktopWidget qdw = new QDesktopWidget();

            // Create MainWindow class manager
            MainWindowClass mwc = new MainWindowClass();

            int wWidth  = Convert.ToInt32(mwc.Width() / 2);
            int wHeight = Convert.ToInt32(mwc.Height() / 2);
            int dWidth  = Convert.ToInt32(qdw.Width() / 2);
            int dHeight = Convert.ToInt32(qdw.Height() / 2);

            mwc.Move(dWidth - wWidth, dHeight - wHeight - 20);

            mwc.Show();


            // Run Qyoto Application
            QApplication.Exec();
        }