Exemple #1
0
        public MainWindow()
        {
            InitializeComponent();

            /**
             * TODO:
             * Copy keys
             * Load all packages
             * Download them
             * List connected devices
             * Ask for a package to be selected
             * Install to all current devices, also start listening for device connections
             */
            Packages                   = new ObservableCollection <AndroidPackage>();
            Devices                    = new ObservableCollection <DeviceData>();
            lblIcon.Content            = "Loading keys.";
            mKeyHelper                 = new KeyHelper(true);
            lblIcon.Content            = "Downloading packages";
            cmbDevice.ItemsSource      = Devices;
            mPkgMgr                    = PackageManager.CreateWithUrlAndFetch(null);
            lstPackages.ItemsSource    = Packages;
            mPkgMgr.PackageDownloaded += MPkgMgrOnPackageDownloaded;
            mPkgMgr.PackageLoaded     += MPkgMgrOnPackageLoaded;
            mPkgMgr.AddAllAsync(mPackages.ToArray())
            .ContinueWith(t =>
            {
                if (t.IsFaulted)
                {
                    OnInitialPackagesFailed(t);
                }
                else
                {
                    OnInitalPackagesDone(t);
                }
            });
            string adbFile = Path.Combine(Directory.GetCurrentDirectory(), "platform_tools", "adb.exe");

            //Ask for the package to be selected..

            mAdb = new AdbManager(adbFile);
            StartListening();
            var devs = mAdb.GetDevicesInfos();

            foreach (var dev in devs)
            {
                Devices.Add(dev);
            }
            if (devs.Count == 0)
            {
                lblStatus.Text = "No devices connected.";
            }
            else
            {
                lblStatus.Text = $"Devices connected: {devs.Count}";
            }
        }