public MiniHacksDetailsPage(MiniHack hack)
        {
            InitializeComponent();
            BindingContext = vm = new MiniHackDetailsViewModel(hack);

            ButtonFinish.Clicked += ButtonFinish_Clicked;


            if (string.IsNullOrWhiteSpace (hack.GitHubUrl)) 
            {
                MiniHackDirections1.IsEnabled = false;
                MiniHackDirections1.Text = "Directions coming soon";
                MiniHackDirections2.IsEnabled = false;
                MiniHackDirections2.Text = "Directions coming soon";
            }

            scanPage = new ZXingScannerPage(new MobileBarcodeScanningOptions {  AutoRotate = false, })
                {
                    DefaultOverlayTopText = "Align the barcode within the frame",
                    DefaultOverlayBottomText = string.Empty
                };

            scanPage.OnScanResult += ScanPage_OnScanResult;


            scanPage.Title = "Scan Code";


            var item = new ToolbarItem
                {
                    Text = "Cancel",
                    Command = new Command(async () => 
                        {
                            scanPage.IsScanning = false;
                            await Navigation.PopAsync();
                        })
                };

            if(Device.OS != TargetPlatform.iOS)
                item.Icon = "toolbar_close.png";

            scanPage.ToolbarItems.Add(item);

        }
 public MiniHackDetailsViewModel(MiniHack hack)
 {
     Hack = hack;
 }