Advertisement
0xroot

Untitled

May 8th, 2011
1,421
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 39.15 KB | None | 0 0
  1. package com.spotify.mobile.android.model;
  2.  
  3. import android.content.Intent;
  4. import android.content.res.Resources;
  5. import android.net.Uri;
  6. import android.os.Handler;
  7. import android.widget.Toast;
  8. import com.spotify.mobile.android.jni.Album;
  9. import com.spotify.mobile.android.jni.Error;
  10. import com.spotify.mobile.android.jni.ImageObserverInterface;
  11. import com.spotify.mobile.android.jni.JNIObject;
  12. import com.spotify.mobile.android.jni.Playlist;
  13. import com.spotify.mobile.android.jni.Session;
  14. import com.spotify.mobile.android.jni.SessionObserverInterface;
  15. import com.spotify.mobile.android.jni.SocialUserData;
  16. import com.spotify.mobile.android.jni.Track;
  17. import com.spotify.mobile.android.jni.internal.ConnectivityListener;
  18. import com.spotify.mobile.android.service.LocalService;
  19. import com.spotify.mobile.android.service.SpotifyLog;
  20. import com.spotify.mobile.android.ui.EventSubscriberInterface;
  21. import com.spotify.mobile.android.ui.Launcher;
  22. import com.spotify.mobile.android.ui.lists.ListBuilder;
  23. import com.spotify.mobile.android.ui.lists.itemlists.ItemList;
  24. import com.spotify.mobile.android.ui.view.PlayerView;
  25. import com.spotify.mobile.android.ui.widget.SpotifyWidgetManager;
  26. import com.spotify.mobile.android.util.ActivityTracker;
  27. import com.spotify.mobile.android.util.CacheLocation;
  28. import com.spotify.mobile.android.util.NotificationCenter;
  29. import java.util.ArrayList;
  30. import java.util.Collection;
  31. import java.util.Hashtable;
  32. import java.util.Iterator;
  33.  
  34. public class CurrentUser
  35.   implements SessionObserverInterface
  36. {
  37.   public static final int EVT_ALBUM_BROWSE_COMPLETE = 160;
  38.   public static final int EVT_ALL = 99;
  39.   public static final int EVT_ARTIST_BROWSE_COMPLETE = 161;
  40.   public static final int EVT_AUTO_LOGGED_OUT = 181;
  41.   public static final int EVT_CACHE_CLEARED = 1003;
  42.   public static final int EVT_CLIENT_UPDATE_AVAILABLE = 210;
  43.   public static final int EVT_DEVMODE_CHANGED = 248;
  44.   public static final int EVT_INBOX_ITEM_READ = 1005;
  45.   public static final int EVT_LOGIN_DONE = 175;
  46.   public static final int EVT_LOGIN_OK = 176;
  47.   public static final int EVT_LOGOUT_DONE = 180;
  48.   public static final int EVT_METADATA_UPDATED = 261;
  49.   public static final int EVT_MUSIC_STARTED = 190;
  50.   public static final int EVT_PENDING_CHANGES_UPDATED = 1002;
  51.   public static final int EVT_PEOPLE_PHOTO_LOADED = 263;
  52.   public static final int EVT_PEOPLE_UPDATED = 262;
  53.   public static final int EVT_PLAYER_COMPLETE = 140;
  54.   public static final int EVT_PLAYLIST_CONTAINER_UPDATED = 1001;
  55.   public static final int EVT_PLAYLIST_FILTERING = 251;
  56.   public static final int EVT_PLAYLIST_LOADED = 280;
  57.   public static final int EVT_PLAYLIST_TRACK_REMOVED = 275;
  58.   public static final int EVT_PLAYLIST_UPDATED = 1000;
  59.   public static final int EVT_PLAYLIST_UPDATE_AFTER_LOGIN = 98;
  60.   public static final int EVT_SEARCH_COMPLETE = 110;
  61.   public static final int EVT_SETTING_UPDATED = 120;
  62.   public static final int EVT_STREAM_UPDATED = 270;
  63.   public static final int EVT_SYNC_STATUS_CHANGED = 130;
  64.   public static final int EVT_TOPLIST_TRACKBROWSE_COMPLETE = 152;
  65.   public static final int EVT_TOPLIST_TRACKBROWSE_UPDATED = 153;
  66.   public static final int EVT_TRACK_NOT_AVAILABLE_FOR_FREE_USERS = 260;
  67.   public static final int EVT_TRACK_NOT_AVAILABLE_IN_REGION = 259;
  68.   public static final int EVT_TRACK_NOT_AVAILABLE_ON_DEVICE = 258;
  69.   public static final int EVT_TRACK_PLAYING = 170;
  70.   public static final int EVT_TRACK_STARRED = 1004;
  71.   public static final int EVT_TRACK_SYNC_DONE = 131;
  72.   public static final int EVT_WHATS_NEW_COMPLETE = 150;
  73.   public static final int EVT_WHATS_NEW_UPDATED = 151;
  74.   public static final String NotificationTrackOfflineSyncDone = "NotificationTrackOfflineSyncDone";
  75.   public static final int PLAYQUEUE_MODIFIED = 249;
  76.   public boolean autoLogin = 1;
  77.   private BrowseManager browseManager;
  78.   private ItemList contextMenuOptions;
  79.   private DeviceInfo deviceInfo;
  80.   private FilteredPlaylistContainer filteredPlaylistContainer;
  81.   private boolean hasLocalMusicList;
  82.   public boolean hasRoamingWarnedDuringSession = 0;
  83.   private ImageManager imageManager;
  84.   public boolean isDevMode = 0;
  85.   private boolean isSignedIn = 0;
  86.   private Launcher launcherActivity;
  87.   private ListBuilder listBuilder;
  88.   private LocalService localService;
  89.   public int loginResult = -1;
  90.   public int logoutCode = -1;
  91.   public int logoutType = -1;
  92.   private ArrayList<JNIObjectMetaDataListener> metaDataUpdateListeners;
  93.   private boolean newContainerLock;
  94.   public Handler notificationHandler;
  95.   private boolean notificationLock;
  96.   private boolean notificationsEnabled = 1;
  97.   public boolean offlineSyncMode = 0;
  98.   private Player player;
  99.   private Playlist popupPlaylist;
  100.   public boolean previousAirplaneMode = 0;
  101.   public boolean processEventsFlag = 0;
  102.   public boolean searchBoxDisplayed = 0;
  103.   private SearchManager searchManager;
  104.   public int selectedHomeTab = -1;
  105.   public int selectedSearchTab = -1;
  106.   private Session session;
  107.   private Social social;
  108.   private long startTime = 65535L;
  109.   private Hashtable<Integer, ArrayList<EventSubscriberInterface>> subscribers;
  110.   private ToplistTrackBrowseObserver toplistTrackBrowseObserver;
  111.   public String updateURL;
  112.   private int visiblePlaylistIndex = -1;
  113.   private WhatsNewObserver whatsNewObserver;
  114.  
  115.   public CurrentUser(LocalService paramLocalService)
  116.   {
  117.     Hashtable localHashtable = new Hashtable();
  118.     this.subscribers = localHashtable;
  119.     this.newContainerLock = 0;
  120.     this.notificationLock = 0;
  121.     CurrentUser.1 local1 = new CurrentUser.1(this);
  122.     this.notificationHandler = local1;
  123.     this.hasLocalMusicList = 1;
  124.     ArrayList localArrayList = new ArrayList();
  125.     this.metaDataUpdateListeners = localArrayList;
  126.     long l = System.currentTimeMillis();
  127.     this.startTime = l;
  128.     this.localService = paramLocalService;
  129.     ListBuilder localListBuilder = new ListBuilder(this);
  130.     this.listBuilder = localListBuilder;
  131.     ImageManager localImageManager = new ImageManager(this);
  132.     this.imageManager = localImageManager;
  133.     BrowseManager localBrowseManager = new BrowseManager(this);
  134.     this.browseManager = localBrowseManager;
  135.     SearchManager localSearchManager = new SearchManager(this);
  136.     this.searchManager = localSearchManager;
  137.     DeviceInfo localDeviceInfo = new DeviceInfo(paramLocalService);
  138.     this.deviceInfo = localDeviceInfo;
  139.     Player localPlayer = getPlayer();
  140.     boolean bool1 = paramLocalService.getPreferenceBoolean("shuffle", 0);
  141.     localPlayer.setShuffle(bool1);
  142.     boolean bool2 = paramLocalService.getPreferenceBoolean("repeat", 0);
  143.     localPlayer.setRepeat(bool2);
  144.   }
  145.  
  146.   private void onDataChangeNotification(int paramInt)
  147.   {
  148.     Launcher localLauncher = getLauncherActivity();
  149.     switch (paramInt)
  150.     {
  151.     default:
  152.     case 1004:
  153.     case 261:
  154.     case 258:
  155.     case 260:
  156.     case 259:
  157.     }
  158.     while (true)
  159.     {
  160.       return;
  161.       FilteredPlaylist localFilteredPlaylist = getPlaylistContainer().getStarredList(1);
  162.       getPlaylistContainer().touch(localFilteredPlaylist);
  163.       continue;
  164.       handleMetaDataUpdate();
  165.       continue;
  166.       localLauncher.launchWebkitDialog("Info", "file:///android_asset/unplaylable-local-file.xhtml", "provideDeviceName('Android device')");
  167.       continue;
  168.       localLauncher.launchWebkitDialog("Info", "file:///android_asset/unplaylable-local-file.xhtml", "provideDeviceName('Android device');nagForPremium();");
  169.       continue;
  170.       localLauncher.launchWebkitDialog("Info", "file:///android_asset/unplaylable-local-file.xhtml", "provideDeviceName('Android device');wrongRegion();");
  171.     }
  172.   }
  173.  
  174.   public boolean addAlbumAsPlaylist(Album paramAlbum, Track[] paramArrayOfTrack)
  175.   {
  176.     return this.localService.addAlbumAsPlaylist(paramAlbum, paramArrayOfTrack);
  177.   }
  178.  
  179.   public boolean addTrackToPlaylist(Track paramTrack, int paramInt)
  180.   {
  181.     return this.localService.addTrackToPlaylist(paramTrack, paramInt);
  182.   }
  183.  
  184.   public boolean addTrackToPlaylist(Track[] paramArrayOfTrack, int paramInt)
  185.   {
  186.     return this.localService.addTrackToPlaylist(paramArrayOfTrack, paramInt);
  187.   }
  188.  
  189.   public void clearLoginCredentials()
  190.   {
  191.     this.localService.clearPreference("username");
  192.     this.localService.clearPreference("password");
  193.     this.localService.clearPreference("userless");
  194.   }
  195.  
  196.   public boolean createPlaylist(String paramString)
  197.   {
  198.     return this.localService.createPlaylist(paramString);
  199.   }
  200.  
  201.   public boolean deletePlaylist(int paramInt)
  202.   {
  203.     return this.localService.deletePlaylist(paramInt);
  204.   }
  205.  
  206.   public boolean deleteTrack(int paramInt1, int paramInt2)
  207.   {
  208.     return this.localService.deleteTrack(paramInt1, paramInt2);
  209.   }
  210.  
  211.   public boolean enableLastFMScrobbling(boolean paramBoolean, String paramString1, String paramString2)
  212.   {
  213.     StringBuilder localStringBuilder = new java/lang/StringBuilder;
  214.     String str1;
  215.     String str4;
  216.     if (paramBoolean)
  217.     {
  218.       str1 = "Enabling";
  219.       String str2 = String.valueOf(str1);
  220.       localStringBuilder.<init>(str2);
  221.       String str3 = " Last.fm scrobbling";
  222.       SpotifyLog.d("", str3);
  223.       if (paramString1 != null)
  224.         paramString1 = paramString1.trim();
  225.       if (paramString2 != null)
  226.         paramString2 = paramString2.trim();
  227.       str4 = this.localService.getUsername();
  228.       if ((!paramBoolean) || (paramString1 == null) || (paramString2 == null) || ("".equals(paramString1)) || ("".equals(paramString2)))
  229.         break label300;
  230.       String str5 = "SpotifiyUsername: " + str4;
  231.       SpotifyLog.d("", str5);
  232.       LocalService localLocalService1 = this.localService;
  233.       String str6 = "lastfm_username_" + str4;
  234.       localLocalService1.savePreferenceString(str6, paramString1);
  235.       LocalService localLocalService2 = this.localService;
  236.       String str7 = "lastfm_password_" + str4;
  237.       localLocalService2.savePreferenceString(str7, paramString2);
  238.       Session.setLastFmCredentials(paramString1, paramString2);
  239.       String str8 = "Saved Last.fm credentials: " + paramString1 + ", " + paramString2;
  240.       SpotifyLog.d("", str8);
  241.     }
  242.     while (true)
  243.     {
  244.       LocalService localLocalService3 = this.localService;
  245.       String str9 = "lastfm_scrobbling_" + str4;
  246.       localLocalService3.savePreferenceBoolean(str9, paramBoolean);
  247.       triggerEvent(120);
  248.       for (boolean bool = paramBoolean; ; bool = false)
  249.       {
  250.         return bool;
  251.         str1 = "Disabling";
  252.         break;
  253.         label300: if (!paramBoolean)
  254.           break label310;
  255.       }
  256.       label310: if (paramBoolean)
  257.         continue;
  258.       Session.setLastFmCredentials(null, null);
  259.     }
  260.   }
  261.  
  262.   public boolean getAutoLogin()
  263.   {
  264.     return this.localService.getPreferenceBoolean("autologin", 0);
  265.   }
  266.  
  267.   public BrowseManager getBrowseManager()
  268.   {
  269.     return this.browseManager;
  270.   }
  271.  
  272.   public ItemList getContentMenuOptions()
  273.   {
  274.     return this.contextMenuOptions;
  275.   }
  276.  
  277.   public DeviceInfo getDevice()
  278.   {
  279.     return this.deviceInfo;
  280.   }
  281.  
  282.   public String getDeviceID()
  283.   {
  284.     return this.localService.getIMEI();
  285.   }
  286.  
  287.   public String getDisplayName()
  288.   {
  289.     return "[Displayname]";
  290.   }
  291.  
  292.   public Handler getHandler()
  293.   {
  294.     return this.notificationHandler;
  295.   }
  296.  
  297.   public ImageManager getImageManager()
  298.   {
  299.     return this.imageManager;
  300.   }
  301.  
  302.   public String[] getLastFMScrobblingCredentials()
  303.   {
  304.     String str1 = this.localService.getUsername();
  305.     String[] arrayOfString = new String[2];
  306.     LocalService localLocalService1 = this.localService;
  307.     String str2 = "lastfm_username_" + str1;
  308.     String str3 = localLocalService1.getPreferenceString(str2);
  309.     arrayOfString[0] = str3;
  310.     LocalService localLocalService2 = this.localService;
  311.     String str4 = "lastfm_password_" + str1;
  312.     String str5 = localLocalService2.getPreferenceString(str4);
  313.     arrayOfString[1] = str5;
  314.     return arrayOfString;
  315.   }
  316.  
  317.   public Launcher getLauncherActivity()
  318.   {
  319.     return this.launcherActivity;
  320.   }
  321.  
  322.   public ListBuilder getListBuilder()
  323.   {
  324.     return this.listBuilder;
  325.   }
  326.  
  327.   public String[] getLoginCredentials()
  328.   {
  329.     String str1 = this.localService.getPreferenceString("username");
  330.     String str2 = this.localService.getPreferenceString("password");
  331.     String str3 = this.localService.getPreferenceString("userless");
  332.     String[] arrayOfString = new String[3];
  333.     arrayOfString[0] = str1;
  334.     arrayOfString[1] = str2;
  335.     arrayOfString[2] = str3;
  336.     return arrayOfString;
  337.   }
  338.  
  339.   public Player getPlayer()
  340.   {
  341.     if (this.player == null)
  342.     {
  343.       Player localPlayer = new Player(this);
  344.       this.player = localPlayer;
  345.     }
  346.     return this.player;
  347.   }
  348.  
  349.   public PlayerView getPlayerView()
  350.   {
  351.     return getLauncherActivity().getPlayerView();
  352.   }
  353.  
  354.   public FilteredPlaylistContainer getPlaylistContainer()
  355.   {
  356.     if ((this.filteredPlaylistContainer == null) && (!this.newContainerLock))
  357.     {
  358.       this.newContainerLock = 1;
  359.       FilteredPlaylistContainer localFilteredPlaylistContainer = new FilteredPlaylistContainer(this);
  360.       this.filteredPlaylistContainer = localFilteredPlaylistContainer;
  361.     }
  362.     return this.filteredPlaylistContainer;
  363.   }
  364.  
  365.   public Playlist getPopupPlaylist()
  366.   {
  367.     return this.popupPlaylist;
  368.   }
  369.  
  370.   public ItemList getPresentableCurrentPlaylist(String paramString)
  371.   {
  372.     return getPresentableCurrentPlaylist(0, paramString);
  373.   }
  374.  
  375.   public ItemList getPresentableCurrentPlaylist(boolean paramBoolean, String paramString)
  376.   {
  377.     Object localObject;
  378.     if (this.visiblePlaylistIndex != -1)
  379.       if (paramString == null)
  380.       {
  381.         FilteredPlaylistContainer localFilteredPlaylistContainer1 = getPlaylistContainer();
  382.         int i = this.visiblePlaylistIndex;
  383.         localObject = localFilteredPlaylistContainer1.getVisualPlaylistTrackItems(i, paramBoolean);
  384.       }
  385.     while (true)
  386.     {
  387.       return localObject;
  388.       FilteredPlaylistContainer localFilteredPlaylistContainer2 = getPlaylistContainer();
  389.       int j = this.visiblePlaylistIndex;
  390.       localObject = localFilteredPlaylistContainer2.getPlaylist(j).getTextFilteredVisualItems(paramString);
  391.       continue;
  392.       localObject = null;
  393.     }
  394.   }
  395.  
  396.   public SearchManager getSearchManager()
  397.   {
  398.     return this.searchManager;
  399.   }
  400.  
  401.   public LocalService getService()
  402.   {
  403.     return this.localService;
  404.   }
  405.  
  406.   public Session getSession()
  407.   {
  408.     return this.session;
  409.   }
  410.  
  411.   public boolean getSettingForceOffline()
  412.   {
  413.     if (this.localService.getPreferenceBoolean("nw_allowed", 1));
  414.     for (int i = 0; ; i = 1)
  415.       return i;
  416.   }
  417.  
  418.   public boolean getSettingSyncOver3G()
  419.   {
  420.     return this.localService.getPreferenceBoolean("3g_sync", 0);
  421.   }
  422.  
  423.   public boolean getSettingsSyncOverWiFi()
  424.   {
  425.     return this.localService.getPreferenceBoolean("wifi_sync", 1);
  426.   }
  427.  
  428.   public Social getSocial()
  429.   {
  430.     if ((this.social == null) && (this.localService.isSessionInitialized))
  431.     {
  432.       Social localSocial = new Social(this);
  433.       this.social = localSocial;
  434.     }
  435.     return this.social;
  436.   }
  437.  
  438.   public int[] getStoredNowPlaying()
  439.   {
  440.     int[] arrayOfInt = new int[2];
  441.     int i = this.localService.getPreferenceInt("playing_playlist", 0);
  442.     arrayOfInt[0] = i;
  443.     int j = this.localService.getPreferenceInt("playing_track", 0);
  444.     arrayOfInt[1] = j;
  445.     return arrayOfInt;
  446.   }
  447.  
  448.   public boolean getStreamHighQuality()
  449.   {
  450.     if (this.localService.getPreferenceBoolean("stream_lowquality", 1));
  451.     for (int i = 0; ; i = 1)
  452.       return i;
  453.   }
  454.  
  455.   public String getString(int paramInt)
  456.   {
  457.     return this.localService.getString(paramInt);
  458.   }
  459.  
  460.   public String getString(int paramInt1, int paramInt2)
  461.   {
  462.     String str = String.valueOf(paramInt2);
  463.     return getString(paramInt1, str);
  464.   }
  465.  
  466.   public String getString(int paramInt, String paramString)
  467.   {
  468.     String[] arrayOfString = new String[1];
  469.     arrayOfString[0] = paramString;
  470.     return getString(paramInt, arrayOfString);
  471.   }
  472.  
  473.   public String getString(int paramInt, String[] paramArrayOfString)
  474.   {
  475.     Object localObject = getString(paramInt);
  476.     try
  477.     {
  478.       String str1 = String.format((String)localObject, paramArrayOfString);
  479.       localObject = str1;
  480.       return localObject;
  481.     }
  482.     catch (Exception localException)
  483.     {
  484.       while (true)
  485.       {
  486.         StringBuilder localStringBuilder = new StringBuilder("[HANDLED] ");
  487.         String str2 = localException.getMessage();
  488.         String str3 = str2;
  489.         SpotifyLog.e("SpotifyJava", str3, localException);
  490.       }
  491.     }
  492.   }
  493.  
  494.   public int getSubscriberCount(int paramInt)
  495.   {
  496.     Hashtable localHashtable = this.subscribers;
  497.     Integer localInteger = Integer.valueOf(paramInt);
  498.     ArrayList localArrayList = (ArrayList)localHashtable.get(localInteger);
  499.     if (localArrayList != null);
  500.     for (int i = localArrayList.size(); ; i = 0)
  501.       return i;
  502.   }
  503.  
  504.   public boolean getSyncHighQuality()
  505.   {
  506.     if (this.localService.getPreferenceBoolean("sync_lowquality", 0));
  507.     for (int i = 0; ; i = 1)
  508.       return i;
  509.   }
  510.  
  511.   public int getTimeLeftBeforeExpiry()
  512.   {
  513.     return this.localService.getTimeLeftBeforeExpiry();
  514.   }
  515.  
  516.   public ToplistTrackBrowseObserver getToplistTrackBrowseObserver()
  517.   {
  518.     if (this.toplistTrackBrowseObserver == null)
  519.     {
  520.       ToplistTrackBrowseObserver localToplistTrackBrowseObserver = new ToplistTrackBrowseObserver(this);
  521.       this.toplistTrackBrowseObserver = localToplistTrackBrowseObserver;
  522.     }
  523.     return this.toplistTrackBrowseObserver;
  524.   }
  525.  
  526.   public long getUptime()
  527.   {
  528.     long l1 = System.currentTimeMillis();
  529.     long l2 = this.startTime;
  530.     return l1 - l2;
  531.   }
  532.  
  533.   public FilteredPlaylist getVisiblePlaylist()
  534.   {
  535.     int i = getVisiblePlaylistIndex();
  536.     String str = "Index: " + i;
  537.     SpotifyLog.d("", str);
  538.     return getPlaylistContainer().getPlaylist(i);
  539.   }
  540.  
  541.   public int getVisiblePlaylistIndex()
  542.   {
  543.     return this.visiblePlaylistIndex;
  544.   }
  545.  
  546.   public WhatsNewObserver getWhatsNewObserver()
  547.   {
  548.     if (this.whatsNewObserver == null)
  549.     {
  550.       WhatsNewObserver localWhatsNewObserver = new WhatsNewObserver(this);
  551.       this.whatsNewObserver = localWhatsNewObserver;
  552.     }
  553.     return this.whatsNewObserver;
  554.   }
  555.  
  556.   public SpotifyWidgetManager getWidgetManager()
  557.   {
  558.     return getService().getWidgetManager();
  559.   }
  560.  
  561.   public void handleMetaDataUpdate()
  562.   {
  563.     ArrayList localArrayList = new ArrayList();
  564.     Iterator localIterator = this.metaDataUpdateListeners.iterator();
  565.     while (true)
  566.     {
  567.       if (!localIterator.hasNext())
  568.       {
  569.         this.metaDataUpdateListeners = localArrayList;
  570.         return;
  571.       }
  572.       JNIObjectMetaDataListener localJNIObjectMetaDataListener = (JNIObjectMetaDataListener)localIterator.next();
  573.       JNIObject localJNIObject = localJNIObjectMetaDataListener.jniObject;
  574.       if (localJNIObjectMetaDataListener.objectType == 1)
  575.       {
  576.         Playlist localPlaylist = (Playlist)localJNIObject;
  577.         if (localPlaylist.isLoaded())
  578.           switch (localJNIObjectMetaDataListener.observerType)
  579.           {
  580.           default:
  581.             break;
  582.           case 1:
  583.             StringBuilder localStringBuilder1 = new StringBuilder("Notifying onLinkPlaylistLoaded: ");
  584.             String str1 = localPlaylist.getName();
  585.             String str2 = str1;
  586.             SpotifyLog.d("", str2);
  587.             getLauncherActivity().onLinkPlaylistLoaded(localPlaylist);
  588.             break;
  589.           }
  590.         boolean bool1 = localArrayList.add(localJNIObjectMetaDataListener);
  591.         continue;
  592.       }
  593.       if (localJNIObjectMetaDataListener.objectType != 0)
  594.         continue;
  595.       Track localTrack = (Track)localJNIObject;
  596.       if (localTrack.isLoaded())
  597.         switch (localJNIObjectMetaDataListener.observerType)
  598.         {
  599.         default:
  600.           break;
  601.         case 1:
  602.           StringBuilder localStringBuilder2 = new StringBuilder("Notifying onLinkTrackLoaded: ");
  603.           String str3 = localTrack.getName();
  604.           String str4 = str3;
  605.           SpotifyLog.d("", str4);
  606.           getLauncherActivity().onLinkTrackLoaded(localTrack);
  607.           break;
  608.         }
  609.       boolean bool2 = localArrayList.add(localJNIObjectMetaDataListener);
  610.     }
  611.   }
  612.  
  613.   public boolean hasAPConnection()
  614.   {
  615.     int i = -1;
  616.     if (this.isSignedIn)
  617.       i = Session.getLoginMode();
  618.     if (i == 1);
  619.     for (int j = 1; ; j = 0)
  620.       return j;
  621.   }
  622.  
  623.   public boolean hasBitrateOptions()
  624.   {
  625.     return this.localService.hasBitrateOptions();
  626.   }
  627.  
  628.   public boolean hasFriends()
  629.   {
  630.     return false;
  631.   }
  632.  
  633.   public boolean hasInbox()
  634.   {
  635.     if (isLoggedInUserless());
  636.     for (int i = 0; ; i = 1)
  637.       return i;
  638.   }
  639.  
  640.   public boolean hasLibrary()
  641.   {
  642.     return true;
  643.   }
  644.  
  645.   public boolean hasLocalMusicList()
  646.   {
  647.     return this.hasLocalMusicList;
  648.   }
  649.  
  650.   public boolean hasNetwork()
  651.   {
  652.     if ((hasAPConnection()) && (Session.getNetworkAllowed()));
  653.     for (int i = 1; ; i = 0)
  654.       return i;
  655.   }
  656.  
  657.   public boolean hasSession()
  658.   {
  659.     return this.localService.hasLoggedIn;
  660.   }
  661.  
  662.   public boolean hasStarredList()
  663.   {
  664.     return true;
  665.   }
  666.  
  667.   public boolean hasStreamingNetwork()
  668.   {
  669.     if ((hasAPConnection()) && (Session.getStreamAllowed()));
  670.     for (int i = 1; ; i = 0)
  671.       return i;
  672.   }
  673.  
  674.   public boolean hasStreamingRights()
  675.   {
  676.     return Session.getStreamingFlag();
  677.   }
  678.  
  679.   public boolean isAirplaneMode()
  680.   {
  681.     boolean bool = this.localService.isAirplaneMode();
  682.     String str = "Airplane mode = " + bool;
  683.     SpotifyLog.d("SpotifyConnection", str);
  684.     return bool;
  685.   }
  686.  
  687.   public boolean isDataWarned(String paramString)
  688.   {
  689.     LocalService localLocalService = this.localService;
  690.     String str = "datawarned_" + paramString;
  691.     return localLocalService.getPreferenceBoolean(str, 0);
  692.   }
  693.  
  694.   public boolean isLastFMScrobblingEnabled()
  695.   {
  696.     String str1 = this.localService.getUsername();
  697.     LocalService localLocalService = this.localService;
  698.     String str2 = "lastfm_scrobbling_" + str1;
  699.     return localLocalService.getPreferenceBoolean(str2, 0);
  700.   }
  701.  
  702.   public boolean isLoggedInUserless()
  703.   {
  704.     if ((isSignedIn()) && (this.localService.isLoggedInUserless()));
  705.     for (int i = 1; ; i = 0)
  706.       return i;
  707.   }
  708.  
  709.   public boolean isSignedIn()
  710.   {
  711.     return this.isSignedIn;
  712.   }
  713.  
  714.   public boolean isTosApproved(String paramString)
  715.   {
  716.     LocalService localLocalService = this.localService;
  717.     String str = "tos_" + paramString;
  718.     return localLocalService.getPreferenceBoolean(str, 0);
  719.   }
  720.  
  721.   public void loadImage(byte[] paramArrayOfByte, ImageObserverInterface paramImageObserverInterface)
  722.   {
  723.     String str = "Loading image " + paramArrayOfByte;
  724.     SpotifyLog.d("CURRENT_USER", str);
  725.     this.localService.loadImage(paramArrayOfByte, paramImageObserverInterface);
  726.   }
  727.  
  728.   public void logout()
  729.   {
  730.     this.localService.logout();
  731.   }
  732.  
  733.   public void makePlaylistOffline(int paramInt, boolean paramBoolean)
  734.   {
  735.     boolean bool = this.localService.makePlaylistOffline(paramInt, paramBoolean);
  736.   }
  737.  
  738.   public void notifyMainThread()
  739.   {
  740.     SpotifyLog.d("JNI_SESSION", "notifyMainThread");
  741.   }
  742.  
  743.   public void onAutoLogin(int paramInt)
  744.   {
  745.     int i = Session.getLoginMode();
  746.     String str = "on auto login: loginMode: " + i;
  747.     SpotifyLog.d("JNI_SESSION", str);
  748.     if (Session.isPermanentLoginError(i))
  749.     {
  750.       this.logoutCode = paramInt;
  751.       this.logoutType = 181;
  752.       logout();
  753.     }
  754.     while (true)
  755.     {
  756.       return;
  757.       Launcher localLauncher = getLauncherActivity();
  758.       if (localLauncher == null)
  759.         continue;
  760.       localLauncher.updateOnlineMode();
  761.     }
  762.   }
  763.  
  764.   public void onAutoUpdate(String paramString)
  765.   {
  766.     String str1 = "on auto update: URL: " + paramString;
  767.     SpotifyLog.d("JNI_SESSION", str1);
  768.     if (paramString != null)
  769.     {
  770.       String[] arrayOfString = paramString.split("\\?username");
  771.       if (arrayOfString.length > 0)
  772.         paramString = arrayOfString[0];
  773.     }
  774.     String str2 = "URL reformatted to " + paramString;
  775.     SpotifyLog.d("JNI_SESSION", str2);
  776.     this.updateURL = paramString;
  777.     triggerEvent(210);
  778.   }
  779.  
  780.   public void onConnectionError(int paramInt)
  781.   {
  782.     String str = "onConnectionError called: " + paramInt;
  783.     SpotifyLog.d("JNI_SESSION", str);
  784.     if ((paramInt == 406) && (this.launcherActivity != null) && (this.isSignedIn))
  785.       this.launcherActivity.showPremiumExpiredDialog();
  786.     ConnectivityListener.getInstance().connectivityHasChanged();
  787.   }
  788.  
  789.   public void onGotWebToken(String paramString1, String paramString2)
  790.   {
  791.     Intent localIntent1 = new Intent("android.intent.action.VIEW");
  792.     String str = String.valueOf(paramString2);
  793.     Uri localUri = Uri.parse(str + "?" + paramString1);
  794.     Intent localIntent2 = localIntent1.setData(localUri);
  795.     if (this.launcherActivity != null)
  796.       this.launcherActivity.startActivity(localIntent1);
  797.   }
  798.  
  799.   public void onLastFmNotification(int paramInt)
  800.   {
  801.     if (paramInt != 0)
  802.     {
  803.       String str = "Last.fm scrobbling failed.";
  804.       if (paramInt == 5001)
  805.         str = "Last.fm scrobbling failed. Please check your username and password";
  806.       Toast.makeText(this.localService, str, 1).show();
  807.     }
  808.   }
  809.  
  810.   public void onLogMessage(String paramString)
  811.   {
  812.   }
  813.  
  814.   public void onLoggedIn(int paramInt)
  815.   {
  816.     String str = "onLoggedIn called: " + paramInt;
  817.     SpotifyLog.d("JNI_SESSION", str);
  818.     if (paramInt == 0)
  819.     {
  820.       setSignedIn(1);
  821.       getPlaylistContainer().updateStaticItems();
  822.       triggerEvent(1001);
  823.       setCoreBitrate();
  824.       setLastFMScrobbling();
  825.       SpotifyWidgetManager localSpotifyWidgetManager = getWidgetManager();
  826.       if (localSpotifyWidgetManager != null)
  827.         localSpotifyWidgetManager.onSignedIn();
  828.       if (!hasLocalMusicList())
  829.         break label114;
  830.       SpotifyLog.d("", "Adding media watcher...");
  831.       Session.addLocalMediaWatchFolder(CacheLocation.getLocalFilesLocation(), 1);
  832.     }
  833.     while (true)
  834.     {
  835.       this.loginResult = paramInt;
  836.       triggerEvent(175);
  837.       getPlaylistContainer().updateObservers();
  838.       return;
  839.       label114: SpotifyLog.d("", "NOT adding media watcher");
  840.     }
  841.   }
  842.  
  843.   public void onLoggedOut()
  844.   {
  845.     SpotifyLog.d("JNI_SESSION", "onLoggedOut received");
  846.     if (this.logoutType == 181)
  847.     {
  848.       this.logoutType = -1;
  849.       triggerEvent(181);
  850.     }
  851.     while (true)
  852.     {
  853.       return;
  854.       SpotifyLog.d("", "onLoggedOut - notifying the Launcher");
  855.       triggerEvent(180);
  856.     }
  857.   }
  858.  
  859.   public void onMainthreadNotify()
  860.   {
  861.     this.localService.scheduleProcessEvents(0);
  862.   }
  863.  
  864.   public void onMessageToUser(String paramString)
  865.   {
  866.   }
  867.  
  868.   public void onMetadataUpdate()
  869.   {
  870.     SpotifyLog.d("JNI_SESSION", "onMetadataUpdate called: ");
  871.     getPlaylistContainer().touchAll(1);
  872.     triggerEvent(261);
  873.   }
  874.  
  875.   public int onMusicDelivery(int paramInt1, int paramInt2, int paramInt3)
  876.   {
  877.     String str = "on music delivery => music has started. Format: " + paramInt1 + ", frames: " + paramInt2 + ", numFrames: " + paramInt3;
  878.     SpotifyLog.d("JNI_SESSION", str);
  879.     return 0;
  880.   }
  881.  
  882.   public void onOfflineSyncFailed(int paramInt)
  883.   {
  884.     String str1 = "offline sync failed: " + paramInt;
  885.     SpotifyLog.d("JNI_SESSION", str1);
  886.     Launcher localLauncher = getLauncherActivity();
  887.     if (paramInt == 0)
  888.     {
  889.       NotificationCenter.defaultCenter().postNotification("NotificationTrackOfflineSyncDone");
  890.       triggerEvent(131);
  891.     }
  892.     while (true)
  893.     {
  894.       return;
  895.       if (paramInt == 14)
  896.       {
  897.         if ((!getSettingForceOffline()) || (localLauncher == null))
  898.           continue;
  899.         localLauncher.showOfflineExpiredDialog();
  900.         continue;
  901.       }
  902.       if ((paramInt == 0) || (localLauncher == null))
  903.         continue;
  904.       String str2 = localLauncher.getResources().getString(2131165385);
  905.       String str3 = Error.getMessage(localLauncher, paramInt);
  906.       if (paramInt == 22)
  907.       {
  908.         triggerEvent(1000);
  909.         triggerEvent(1001);
  910.       }
  911.       localLauncher.launchAlert(str2, str3);
  912.     }
  913.   }
  914.  
  915.   public void onPlayTokenLost()
  916.   {
  917.     SpotifyLog.d("SpotifyJava", "Playtoken lost!! Playing elsewhere?");
  918.     if (getPlayer().isPlaying())
  919.       getLauncherActivity().onPlayTokenLost();
  920.   }
  921.  
  922.   public void onPlayerDone(int paramInt)
  923.   {
  924.     getPlayer().onTrackDone();
  925.     triggerEvent(140);
  926.   }
  927.  
  928.   public void onProductStateChanged()
  929.   {
  930.     SpotifyLog.d("JNI_SESSION", "onProductStateChanged");
  931.   }
  932.  
  933.   public void onSyncProgressUpdated()
  934.   {
  935.     if (this.launcherActivity != null)
  936.       this.launcherActivity.updateSyncHeader();
  937.     if (this.localService != null)
  938.       this.localService.updateSyncStatus();
  939.   }
  940.  
  941.   public void onTrackUpdate()
  942.   {
  943.     getPlaylistContainer().onTrackUpdate();
  944.   }
  945.  
  946.   public void registerMetaDataUpdateListener(JNIObject paramJNIObject, int paramInt1, int paramInt2)
  947.   {
  948.     JNIObjectMetaDataListener localJNIObjectMetaDataListener = new JNIObjectMetaDataListener();
  949.     localJNIObjectMetaDataListener.jniObject = paramJNIObject;
  950.     localJNIObjectMetaDataListener.objectType = paramInt1;
  951.     localJNIObjectMetaDataListener.observerType = paramInt2;
  952.     boolean bool = this.metaDataUpdateListeners.add(localJNIObjectMetaDataListener);
  953.   }
  954.  
  955.   public void renamePlaylist(int paramInt, String paramString)
  956.   {
  957.     this.localService.renamePlaylist(paramInt, paramString);
  958.   }
  959.  
  960.   public void saveAutoLogin(boolean paramBoolean)
  961.   {
  962.     this.localService.savePreferenceBoolean("autologin", paramBoolean);
  963.   }
  964.  
  965.   public void saveCache()
  966.   {
  967.     this.localService.saveCache();
  968.   }
  969.  
  970.   public void saveLoginCredentials(String paramString1, String paramString2, boolean paramBoolean)
  971.   {
  972.     if (paramString1 != null)
  973.       this.localService.savePreferenceString("username", paramString1);
  974.     if (paramString2 != null)
  975.       this.localService.savePreferenceString("password", paramString2);
  976.     if (paramBoolean)
  977.     {
  978.       SpotifyLog.d("", "Saving userless credentials: true");
  979.       this.localService.savePreferenceString("userless", "true");
  980.     }
  981.   }
  982.  
  983.   public boolean sendTrackToInbox(Track paramTrack, SocialUserData paramSocialUserData)
  984.   {
  985.     return this.localService.sendTrackToInbox(paramTrack, paramSocialUserData);
  986.   }
  987.  
  988.   public void setContextMenuList(ItemList paramItemList)
  989.   {
  990.     this.contextMenuOptions = paramItemList;
  991.   }
  992.  
  993.   public void setCoreBitrate()
  994.   {
  995.     boolean bool1 = getSyncHighQuality();
  996.     boolean bool2 = getStreamHighQuality();
  997.     if (Session.isLowBitrateEnabled())
  998.     {
  999.       boolean bool3 = this.localService.getPreferenceBoolean("sync_highquality_resync", 0);
  1000.       String str1 = "";
  1001.       StringBuilder localStringBuilder = new StringBuilder("CurrentUser: Session.setOfflineLowBitrate(");
  1002.       if (bool1)
  1003.       {
  1004.         int m = 0;
  1005.         String str2 = m + ", " + bool3 + ")";
  1006.         SpotifyLog.d(str1, str2);
  1007.         str1 = "";
  1008.         localStringBuilder = new StringBuilder("CurrentUser: Session.setStreamingLowBitrate(");
  1009.         if (!bool2)
  1010.           break label174;
  1011.         int n = 0;
  1012.         label114: String str3 = n + ")";
  1013.         SpotifyLog.d(str1, str3);
  1014.         if (!bool1)
  1015.           break label181;
  1016.         int i = 0;
  1017.         label147: Session.setOfflineLowBitrate(i, bool3);
  1018.         if (!bool2)
  1019.           break label188;
  1020.         int j = 0;
  1021.         label161: Session.setStreamingLowBitrate(j);
  1022.       }
  1023.     }
  1024.     while (true)
  1025.     {
  1026.       return;
  1027.       int i1 = 1;
  1028.       break;
  1029.       label174: i1 = 1;
  1030.       break label114;
  1031.       label181: int k = 1;
  1032.       break label147;
  1033.       label188: k = 1;
  1034.       break label161;
  1035.       SpotifyLog.d("", "CurrentUser: low bitrate is not enabled ");
  1036.     }
  1037.   }
  1038.  
  1039.   public void setDataWarned(String paramString)
  1040.   {
  1041.     LocalService localLocalService = this.localService;
  1042.     String str = "datawarned_" + paramString;
  1043.     localLocalService.savePreferenceBoolean(str, 1);
  1044.   }
  1045.  
  1046.   public void setDevMode(boolean paramBoolean)
  1047.   {
  1048.     this.isDevMode = paramBoolean;
  1049.     triggerEvent(248);
  1050.   }
  1051.  
  1052.   public void setHasLocalMusicList(boolean paramBoolean)
  1053.   {
  1054.     this.hasLocalMusicList = paramBoolean;
  1055.   }
  1056.  
  1057.   public void setLastFMScrobbling()
  1058.   {
  1059.     String str1 = this.localService.getUsername();
  1060.     LocalService localLocalService1 = this.localService;
  1061.     String str2 = "lastfm_scrobbling_" + str1;
  1062.     if (localLocalService1.getPreferenceBoolean(str2, 0))
  1063.     {
  1064.       LocalService localLocalService2 = this.localService;
  1065.       String str3 = "lastfm_username_" + str1;
  1066.       String str4 = localLocalService2.getPreferenceString(str3);
  1067.       LocalService localLocalService3 = this.localService;
  1068.       String str5 = "lastfm_password_" + str1;
  1069.       String str6 = localLocalService3.getPreferenceString(str5);
  1070.       if ((str4 != null) && (str6 != null))
  1071.       {
  1072.         String str7 = "Setting last.fm scrobbling for " + str4;
  1073.         SpotifyLog.d("", str7);
  1074.         Session.setLastFmCredentials(str4, str6);
  1075.       }
  1076.     }
  1077.     while (true)
  1078.     {
  1079.       return;
  1080.       SpotifyLog.d("Not setting Last.fm scrobbling");
  1081.     }
  1082.   }
  1083.  
  1084.   public void setLauncherActivity(Launcher paramLauncher)
  1085.   {
  1086.     this.launcherActivity = paramLauncher;
  1087.   }
  1088.  
  1089.   public void setPopupPlaylist(Playlist paramPlaylist)
  1090.   {
  1091.     this.popupPlaylist = paramPlaylist;
  1092.   }
  1093.  
  1094.   public void setSettingForceOffline(boolean paramBoolean)
  1095.   {
  1096.     Object localObject = this.localService;
  1097.     String str = "nw_allowed";
  1098.     if (paramBoolean)
  1099.     {
  1100.       int n = 0;
  1101.       ((LocalService)localObject).savePreferenceBoolean("nw_allowed", n);
  1102.       if (this.launcherActivity != null)
  1103.       {
  1104.         localObject = this.launcherActivity.getActivityTracker();
  1105.         if (!paramBoolean)
  1106.           break label89;
  1107.         int k = 0;
  1108.         label48: ((ActivityTracker)localObject).setEnabled(k);
  1109.         this.launcherActivity.updateSyncHeader();
  1110.       }
  1111.       if (this.localService.isSessionInitialized)
  1112.         if (!paramBoolean)
  1113.           break label95;
  1114.     }
  1115.     label89: label95: int j;
  1116.     for (int i = 0; ; j = 1)
  1117.     {
  1118.       Session.setRuleAllowNetwork(i);
  1119.       return;
  1120.       int i1 = 1;
  1121.       break;
  1122.       int m = 1;
  1123.       break label48;
  1124.     }
  1125.   }
  1126.  
  1127.   public void setSettingSyncOver3G(boolean paramBoolean)
  1128.   {
  1129.     this.localService.savePreferenceBoolean("3g_sync", paramBoolean);
  1130.     Session.setRuleAllowOfflineSync3G(paramBoolean);
  1131.   }
  1132.  
  1133.   public void setSettingSyncOverWiFi(boolean paramBoolean)
  1134.   {
  1135.     this.localService.savePreferenceBoolean("wifi_sync", paramBoolean);
  1136.     Session.setRuleAllowOfflineSyncWiFi(paramBoolean);
  1137.   }
  1138.  
  1139.   public void setSignedIn(boolean paramBoolean)
  1140.   {
  1141.     this.isSignedIn = paramBoolean;
  1142.   }
  1143.  
  1144.   public void setStreamHighQuality(boolean paramBoolean)
  1145.   {
  1146.     LocalService localLocalService = this.localService;
  1147.     if (paramBoolean)
  1148.     {
  1149.       int k = 0;
  1150.       localLocalService.savePreferenceBoolean("stream_lowquality", k);
  1151.       if (!paramBoolean)
  1152.         break label38;
  1153.     }
  1154.     label38: int j;
  1155.     for (int i = 0; ; j = 1)
  1156.     {
  1157.       Session.setStreamingLowBitrate(i);
  1158.       return;
  1159.       int m = 1;
  1160.       break;
  1161.     }
  1162.   }
  1163.  
  1164.   public void setSyncHighQuality(boolean paramBoolean1, boolean paramBoolean2)
  1165.   {
  1166.     Object localObject = this.localService;
  1167.     if (paramBoolean1)
  1168.     {
  1169.       int k = 0;
  1170.       ((LocalService)localObject).savePreferenceBoolean("sync_lowquality", k);
  1171.       this.localService.savePreferenceBoolean("sync_highquality_resync", paramBoolean2);
  1172.       localObject = new StringBuilder("CurrentUser: Session.setOfflineLowBitrate(");
  1173.       if (!paramBoolean1)
  1174.         break label100;
  1175.       int n = 0;
  1176.       label52: SpotifyLog.d(n + "," + paramBoolean2 + ")");
  1177.       if (!paramBoolean1)
  1178.         break label107;
  1179.     }
  1180.     label100: label107: int j;
  1181.     for (int i = 0; ; j = 1)
  1182.     {
  1183.       Session.setOfflineLowBitrate(i, paramBoolean2);
  1184.       return;
  1185.       int m = 1;
  1186.       break;
  1187.       int i1 = 1;
  1188.       break label52;
  1189.     }
  1190.   }
  1191.  
  1192.   public void setTosApproved(String paramString)
  1193.   {
  1194.     LocalService localLocalService = this.localService;
  1195.     String str = "tos_" + paramString;
  1196.     localLocalService.savePreferenceBoolean(str, 1);
  1197.   }
  1198.  
  1199.   public void setVisiblePlaylist(int paramInt)
  1200.   {
  1201.     this.visiblePlaylistIndex = paramInt;
  1202.   }
  1203.  
  1204.   public boolean shouldWarnAboutRoaming()
  1205.   {
  1206.     if ((ConnectivityListener.getInstance().getConnectionType() < 4) && (ConnectivityListener.getInstance().isRoaming()));
  1207.     for (int i = 1; ; i = 0)
  1208.       return i;
  1209.   }
  1210.  
  1211.   public void starTrack(Track paramTrack, boolean paramBoolean)
  1212.   {
  1213.     if (paramTrack != null)
  1214.     {
  1215.       paramTrack.setStar(paramBoolean);
  1216.       triggerEvent(1004);
  1217.     }
  1218.   }
  1219.  
  1220.   public void storeNowPlaying(int paramInt1, int paramInt2)
  1221.   {
  1222.     this.localService.savePreferenceInt("playing_playlist", paramInt1);
  1223.     this.localService.savePreferenceInt("playing_track", paramInt2);
  1224.   }
  1225.  
  1226.   public void subscribe(int paramInt, EventSubscriberInterface paramEventSubscriberInterface)
  1227.   {
  1228.     Hashtable localHashtable1 = this.subscribers;
  1229.     Integer localInteger1 = Integer.valueOf(paramInt);
  1230.     ArrayList localArrayList = (ArrayList)localHashtable1.get(localInteger1);
  1231.     if (localArrayList == null)
  1232.     {
  1233.       localArrayList = new ArrayList();
  1234.       Hashtable localHashtable2 = this.subscribers;
  1235.       Integer localInteger2 = Integer.valueOf(paramInt);
  1236.       Object localObject = localHashtable2.put(localInteger2, localArrayList);
  1237.     }
  1238.     if (!localArrayList.contains(paramEventSubscriberInterface))
  1239.       boolean bool = localArrayList.add(paramEventSubscriberInterface);
  1240.   }
  1241.  
  1242.   public void triggerEvent(int paramInt)
  1243.   {
  1244.     boolean bool = this.notificationHandler.sendEmptyMessage(paramInt);
  1245.   }
  1246.  
  1247.   public void unsubscribe(int paramInt, EventSubscriberInterface paramEventSubscriberInterface)
  1248.   {
  1249.     Hashtable localHashtable = this.subscribers;
  1250.     Integer localInteger = Integer.valueOf(paramInt);
  1251.     ArrayList localArrayList = (ArrayList)localHashtable.get(localInteger);
  1252.     if (localArrayList != null)
  1253.       boolean bool = localArrayList.remove(paramEventSubscriberInterface);
  1254.   }
  1255.  
  1256.   public void unsubscribeAll(EventSubscriberInterface paramEventSubscriberInterface)
  1257.   {
  1258.     Iterator localIterator = this.subscribers.values().iterator();
  1259.     while (true)
  1260.     {
  1261.       if (!localIterator.hasNext())
  1262.         return;
  1263.       boolean bool = ((ArrayList)localIterator.next()).remove(paramEventSubscriberInterface);
  1264.     }
  1265.   }
  1266.  
  1267.   public void unsubscribeAllViews()
  1268.   {
  1269.     SpotifyLog.d("SpotifySubscriptions", "Unsubscribing ALL views");
  1270.     this.subscribers.clear();
  1271.   }
  1272.  
  1273.   public void wipeOfflineLists()
  1274.   {
  1275.     this.localService.wipeOfflineLists();
  1276.   }
  1277.  
  1278.   public void witeDebugAttrib()
  1279.   {
  1280.     String str1 = "";
  1281.     int[] arrayOfInt = { 65, 110, 100, 101, 114, 115, 20, 2764, 20, 69, 109, 105, 108, 121 };
  1282.     int i = arrayOfInt.length;
  1283.     int j = 0;
  1284.     if (j >= i)
  1285.     {
  1286.       Toast.makeText(getService(), str1, 1).show();
  1287.       return;
  1288.     }
  1289.     int k = arrayOfInt[j];
  1290.     String str2 = String.valueOf(str1);
  1291.     StringBuilder localStringBuilder = new StringBuilder(str2);
  1292.     Object localObject;
  1293.     if (k == 20)
  1294.       localObject = " ";
  1295.     while (true)
  1296.     {
  1297.       str1 = localObject;
  1298.       j += 1;
  1299.       break;
  1300.       if (k == 2764)
  1301.       {
  1302.         localObject = "♥";
  1303.         continue;
  1304.       }
  1305.       localObject = Character.valueOf(Character.toChars(k)[0]);
  1306.     }
  1307.   }
  1308. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement