Пример #1
0
        protected override void OnActivityResult(int requestCode, Android.App.Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);

            if (requestCode == REQUEST_CHANNEL_LIST)
            {
                if (resultCode == Android.App.Result.Ok && data != null)
                {
                    mChannelUrl = data.GetStringExtra("channelUrl");

                    mSendBirdChatAdapter.Clear();
                    mSendBirdChatAdapter.NotifyDataSetChanged();

                    mMessageListQuery           = SendBirdSDK.QueryMessageList(mChannelUrl);
                    mMessageListQuery.OnResult += (sender, e) => {
                        // mSyncContext.Post for RunOnUIThread
                        mSyncContext.Post(delegate {
                            foreach (var messageModel in e.Messages)
                            {
                                mSendBirdChatAdapter.AddMessageModel(messageModel);
                            }

                            mSendBirdChatAdapter.NotifyDataSetChanged();
                            mSendBirdChatFragment.mListView.SetSelection(mSendBirdChatAdapter.Count);

                            SendBirdSDK.Join(mChannelUrl);
                            SendBirdSDK.Connect(mSendBirdChatAdapter.GetMaxMessageTimestamp());
                        }, null);
                    };
                    mMessageListQuery.Prev(long.MaxValue, 50);                      // Excute Query
                }
            }
        }
        protected override void OnActivityResult(int requestCode, Android.App.Result resultCode, Android.Content.Intent data)
        {
            switch (requestCode)
            {
            case REQUEST_CODE_CHANGE_MASKED_WALLET:
                if (resultCode == Android.App.Result.Ok &&
                    // removed https://developers.google.com/android/guides/releases#august_27_2019
                    data.HasExtra(Android.Gms.Wallet.WalletConstants.ExtraMaskedWallet))
                {
                    // removed https://developers.google.com/android/guides/releases#august_27_2019
                    mMaskedWallet = data.GetParcelableExtra(Android.Gms.Wallet.WalletConstants.ExtraMaskedWallet).JavaCast <Android.Gms.Wallet.MaskedWallet> ();
                    ((FullWalletConfirmationButtonFragment)ResultTargetFragment)
                    .UpdateMaskedWallet(mMaskedWallet);
                }
                // you may also want to use the new masked wallet data here, say to recalculate
                // shipping or taxes if shipping address changed
                break;

            case Android.Gms.Wallet.WalletConstants.ResultError:
                int errorCode = data.GetIntExtra(Android.Gms.Wallet.WalletConstants.ExtraErrorCode, 0);
                HandleError(errorCode);
                break;

            default:
                base.OnActivityResult(requestCode, resultCode, data);
                break;
            }
        }
Пример #3
0
        /**
         * When calling {@link Wallet#loadFullWallet(GoogleApiClient, FullWalletRequest, int)} or
         * resolving connection errors with
         * {@link ConnectionResult#startResolutionForResult(android.app.Activity, int)},
         * the given {@link Activity}'s callback is called. Since in this case, the caller is a
         * {@link Fragment}, and not {@link Activity} that is passed in, this callback is forwarded to
         * {@link FullWalletConfirmationButtonFragment}, {@link PromoAddressLookupFragment} or
         * {@link LoginFragment}.
         * If the requestCode is one of the predefined codes to handle
         * the API calls, pass it to the fragment or else treat it normally.
         */
        protected override void OnActivityResult(int requestCode, Android.App.Result resultCode, Intent data)
        {
            switch (requestCode)
            {
            case FullWalletConfirmationButtonFragment.REQUEST_CODE_RESOLVE_LOAD_FULL_WALLET:
            case FullWalletConfirmationButtonFragment.REQUEST_CODE_RESOLVE_ERR:
            case PromoAddressLookupFragment.REQUEST_CODE_RESOLVE_ADDRESS_LOOKUP:
            case PromoAddressLookupFragment.REQUEST_CODE_RESOLVE_ERR:
            case LoginFragment.REQUEST_CODE_RESOLVE_ERR:
                var fragment = ResultTargetFragment;
                if (fragment != null)
                {
                    fragment.OnActivityResult(requestCode, (int)resultCode, data);
                }
                break;

            case REQUEST_USER_LOGIN:
                if (resultCode == Android.App.Result.Ok)
                {
                    AndroidX.Core.App.ActivityCompat.InvalidateOptionsMenu(this);
                }
                break;

            default:
                base.OnActivityResult(requestCode, resultCode, data);
                break;
            }
        }
