What is the correct way to display HRM on a watchface?

I'm using this method to display HRM on my watch faces... 

But some users report that it doesn't work correctly on FR 735 and F3 HR...
What's wrong with my code?

 

var hrm_sample = null;
var hrm_value = null;
var activity_hrm = Activity.getActivityInfo();



if (activity_hrm has :currentHeartRate) {
    hrm_value = activity_hrm.currentHeartRate;
}
else if ( ActivityMonitor has :getHeartRateHistory) {

    hrm_sample = ActivityMonitor.getHeartRateHistory(1, true).next();

    if ( (hrm_sample != null) && ( hrm_sample.heartRate != ActivityMonitor.INVALID_HR_SAMPLE ) ) {
        hrm_value = hrm_sample.heartRate;
    }
}

// hrm_value = 69;
if ( hrm_value != null ) {
    var str_hrm = "H";

    if ( is_1hz == true ) {
        if ( clock_time.sec % 2 == 0) {
            str_hrm = "I";
        } else {
            str_hrm = "J";
        }
    }

    draw_text(dc, pos_hrm["x"], pos_hrm["y"], fnt_icons, str_hrm, stp_text_color, Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, stp_text_outline);
    draw_text(dc, pos_hrm["x"] + gap_icon, pos_hrm["y"], fnt_small_fonts, hrm_value.format("%03d"),  stp_text_color, Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, stp_text_outline);
}