Не удается скрыть кнопку с плавающим действием при установлении вызова SIP с помощью Android sipManager? - PullRequest
0 голосов
/ 04 октября 2019

Я создал простой SIP-вызов с помощью Android SipManager. Я хотел спрятать и показать список плавающих кнопок действий на разных этапах состояния вызова. Например, когда пользователь нажимает кнопку вызова, я хочу отобразить некоторые плавающие кнопки действий и скрыть другие. Но как только между двумя пользователями используется вызов, я хочу отобразить и скрыть какую-нибудь другую кнопку с плавающим действием. но это, кажется, не работает вообще. Я пытался скрыть плавающую кнопку действия внутри функции oncallEstablished. но это не работает. Моя главная идея, как только я смогу успешно соединить оба агента, хочу показать одну плавающую кнопку действия. но плавающая кнопка действия внутри функции oncallEstablised не работает.

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.voip);





        make();

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        FloatingActionButton fab1 = (FloatingActionButton) findViewById(R.id.fab1);
        FloatingActionButton fab6 = (FloatingActionButton) findViewById(R.id.fab6);
        FloatingActionButton fab7 = (FloatingActionButton) findViewById(R.id.fab7);


        fab.setOnClickListener(this);
        fab1.setOnClickListener(this);
        fab1.setVisibility(View.GONE);
        fab6.setVisibility(View.GONE);
        fab7.setVisibility(View.GONE);



    }



    /**
     * Used to create the local profile
     */
    private void make()
    {
        // Determines if the device is capable of VOIP
        if (SipManager.isVoipSupported(getApplicationContext()) &&
                SipManager.isApiSupported(getApplicationContext())) {
            Log.e("$$", "VoipActivity");
            // Creates a Sip Manager for the App
            makeSipManager();


            // Creates the User's Sip Profile
            makeSipProfile();

            Log.d("Test", SENDCALL.toString());

            call = new SipAudioCall(this, profile); // set up your calling profile

            // Listener object to handle SIP functions
            SipAudioCall.Listener listener = new SipAudioCall.Listener() {



                /**
                 * Name: onCallEstablished
                 * Description: onCallEstablished is called when the
                 * user establishes a call. This method
                 * will enable the User to talk to the
                 * person on the opposite line.
                 */
                @Override
                public void onCallEstablished(SipAudioCall call) {



                    super.onCallEstablished(call);
                    call.startAudio();
                    call.setSpeakerMode(true);

//below list of floating action button hiding statement doesnt works

                    FloatingActionButton fab7 = (FloatingActionButton) findViewById(R.id.fab7);
                    FloatingActionButton fab6 = (FloatingActionButton) findViewById(R.id.fab6);

                    fab6.setVisibility(View.GONE);

                    fab7.setVisibility(View.VISIBLE);



                    Log.d("call", "Call established");

                    if (call.isMuted()) {
                        call.toggleMute();
                    }


                }

                /**
                 * Name: onCallEnded
                 * Description: onCallEnded is called when the call is ended
                 */
                @Override
                public void onCallEnded(SipAudioCall endedCall) {
                    super.onCallEnded(endedCall);
                    Log.d("call", "Call ended");
                    try {
                        endedCall.endCall();
                    } catch (SipException e) {
                        e.printStackTrace();
                    }
                }
            };
            call.setListener(listener);

            // Set up Intent filter to receive calls
            IntentFilter filter = new IntentFilter();
            filter.addAction("android.VOIPDEMO.INCOMING_CALL");
            receiver = new IncomingReceiver();
            this.registerReceiver(receiver, filter);
        }
        else {
            setText("Your device does not support VOIP");
        }
    }





    public void onClick(View v)
    {
        if (v.getId() == R.id.fab) {

            View view = findViewById(R.id.fab1);
            View view3 =findViewById(R.id.fab3);
            View view4 =findViewById(R.id.fab4);
            View view6 =findViewById(R.id.fab6);


            view.setVisibility(View.VISIBLE);
            View view1 = findViewById(R.id.fab);
            view1.setVisibility(View.GONE);
            view3.setVisibility(View.VISIBLE);
            view4.setVisibility(View.VISIBLE);
            view6.setVisibility(View.GONE);




            // Make a Call
            setText("Alarm Call Made");
            SipProfile.Builder builder;
            SipProfile toCall;
            try {
                builder = new SipProfile.Builder(SENDCALL.toString(), DOMAIN);


                toCall = builder.build();
                SipSession.Listener ssl = new SipSession.Listener() {
                    @Override
                    public void onCallEnded(SipSession session) {
                        super.onCallEnded(session);
                        try {
                            call.endCall();
                        } catch (SipException e) {
                            e.printStackTrace();
                        }
                        session.endCall();
                    }
                };

                call.makeCall(toCall, manager.createSipSession(profile, ssl), 30);


            } 
        }
        else { // if v.getId() == R.id.endCall
            View view = findViewById(R.id.fab1);
            view.setVisibility(View.GONE);
            View view1 = findViewById(R.id.fab);
            view1.setVisibility(View.VISIBLE);
            View view6 = findViewById(R.id.fab6);

            view6.setVisibility(View.GONE);

            setText("Alarm Call Ended");
            try {
                call.endCall();
            } catch (SipException e) {
                e.printStackTrace();
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...