Пример #4
0
        private void OnActivityResult(int requestCode, Android.App.Result resultCode, Intent data)
        {
            Android.Util.Log.Debug("gvl", $"resultCode: {resultCode}");

            if (data != null)
            {
                // Retrieve the extractions from the result data
                Bundle extractionsBundle = data.GetBundleExtra(CameraActivity.ExtraOutExtractions);
                if (extractionsBundle != null)
                {
                    extractions = new Dictionary <string, GiniVisionSpecificExtraction>();

                    foreach (var key in extractionsBundle.KeySet())
                    {
                        GiniVisionSpecificExtraction extraction = (GiniVisionSpecificExtraction)extractionsBundle.GetParcelable(key);

                        extractions.Add(key, extraction);

                        Android.Util.Log.Debug("gvl", $"extraction: {extraction.Name} = {extraction.Value}");
                    }

                    // Send feedback after the user has seen and potentially modified the extractions
                    sendFeedback();
                }
            }

            var activity = (MainActivity)Forms.Context;

            activity.ActivityResult -= OnActivityResult;
        }
Пример #5
0
 protected override void OnActivityResult(int requestCode, Android.App.Result resultCode, Intent data)
 {
     switch ((ActivityRequest)requestCode)
     {
     case ActivityRequest.RequestAppStorePermissions:
         RequestStoragePermissions(true);
         break;
     }
 }
Пример #6
0
 public static void OnIAPCallback(int requestCode, Android.App.Result resultCode, Android.Content.Intent data)
 {
     // For Plugin.InAppBilling.
     try {
         Plugin.InAppBilling.InAppBillingImplementation.HandleActivityResult(requestCode, resultCode, data);
     } catch (Exception exc) {
         Console.WriteLine("Got exception IAP: {0}:", exc);
     }
 }
Пример #7
0
 protected override void OnActivityResult(int requestCode, Android.App.Result resultCode, Intent data)
 {
     switch ((ActivityRequest)requestCode)
     {
     case ActivityRequest.RequestDevelopmentSettings:
         UpdateDisplay();
         break;
     }
 }
Пример #8
0
        private void sendResult(Android.App.Result resultCode)
        {
            if (TargetFragment == null)
            {
                return;
            }

            var i = new Intent();

            i.PutExtra(EXTRA_DATE, _date.ToString());

            TargetFragment.OnActivityResult(TargetRequestCode, (int)resultCode, i);
        }
Пример #9
0
        /// <summary>
        /// 开始屏幕录制
        /// </summary>
        public void StartRecord_ActualMethod(Android.App.Result resultCode, Android.Content.Intent data)
        {
            string msg = string.Empty;

            if (resultCode != Android.App.Result.Ok) // 用户拒绝授权
            {
                s_IsRunning.Set(false);

                msg = "用户已拒绝授权,录制屏幕停止执行。";
                System.Diagnostics.Debug.WriteLine(msg);
                showToast(msg);

                return;
            }

            // System.Threading.Thread.Sleep(500); // 以防截取到授权窗口,停顿 500 ms
            System.Threading.Thread.Sleep(1000);

            mProjection = mProjectionManager.GetMediaProjection((int)resultCode, data); // ok = -1

            Android.Util.DisplayMetrics displayMetrics = new Android.Util.DisplayMetrics();
            mAppActivity.WindowManager.DefaultDisplay.GetRealMetrics(displayMetrics);
            int width  = displayMetrics.WidthPixels;
            int height = displayMetrics.HeightPixels;

            initRecorder(width, height);
            mDisplay = mProjection.CreateVirtualDisplay
                       (
                name: "MyAndroidScreenRecord",
                width: width,
                height: height,
                dpi: (int)Android.Util.DisplayMetricsDensity.Medium, // TODO Dpi

                // DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, // TODO Xamarin.Android 中没有此参数
                flags: Android.Views.DisplayFlags.Presentation,

                surface: mMediaRecorder.Surface,
                callback: null,
                handler: null
                       );

            msg = "屏幕录像开始";
            System.Diagnostics.Debug.WriteLine(msg);
            // showToast(msg); // 不显示开始信息, 更好地进行录像

            //Xamarin.Essentials.MainThread.BeginInvokeOnMainThread(() =>
            //{
            mMediaRecorder.Start();
            //});
        }
