.class public final Lcom/discord/utilities/integrations/SpotifyHelper; .super Ljava/lang/Object; .source "SpotifyHelper.kt" # static fields .field public static final INSTANCE:Lcom/discord/utilities/integrations/SpotifyHelper; .field public static final SPOTIFY_PACKAGE_NAME:Ljava/lang/String; = "com.spotify.music" .field public static final SPOTIFY_UTM_PARAMS:Ljava/lang/String; = "utm_source=discord&utm_medium=mobile" # direct methods .method public static constructor ()V .locals 1 new-instance v0, Lcom/discord/utilities/integrations/SpotifyHelper; invoke-direct {v0}, Lcom/discord/utilities/integrations/SpotifyHelper;->()V sput-object v0, Lcom/discord/utilities/integrations/SpotifyHelper;->INSTANCE:Lcom/discord/utilities/integrations/SpotifyHelper; return-void .end method .method public constructor ()V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static final synthetic access$launchSpotifyIntent(Lcom/discord/utilities/integrations/SpotifyHelper;Landroid/content/Context;Landroid/content/Intent;)V .locals 0 invoke-direct {p0, p1, p2}, Lcom/discord/utilities/integrations/SpotifyHelper;->launchSpotifyIntent(Landroid/content/Context;Landroid/content/Intent;)V return-void .end method .method private final launchSpotifyIntent(Landroid/content/Context;Landroid/content/Intent;)V .locals 3 :try_start_0 const-string v0, "android.intent.extra.REFERRER" new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "android-app://" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String; move-result-object v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-static {v1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; move-result-object v1 invoke-virtual {p2, v0, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent; invoke-virtual {p1, p2}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V :try_end_0 .catch Landroid/content/ActivityNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 nop invoke-virtual {p0, p1}, Lcom/discord/utilities/integrations/SpotifyHelper;->isSpotifyInstalled(Landroid/content/Context;)Z move-result p2 if-nez p2, :cond_0 invoke-virtual {p0, p1}, Lcom/discord/utilities/integrations/SpotifyHelper;->openPlayStoreForSpotify(Landroid/content/Context;)V :cond_0 :goto_0 return-void .end method .method public static final registerSpotifyBroadcastReceivers(Landroid/content/Context;)V .locals 3 const-string v0, "context" invoke-static {p0, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V new-instance v0, Lcom/discord/utilities/receiver/spotify/SpotifyMetadataReceiver; invoke-direct {v0}, Lcom/discord/utilities/receiver/spotify/SpotifyMetadataReceiver;->()V new-instance v1, Landroid/content/IntentFilter; const-string v2, "com.spotify.music.metadatachanged" invoke-direct {v1, v2}, Landroid/content/IntentFilter;->(Ljava/lang/String;)V invoke-virtual {p0, v0, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; new-instance v0, Lcom/discord/utilities/receiver/spotify/SpotifyPlayingStateReceiver; invoke-direct {v0}, Lcom/discord/utilities/receiver/spotify/SpotifyPlayingStateReceiver;->()V new-instance v1, Landroid/content/IntentFilter; const-string v2, "com.spotify.music.playbackstatechanged" invoke-direct {v1, v2}, Landroid/content/IntentFilter;->(Ljava/lang/String;)V invoke-virtual {p0, v0, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; return-void .end method .method private final runIfSpotifyInstalled(Lkotlin/jvm/functions/Function0;Landroid/content/Context;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lkotlin/jvm/functions/Function0<", "Lkotlin/Unit;", ">;", "Landroid/content/Context;", ")V" } .end annotation :try_start_0 invoke-interface {p1}, Lkotlin/jvm/functions/Function0;->invoke()Ljava/lang/Object; :try_end_0 .catch Landroid/content/ActivityNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 invoke-virtual {p0, p2}, Lcom/discord/utilities/integrations/SpotifyHelper;->isSpotifyInstalled(Landroid/content/Context;)Z move-result p1 if-nez p1, :cond_0 invoke-virtual {p0, p2}, Lcom/discord/utilities/integrations/SpotifyHelper;->openPlayStoreForSpotify(Landroid/content/Context;)V :cond_0 :goto_0 return-void .end method # virtual methods .method public final isSpotifyInstalled(Landroid/content/Context;)Z .locals 2 const-string v0, "context" invoke-static {p1, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const/4 v0, 0x0 :try_start_0 invoke-virtual {p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object p1 const-string v1, "com.spotify.music" invoke-virtual {p1, v1, v0}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo; :try_end_0 .catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 const/4 v0, 0x1 :catch_0 return v0 .end method .method public final launchAlbum(Landroid/content/Context;Lcom/discord/models/domain/activity/ModelActivity;JZ)V .locals 8 const-string v0, "context" invoke-static {p1, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V if-eqz p5, :cond_0 invoke-virtual {p0, p1}, Lcom/discord/utilities/integrations/SpotifyHelper;->openSpotifyApp(Landroid/content/Context;)V return-void :cond_0 if-eqz p2, :cond_1 invoke-virtual {p2}, Lcom/discord/models/domain/activity/ModelActivity;->getSessionId()Ljava/lang/String; move-result-object v4 if-eqz v4, :cond_1 const-string p5, "activity?.sessionId ?: return" invoke-static {v4, p5}, Lk0/n/c/i;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V invoke-virtual {p2}, Lcom/discord/models/domain/activity/ModelActivity;->getApplicationId()Ljava/lang/Long; move-result-object p2 if-eqz p2, :cond_1 const-string p5, "activity.applicationId ?: return" invoke-static {p2, p5}, Lk0/n/c/i;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V invoke-virtual {p2}, Ljava/lang/Long;->longValue()J move-result-wide v5 new-instance p2, Lcom/discord/utilities/integrations/SpotifyHelper$launchAlbum$1; move-object v1, p2 move-wide v2, p3 move-object v7, p1 invoke-direct/range {v1 .. v7}, Lcom/discord/utilities/integrations/SpotifyHelper$launchAlbum$1;->(JLjava/lang/String;JLandroid/content/Context;)V invoke-direct {p0, p2, p1}, Lcom/discord/utilities/integrations/SpotifyHelper;->runIfSpotifyInstalled(Lkotlin/jvm/functions/Function0;Landroid/content/Context;)V :cond_1 return-void .end method .method public final launchTrack(Landroid/content/Context;Lcom/discord/models/domain/activity/ModelActivity;)V .locals 2 const-string v0, "context" invoke-static {p1, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V if-eqz p2, :cond_0 invoke-virtual {p2}, Lcom/discord/models/domain/activity/ModelActivity;->getSyncId()Ljava/lang/String; move-result-object p2 if-eqz p2, :cond_0 sget-object v0, Lcom/discord/utilities/integrations/SpotifyHelper;->INSTANCE:Lcom/discord/utilities/integrations/SpotifyHelper; new-instance v1, Lcom/discord/utilities/integrations/SpotifyHelper$launchTrack$$inlined$let$lambda$1; invoke-direct {v1, p2, p1}, Lcom/discord/utilities/integrations/SpotifyHelper$launchTrack$$inlined$let$lambda$1;->(Ljava/lang/String;Landroid/content/Context;)V invoke-direct {v0, v1, p1}, Lcom/discord/utilities/integrations/SpotifyHelper;->runIfSpotifyInstalled(Lkotlin/jvm/functions/Function0;Landroid/content/Context;)V :cond_0 return-void .end method .method public final openPlayStoreForSpotify(Landroid/content/Context;)V .locals 8 const-string v0, "context" invoke-static {p1, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V new-instance v0, Ljava/lang/Thread; new-instance v1, Lcom/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1; invoke-direct {v1, p1}, Lcom/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1;->(Landroid/content/Context;)V invoke-direct {v0, v1}, Ljava/lang/Thread;->(Ljava/lang/Runnable;)V invoke-virtual {v0}, Ljava/lang/Thread;->start()V sget-object v2, Lcom/discord/utilities/uri/UriHandler;->INSTANCE:Lcom/discord/utilities/uri/UriHandler; const-string v4, "https://play.google.com/store/apps/details?id=com.spotify.music&utm_source=discord&utm_medium=mobile" const/4 v5, 0x0 const/4 v6, 0x4 const/4 v7, 0x0 move-object v3, p1 invoke-static/range {v2 .. v7}, Lcom/discord/utilities/uri/UriHandler;->handle$default(Lcom/discord/utilities/uri/UriHandler;Landroid/content/Context;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V return-void .end method .method public final openSpotifyApp(Landroid/content/Context;)V .locals 2 const-string v0, "context" invoke-static {p1, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V invoke-virtual {p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v0 const-string v1, "com.spotify.music" invoke-virtual {v0, v1}, Landroid/content/pm/PackageManager;->getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent; move-result-object v0 if-eqz v0, :cond_0 invoke-virtual {p1, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V :cond_0 return-void .end method