WP-Admin Warning Message

I am receiving the following error message in WP-Admin:
Warning: Invalid argument supplied for foreach() in /home/s4ycom5/public_html/demo/xir/wp-content/themes/xir/plugins/options-framework/admin/options-functions.php on line 111

below is the code around line 111:
// get google fonts list and cache it
function dt_get_google_fonts_list() {
$default_list = array(
'PT Sans:700&subset=latin-ext' => 'PT Sans bold(700) latin-ext',
'Bitter&subset=latin-ext' => 'Bitter latin-ext',
'PT Sans:700' => 'PT Sans bold(700)',
'Niconne&subset=latin-ext' => 'Niconne latin-ext',
'PT Sans' => 'PT Sans',
'Bitter' => 'Bitter',
'Playball&subset=latin-ext' => 'Playball latin-ext',
'Alice' => 'Alice',
'Allerta' => 'Allerta',
'Arvo' => 'Arvo',
'Antic' => 'Antic',

'Bangers' => 'Bangers',
'Bitter' => 'Bitter',

'Cabin' => 'Cabin',
'Cardo' => 'Cardo',
'Carme' => 'Carme',
'Coda' => 'Coda',
'Coustard' => 'Coustard',
'Gruppo' => 'Gruppo',

'Damion' => 'Damion',
'Dancing Script' => 'Dancing Script',
'Droid Sans' => 'Droid Sans',
'Droid Serif' => 'Droid Serif',

'EB Garamond' => 'EB Garamond',

'Fjord One' => 'Fjord One',

'Inconsolata' => 'Inconsolata',

'Josefin Sans' => 'Josefin Sans',
'Josefin Slab' => 'Josefin Slab',

'Kameron' => 'Kameron',
'Kreon' => 'Kreon',

'Lobster' => 'Lobster',
'League Script' => 'League Script',

'Mate SC' => 'Mate SC',
'Mako' => 'Mako',
'Merriweather' => 'Merriweather',
'Metrophobic' => 'Metrophobic',
'Molengo' => 'Molengo',
'Muli' => 'Muli',

'Nobile' => 'Nobile',
'News Cycle' => 'News Cycle',

'Open Sans' => 'Open Sans',
'Orbitron' => 'Orbitron',
'Oswald' => 'Oswald',

'Pacifico' => 'Pacifico',
'Poly' => 'Poly',
'Podkova' => 'Podkova',

'Quattrocento' => 'Quattrocento',
'Questrial' => 'Questrial',
'Quicksand' => 'Quicksand',

'Raleway' => 'Raleway',

'Salsa' => 'Salsa',
'Sunshiney' => 'Sunshiney',
'Signika Negative' => 'Signika Negative',

'Tangerine' => 'Tangerine',
'Terminal Dosis' => 'Terminal Dosis',
'Tenor Sans' => 'Tenor Sans',

'Varela Round' => 'Varela Round',

'Yellowtail' => 'Yellowtail'
);

$fonts_lst = array();
if ( false === ( $fonts_lst = get_transient( 'dt_admin_fonts_list' ) ) ) {
$f_list = wp_remote_fopen( esc_url( 'https://www.googleapis.com/webfonts/v1/webfonts?sort=alpha' ) );
if ( $f_list && function_exists( 'json_decode' ) ) {

$dec_arr = json_decode( $f_list, true );
foreach( $dec_arr['items'] as $item ) {
$subsets = $variants = array();

if ( isset( $item['variants'] ) ) {
foreach( $item['variants'] as $v ) {
if ( 'regular' == $v ) { $fonts_lst[ $item['family'] ] = $item['family']; continue; }

$vars = explode( 'italic', $v );
$bold = ! empty( $vars[0] ) ? 'bold (' . $vars[0] . ')' : '';
$italic = isset( $vars[1] ) ? 'italic' : '';

if ( $italic && ! $bold ) { $v = '400' . $v; }
$variants[ $v ] = $bold . ' ' . $italic;

$fonts_lst[ $item['family'] . ':' . $v ] = $item['family'] . ' ' . $variants[ $v ];
}
}

if ( isset( $item['subsets'] ) && count( $item['subsets'] ) > 1 ) {
foreach ( $item['subsets'] as $s ) {
if ( 'latin' == $s ) { continue; }
$fonts_lst[ $item['family'] . '&subset=' . $s ] = $item['family'] . ' ' . $s;
$subsets[] = $s;
}
}

foreach ( $variants as $v=>$str ) {
foreach ( $subsets as $s ) {
$fonts_lst[ $item['family']. ':'. $v. '&subset='. $s ] = $item['family'] . ' ' . $str . ' ' . $s;
}
}
}
}

$life_time = 60*60*24*7;
if ( empty( $fonts_lst ) ) {
$fonts_lst = $default_list;
$life_time = 60*30;
}
set_transient( 'dt_admin_fonts_list', $fonts_lst, $life_time );
}

return $fonts_lst;
}

Can someone please help - I am not sure what is causing the error.

Many Thanks,
Isaac