Пример #10
0
 protected override void OnActivityResult(int requestCode, [GeneratedEnum] Android.App.Result resultCode, Intent data)
 {
     if (requestCode == REQ_VPN)
     {
         Logging.info("VPN grant: " + resultCode);
         if (resultCode == Android.App.Result.Ok)
         {
             StartServiceWithAction(BgService.Actions.START_VPN);
         }
     }
     else
     {
         Logging.warning("Unknown requestCode: " + requestCode);
     }
 }
Пример #11
0
        public void Handle_OpenBluetooth(int requestCode, Android.App.Result resultCode, Intent data)
        {
            // TODO 设想 : 对于未开启蓝牙的情况下, 要求某个蓝牙的操作, 在开启后根据 requestCode 自动执行对应行动(某个蓝牙的操作)
            switch (requestCode)
            {
            case 8766:
                string a = "";
                break;

            case 8767:
                string b = "";
                break;

            case 8768:
                string c = "";
                break;

            default:
                break;
            }

            // return this.BluetoothIsEnabled;
        }
Пример #12
0
        protected void OnActivityResult(int requestCode, Android.App.Result resultVal, Intent data)
        {
            if (requestCode == VOICE)
            {
                if (resultVal == Android.App.Result.Ok)
                {
                    var matches = data.GetStringArrayListExtra(RecognizerIntent.ExtraResults);
                    if (matches.Count != 0)
                    {
                        string textInput = city.Text + matches[0];
                        city.Text = textInput;
                        search.CallOnClick();
                    }
                    else
                    {
                        city.Text = "No speech was recognised";
                    }

                    OnActivityResult(requestCode, resultVal, data);
                }
            }
            // This function was from a plugin, but it reads out the text that is passed int it
        }
