Bluetooh not working

i have been using nixos on my Asus TUF A17 for quite some time now and in the initial days bluetooth was working good.
i have a pair of Oppo Enco Air 3 Pro tws earbuds that i use on the regular,
i havent used them on nixos for some time and now they dont connect automatically or work at all,
i was never able to get the audio plus mic working on them and now even the audio doesnt work,
when i connect them spotify app or yt music on the browser stops playing the music and refuse to change tracks or play any audio, but as soon as i turn off bluetooth, audio starts playing from my laptops speakers.

{ config, pkgs, ... }:

  hardware.bluetooth = {
    enable = true;
    powerOnBoot = false;
    settings = {
      General = {
        ControllerMode = "dual";
        Experimental = true;
        # IdleTimeout = 30;
    # package = pkgs.bluez;
    # hsphfpd.enable = true;
  # services.blueman.enable=true;

this is my bluetooth.nix, i’ve tried around in all forums but couldnt find a relevant post

Bluetooth is a fickle beast. Do you use pipewire?

This is a pretty common symptom of the connection not being set up. AIUI your browser will pause media replay until the audio sink works, which doesn’t happen if the bluetooth device is in that weird limbo step it sometimes ends up in.

IME, this is usually caused by having more than one device connected to a headset at the same time. Disconnecting all other bluetooth devices really helps solve these issues. That’s not NixOS specific - it happens between my switch and android phone, too, for example, though I think my desktop bluetooth is weaker and has more latency, so the former two are more likely to connect first, causing problems primarily on my desktop.

it wasnt much about the bluetooth config, but more of a pipewire not supporting codec kinda thing.
i just set this

{pkgs, ...}:

    sound.enable = true;
    hardware.pulseaudio.enable = false;
    security.rtkit.enable = true;
    services.pipewire = {
        enable = true;
        alsa.enable = true;
        alsa.support32Bit = true;
        pulse.enable = true;
        wireplumber.configPackages = [
          (pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/10-bluez.conf" ''
   = {
              bluez5.roles = [ a2dp_sink a2dp_source bap_sink bap_source hsp_hs hsp_ag hfp_hf hfp_ag ]
              bluez5.codecs = [ sbc sbc_xq aac ]
              bluez5.enable-sbc-xq = true
              bluez5.hfphsp-backend = "native"