¿Cómo establecer el primer valor del proceso Seekbar es asignar el valor inicial del segundo Seekbar en Android?

Tengo dos barras de búsqueda. Quiero establecer el primer valor del proceso de Seekbar es asignar el valor inicial de la segunda Seekbar. Mi requisito exacto es, quiero cubrir de 0 a 100 con tres barras de búsqueda. Ej: Si FirstSeekBar cubre de 1 a 30, la segunda barra de búsqueda comienza automáticamente de 30 a 100. si configuro el valor de proceso 60 en la segunda barra de búsqueda, la tercera barra de búsqueda comienza automáticamente de 60 a 100. Por favor ayúdame a resolver este problema.

activity.xml

<SeekBar
    android:id="@+id/firstSeekBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="30dp"/>
<SeekBar
    android:id="@+id/secondSeekBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp" />
<SeekBar
    android:id="@+id/thirdSeekBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp" />

SeekBarActivity.java

firstSeekBar.setOnSeekBarChangeListener(
            new SeekBar.OnSeekBarChangeListener() {
                int firstPgrValue;
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    firstPgrValue = progress;
                    secondSeekBar.setEnabled(true);
                    txtFirstSeek.setText("First (" + progress + " / " + firstSeekBar.getMax() + ")");
                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {
                    shortMessage(MainActivity.this, "Progress Start");
                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {
                    if (firstPgrValue == 0) {
                        secondSeekBar.setEnabled(false);
                        redSeekBar.setEnabled(false);
                    }
                    txtFirstSeek.setText("First (" + firstPgrValue + " / " + firstSeekBar.getMax() + ")");
                    shortMessage(MainActivity.this, "Progress Stopped");
                }
            }
    );

    secondSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        int secondPgrValue;
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            secondPgrValue = progress;
            thirdSeekBar.setEnabled(true);
            txtSecondSeek.setText("Second (" + progress + " / " + secondSeekBar.getMax() + ")");
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            shortMessage(MainActivity.this, "Progress Start");
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
        if (secondPgrValue == 0) {
           thirdSeekBar.setEnabled(false);
        }
            txtSecondSeek.setText("Second (" + secondPgrValue + " / " + secondSeekBar.getMax() + ")");
            shortMessage(MainActivity.this, "Progress Stopped");
        }
    });
thirdSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        int thirdPsrValue;
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            thirdPsrValue = progress;
            txtRedSeek.setText("Third (" + progress + " / " + redSeekBar.getMax() + ")");
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            shortMessage(MainActivity.this, "Progress Start");
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            txtThirdSeek.setText("Third (" + thirdPsrValue + " / " + thirdSeekBar.getMax() + ")");
            shortMessage(MainActivity.this, "Progress Stopped");
        }
    });

Respuestas a la pregunta(1)

Su respuesta a la pregunta