Пример #13
0
        protected override void OnActivityResult(int requestCode, Android.App.Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);

            if (requestCode == REQUEST_MESSAGING_CHANNEL_LIST)
            {
                if (resultCode == Android.App.Result.Ok && data != null)
                {
                    SendBirdSDK.JoinMessaging(data.GetStringExtra("channelUrl"));
                }
            }
            else if (requestCode == REQUEST_MEMBER_LIST)
            {
                if (resultCode == Android.App.Result.Ok && data != null)
                {
                    try {
                        SendBirdSDK.InviteMessaging(SendBirdSDK.GetCurrentChannel().url, new List <string>(data.GetStringArrayExtra("userIds")));
                    } catch (Exception e) {
                        Console.WriteLine(e.StackTrace);
                    }
                }
            }
        }
        protected override void OnActivityResult(int requestCode, Android.App.Result resultCode, Android.Content.Intent data)
        {
            // retrieve the error code, if available
            int errorCode = -1;

            if (data != null)
            {
                errorCode = data.GetIntExtra(WalletConstants.ExtraErrorCode, -1);
            }
            switch (requestCode)
            {
            case REQUEST_CODE_MASKED_WALLET:
                switch (resultCode)
                {
                case Android.App.Result.Ok:
                    var maskedWallet = data.GetParcelableExtra(WalletConstants.ExtraMaskedWallet).JavaCast <MaskedWallet> ();
                    launchConfirmationPage(maskedWallet);
                    break;

                case Android.App.Result.Canceled:
                    break;

                default:
                    HandleError(errorCode);
                    break;
                }
                break;

            case WalletConstants.ResultError:
                HandleError(errorCode);
                break;

            default:
                base.OnActivityResult(requestCode, resultCode, data);
                break;
            }
        }
        protected override void OnActivityResult(int requestCode, Android.App.Result resultCode, Intent data)
        {
            switch ((ActivityRequest)requestCode)
            {
            case ActivityRequest.RequestDevelopmentSettings:
                UpdateDisplay();
                break;

            case ActivityRequest.RequestOpenDocumentTreeToApp:
                if (data != null && resultCode == Android.App.Result.Ok)
                {
                    Android.Net.Uri treeUri = data.Data;
                    if (treeUri != null)
                    {
                        _instanceData.CopyToAppSrcUri = treeUri.ToString();
                        if (!string.IsNullOrEmpty(_instanceData.CopyToAppSrcUri))
                        {
                            SelectCopyAppDir(false);
                        }
                    }
                }
                break;

            case ActivityRequest.RequestOpenDocumentTreeFromApp:
                if (data != null && resultCode == Android.App.Result.Ok)
                {
                    Android.Net.Uri treeUri = data.Data;
                    if (treeUri != null)
                    {
                        _instanceData.CopyFromAppDstUri = treeUri.ToString();
                        if (!string.IsNullOrEmpty(_instanceData.CopyFromAppSrcPath) && !string.IsNullOrEmpty(_instanceData.CopyFromAppDstUri))
                        {
                            try
                            {
                                DocumentFile srcDir = DocumentFile.FromFile(new Java.IO.File(_instanceData.CopyFromAppSrcPath));
                                DocumentFile dstDir = DocumentFile.FromTreeUri(this, Android.Net.Uri.Parse(_instanceData.CopyFromAppDstUri));
                                if (_activityCommon.RequestCopyDocumentsThread(srcDir, dstDir, (result, aborted) => { }))
                                {
                                    ActivityCommon.CopyFromAppSrc = _instanceData.CopyFromAppSrcPath;
                                    ActivityCommon.CopyFromAppDst = _instanceData.CopyFromAppDstUri;
                                }
                            }
                            catch (Exception)
                            {
                                // ignored
                            }
                        }
                    }
                }
                break;

            case ActivityRequest.RequestSelDirToApp:
                if (data != null && resultCode == Android.App.Result.Ok)
                {
                    _instanceData.CopyToAppDstPath = data.Extras?.GetString(FilePickerActivity.ExtraFileName);
                    if (!string.IsNullOrEmpty(_instanceData.CopyToAppSrcUri) && !string.IsNullOrEmpty(_instanceData.CopyToAppDstPath))
                    {
                        try
                        {
                            DocumentFile srcDir = DocumentFile.FromTreeUri(this, Android.Net.Uri.Parse(_instanceData.CopyToAppSrcUri));
                            DocumentFile dstDir = DocumentFile.FromFile(new Java.IO.File(_instanceData.CopyToAppDstPath));
                            if (_activityCommon.RequestCopyDocumentsThread(srcDir, dstDir, (result, aborted) => { }))
                            {
                                ActivityCommon.CopyToAppDst   = _instanceData.CopyToAppDstPath;
                                ActivityCommon.CopyFromAppDst = _instanceData.CopyFromAppDstUri;
                            }
                        }
                        catch (Exception)
                        {
                            // ignored
                        }
                    }
                }
                break;

            case ActivityRequest.RequestSelDirFromApp:
                if (data != null && resultCode == Android.App.Result.Ok)
                {
                    _instanceData.CopyFromAppSrcPath = data.Extras?.GetString(FilePickerActivity.ExtraFileName);
                    if (!string.IsNullOrEmpty(_instanceData.CopyFromAppSrcPath))
                    {
                        SelectCopyDocumentTree(true);
                    }
                }
                break;

            case ActivityRequest.RequestSelDirDelApp:
                if (data != null && resultCode == Android.App.Result.Ok)
                {
                    string delPath = data.Extras?.GetString(FilePickerActivity.ExtraFileName);
                    if (!string.IsNullOrEmpty(delPath))
                    {
                        try
                        {
                            DocumentFile delDir = DocumentFile.FromFile(new Java.IO.File(delPath));
                            _activityCommon.RequestDeleteDocumentsThread(delDir, (result, aborted) => { });
                        }
                        catch (Exception)
                        {
                            // ignored
                        }
                    }
                }
                break;
            }
        }
