Cambiar la alineación de los botones de AlertDialog

He estado luchando durante horas por cambiar la alineación de los botones dentro de AlertDialog (support.v7 one), ya que no se alinearán de acuerdo con la dirección de la vista regional,a pesar de que toda la aplicación se alinea a la izquierda y también el texto dentro del AlertDialog.

(¿Por qué pasaría esto, dices? Estoy configurando programáticamente el idioma de la configuración regional para que sea "en", ya que ese es el idioma predeterminado de la aplicación, aunque la configuración regional del sistema podría ser otra cosa).

Entonces, como dije, no necesito tocar el mensaje dentro del cuadro de diálogo, pero como ejemplo, así es como cambiar su dirección:

TextView messageView = (TextView)dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.RIGHT); // or LEFT

Por supuesto, no funciona en los botones, ya que necesito cambiar la gravedad del diseño en su lugar.

Así es como encuentro los botones (después de llamar a show () en AlertDialog.Builder, por supuesto, de lo contrario serían nulos):

AppCompatButton accept = (AppCompatButton)dialog.findViewById(android.R.id.button1);
AppCompatButton cancel = (AppCompatButton)dialog.findViewById(android.R.id.button2);

Y así es como intento cambiar su alineación dentro de su LinearLayout principal:

((LinearLayout.LayoutParams)accept.getLayoutParams).gravity = Gravity.RIGHT;
((LinearLayout.LayoutParams)cancel.getLayoutParams).gravity = Gravity.RIGHT;

Elegí DERECHA ya que el lado de los botones dentro del cuadro de diálogo siempre es opuesto al lado al que está alineado el texto. (Sí, intenté IZQUIERDA también, nada cambió).

Esto no funciona ¿Alguien tiene una idea de cómo lograr esto? Parece que simplemente están atrapados en su lugar.

Editar: el título no está alineado también, acabo de confirmar esto (por alguna razón aparece a la derecha, como la configuración de mi sistema y no como la configuración de mi localidad).

Respuestas a la pregunta(2)

Su respuesta a la pregunta