! \wp_next_scheduled( Cleanup_Integration::START_HOOK ) ) { // This just schedules the cleanup routine cron again. \wp_schedule_single_event( ( \time() + ( \MINUTE_IN_SECONDS * 5 ) ), Cleanup_Integration::START_HOOK ); } return; } } } } from the database, and otherwise considers * whether the old words need to have their weights updated. * * @param int $indexable_id The id of the indexable which needs to have its * old words updated. * @param Prominent_Words[] $old_words An array with prominent words that were already * present in the database for a given indexable. * @param array $words The new prominent words for a given indexable. * * @return array The words that need to be created. */ protected function handle_old_words( $indexable_id, $old_words, $words ) { // Return early if the indexable didn't already have any prominent words associated with it. if ( empty( $old_words ) ) { return $words; } $outdated_stems = []; foreach ( $old_words as $old_word ) { // If an old prominent word is no longer associated with an indexable, // add it to the array with outdated stems, so that at a later step // it can be deleted from the database. if ( ! \array_key_exists( $old_word->stem, $words ) ) { $outdated_stems[] = $old_word->stem; continue; } // If the old word should still be associated with the indexable, // update its weight if that has changed. $this->update_weight_if_changed( $old_word, $words[ $old_word->stem ] ); // Remove the key from the array with the new prominent words. unset( $words[ $old_word->stem ] ); } // Delete all the outdated prominent words in one query. try { $this->prominent_words_repository->delete_by_indexable_id_and_stems( $indexable_id, $outdated_stems ); // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedCatch -- There is nothing to do. } catch ( Exception $exception ) { // Do nothing. } return $words; } /** * Updates the weight of the given prominent word, if the weight has changed significantly. * * @param Prominent_Words $word The prominent word of which to update the weight. * @param float $new_weight The new weight. * * @return void */ protected function update_weight_if_changed( $word, $new_weight ) { if ( \abs( $word->weight - $new_weight ) > 0.1 ) { $word->weight = $new_weight; $word->save(); } } /** * Creates the given words in the database and links them to the indexable with the given id. * * @param int $indexable_id The ID of the indexable. * @param array $words The prominent words to create, as a `'stem'` => weight` map. * * @return void */ protected function create_words( $indexable_id, $words ) { // Return early if there are no new words to add to the database. if ( empty( $words ) ) { return; } $new_models = []; foreach ( $words as $stem => $weight ) { $new_model = $this->prominent_words_repository->query()->create( [ 'indexable_id' => $indexable_id, 'stem' => $stem, 'weight' => $weight, ] ); $new_models[] = $new_model; } try { $this->prominent_words_repository->query()->insert_many( $new_models ); // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedCatch -- There is nothing to do. } catch ( Exception $exception ) { // Do nothing. } } } Soundstream Reserve HDHU14Si | CarTronics

Soundstream Reserve HDHU14Si

$999.99

Plug-n-Play OE Fit Apple CarPlay & Android Auto Headunit with CanBus integration and SiriusXM capability

In stock

SKU: HDHU14Si Category: Tag: Brand:

Description

Plug-n-Play 7″ Touchscreen Replacement Headunit for 2014+ Harley Davidson® Touring Motorcycles with Apple CarPlay®, Android Auto®
Apple CarPlay® Compatible w/ Siri Assistant
Android Auto® Compatible w/ Google Assistant
IPX5 Rated for Moisture / Direct Splash Intrusion
10 – Band Graphic Equalizer and 4V 6Ch RCA Output
Interface Required for Canbus Integrations and Handlebar Control Retention
UV-Resistant Coating and Conformal Coated Circuit Board
SiriusXM Ready (Tuner sold separately)

Additional information

Weight 5.00 lbs
Dimensions 5.00 × 5.00 × 5.00 in

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.