Пример #16
0
        protected override void OnActivityResult(int requestCode, Android.App.Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);

            _billingManager.OnActivityResult(requestCode, resultCode, data);
        }
Пример #17
0
        public void Screenshot_ActualMethod(Android.App.Result resultCode, Android.Content.Intent data)
        {
            string msg = string.Empty;

            if (resultCode != Android.App.Result.Ok) // 用户拒绝授权
            {
                s_IsRunning.Set(false);
                msg = "用户已拒绝授权,屏幕截图停止执行。";
                System.Diagnostics.Debug.WriteLine(msg);
                showToast(msg);
                return;
            }

            // System.Threading.Thread.Sleep(500); // 以防截取到授权窗口,停顿 500 ms
            System.Threading.Thread.Sleep(1000);                                        // 以防截取到授权窗口,停顿 500 ms

            mProjection = mProjectionManager.GetMediaProjection((int)resultCode, data); // ok = -1

            Android.Util.DisplayMetrics displayMetrics = new Android.Util.DisplayMetrics();
            mAppActivity.WindowManager.DefaultDisplay.GetRealMetrics(displayMetrics);
            int width  = displayMetrics.WidthPixels;
            int height = displayMetrics.HeightPixels;

            if (mImageReader != null)
            {
                mImageReader.Close();
                mImageReader = null;
            }

            if (mDisplay != null)
            {
                mDisplay.Release();
                mDisplay = null;
            }

            mImageReader = Android.Media.ImageReader.NewInstance
                           (
                width: width,
                height: height,
                // Bitmap.Config.ARGB_8888 // Android 源码传入参数
                // format: Android.Graphics.ImageFormatType.FlexRgba8888, // 由于没有 Config.ARGB_8888, 故从 AndroidStudio 中获取 Config.ARGB_8888 枚举的值 ( = 1 )
                format: (Android.Graphics.ImageFormatType) 1, // Bitmap.Config.ARGB_8888
                maxImages: 2
                           );

            mDisplay = mProjection.CreateVirtualDisplay
                       (
                name: "MyAndroidScreenshot",
                width: width,
                height: height,
                dpi: (int)Android.Util.DisplayMetricsDensity.Medium,
                flags: Android.Views.DisplayFlags.Presentation,
                surface: mImageReader.Surface,
                callback: null,
                handler: null
                       );

            var listener = new MyScreenshotListener
                           (
                width: width,
                height: height,
                imageFileDateTime: mImageFileDateTime,
                dirName: mDirName
                           );

            mImageReader.SetOnImageAvailableListener(listener: listener, handler: getBackgroundHandler());

            msg = "屏幕截图开始";
            System.Diagnostics.Debug.WriteLine(msg);
            // showToast(msg); // 不显示开始信息, 更好地进行截图
        }
Пример #18
0
        protected override void OnActivityResult(int requestCode, Android.App.Result resultCode, Intent data)
        {
            LifecycleDelegate.OnActivityResult(requestCode, (Android.App.Result)resultCode, data);

            base.OnActivityResult(requestCode, resultCode, data);
        }
Пример #19
0
 /// <inheritdoc />
 public virtual void OnActivityResult(int requestCode, Android.App.Result resultCode, Intent?data)
 {
 }