public void ImageFromUri(Uri uri)
        {
            var uriTool = new UriTool();

            ImagePath = uriTool.GetActualPathFromFile(uri);
            ItemsReceivedEvent?.Invoke(this, EventArgs.Empty);
        }
        public void OnReceive(Context context, Intent intent)
        {
            if (intent.Action == null)
            {
                return;
            }

            Log.Debug($"Received an event: {intent}");
            if (intent.Action.Equals(Intent.ActionSend))
            {
                //TODO: Sharing got broken when implementing image picker.

                Log.Debug("Action directed to ACTION_SEND");
                var uri     = (Android.Net.Uri)intent.GetParcelableExtra(Intent.ExtraStream);
                var uriTool = new UriTool();
                ImagePath = uriTool.GetActualPathFromFile(uri);
                Toast.MakeText(context, "Image Received", ToastLength.Short).Show();

                while (ContextCompat.CheckSelfPermission(MainActivity.Instance, Manifest.Permission.ReadExternalStorage)
                       != Permission.Granted)
                {
                    ActivityCompat.RequestPermissions(MainActivity.Instance,
                                                      new String[] { Manifest.Permission.ReadExternalStorage }, 1);
                    Task.Delay(TimeSpan.FromSeconds(1.5)).Wait();
                }

                ItemsReceivedEvent?.Invoke(this, EventArgs.Empty);
            }
            else if (intent.Action.Equals(Intent.ActionSendMultiple))
            {
                Log.Debug("Multiple pictures received!");
                ItemsReceivedEvent?.Invoke(this, EventArgs.Empty);
            }
        }
Beispiel #3
0
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            if (!_options.RegisterEnabled)
            {
                _logger.LogInformation("setting RegisterEnabled to false, will not register to nacos");
                return;
            }

            uris = UriTool.GetUri(_features, _options.Ip, _options.Port, _options.PreferredNetworks);

            var metadata = new Dictionary <string, string>()
            {
                { PreservedMetadataKeys.REGISTER_SOURCE, $"ASPNET_CORE" },
                { MetadataNetVersion, Environment.Version.ToString() },
                { MetadataHostOs, Environment.OSVersion.ToString() },
            };

            if (_options.Secure)
            {
                metadata[MetadataSecure] = "true";
            }

            foreach (var item in _options.Metadata)
            {
                if (!metadata.ContainsKey(item.Key))
                {
                    metadata.TryAdd(item.Key, item.Value);
                }
            }

            foreach (var uri in uris)
            {
                for (int i = 0; i < 3; i++)
                {
                    try
                    {
                        var instance = new Nacos.V2.Naming.Dtos.Instance
                        {
                            Ephemeral   = _options.Ephemeral,
                            ServiceName = _options.ServiceName,
                            ClusterName = _options.ClusterName,
                            Enabled     = _options.InstanceEnabled,
                            Healthy     = true,
                            Ip          = uri.Host,
                            Port        = uri.Port,
                            Weight      = _options.Weight,
                            Metadata    = metadata,
                            InstanceId  = ""
                        };

                        _logger.LogInformation("register instance to nacos server, 【{0}】", instance);

                        await _svc.RegisterInstance(_options.ServiceName, _options.GroupName, instance);

                        break;
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex, "register instance error, count = {0}", i + 1);
                    }
                }
            }
        }