Advertisement
IonutCava

Untitled

May 28th, 2015
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 4.61 KB | None | 0 0
  1. Index: GraceNoteWrapper.java
  2. ===================================================================
  3. --- GraceNoteWrapper.java   (revision 170270)
  4. +++ GraceNoteWrapper.java   (working copy)
  5. @@ -91,6 +91,7 @@
  6.      public static void isParsedProgramDataAvailable(boolean state) {
  7.          mProgramDataAvailable = state;
  8.      }
  9. +
  10.      // Add a new channel to the pending list so that it may get parsed via GraceNote later on
  11.      public int registerChannel(VSChannelFromSatellite channel) {
  12.          // Get the dvbID hash value generated from the channel's onID, tsID and sID values
  13. @@ -183,7 +184,8 @@
  14.          }
  15.  
  16.          if (!isParsedProgramDataAvailable()) {
  17. -            new ParseGraceNotePrograms(context, startTimeMS, endTimeMS).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
  18. +            ParseGraceNotePrograms programParse = new ParseGraceNotePrograms(context, startTimeMS, endTimeMS, mParsedChannels);
  19. +            programParse.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
  20.          }
  21.      }
  22.  
  23. @@ -223,9 +225,9 @@
  24.      }
  25.  
  26.      // Called after we submitted our pending channels to GraceNote for parsing
  27. -    protected boolean updateParsedChannels(String inputID, Context context) {
  28. +    protected CopyOnWriteArrayList<VSChannel> updateParsedChannels(String inputID, Context context) {
  29.          // Retrieve the list of successfully parsed channels
  30. -        mParsedChannels = mChannelArray.getChannelList();
  31. +        CopyOnWriteArrayList<VSChannel> channelsOut = mChannelArray.getChannelList();
  32.          // Create a container to map a channel URI to a channel logo URL
  33.          HashMap<Uri, String> logos = new HashMap<>();
  34.          // Get all channels by querying TvInputManager
  35. @@ -263,7 +265,7 @@
  36.  
  37.          Uri channelUri;
  38.          // We iterate over every GraceNote parsed channel
  39. -        for (VSChannel newChannel : mParsedChannels) {
  40. +        for (VSChannel newChannel : channelsOut) {
  41.              // Try to generate a unique key for the current channel the same way we did above
  42.              int tsID = newChannel.getDvbID().getTsID();
  43.              int sID = newChannel.getDvbID().getsID();
  44. @@ -290,7 +292,8 @@
  45.          mCache.cacheLogos(logos);
  46.  
  47.          mPendingChannels.clear();
  48. -        return true;
  49. +
  50. +        return channelsOut;
  51.      }
  52.  
  53.      protected class ParseGraceNotePrograms extends AsyncTask<Void, Void, Void> {
  54. @@ -297,11 +300,13 @@
  55.          Context context = null;
  56.          Long mStartTime = 0L;
  57.          Long mEndTime = 0L;
  58. +        CopyOnWriteArrayList<VSChannel> mChannels;
  59.  
  60. -        public ParseGraceNotePrograms(Context context, Long startTimeMS, Long endTimeMS) {
  61. +        public ParseGraceNotePrograms(Context context, Long startTimeMS, Long endTimeMS, CopyOnWriteArrayList<VSChannel> channels) {
  62.              this.context = context;
  63. -            mStartTime = startTimeMS;
  64. -            mEndTime = endTimeMS;
  65. +            this.mStartTime = startTimeMS;
  66. +            this.mEndTime = endTimeMS;
  67. +            this.mChannels = channels;
  68.          }
  69.  
  70.          @Override
  71. @@ -371,7 +376,7 @@
  72.          }
  73.      }
  74.  
  75. -    protected class ParseGraceNoteChannels extends AsyncTask<Void, Void, Void> {
  76. +    protected class ParseGraceNoteChannels extends AsyncTask<Void, Void, CopyOnWriteArrayList<VSChannel>> {
  77.          Context context = null;
  78.          Integer dvbID = null;
  79.          String inputID = "";
  80. @@ -387,7 +392,8 @@
  81.          }
  82.  
  83.          @Override
  84. -        protected Void doInBackground(Void... params) {
  85. +        protected CopyOnWriteArrayList<VSChannel> doInBackground(Void... params) {
  86. +            CopyOnWriteArrayList<VSChannel> channelsOut = new CopyOnWriteArrayList<VSChannel>();
  87.              VSGNBase.StatusCode gnParseStatus = VSGNBase.StatusCode.OTHER;
  88.              if (dvbID == null) {
  89.                  gnParseStatus = mChannelArray.parseGNIDsWithChannels(context, mPendingChannels, false);
  90. @@ -398,10 +404,10 @@
  91.                  }
  92.              }
  93.              if (gnParseStatus == VSGNBase.StatusCode.OK) {
  94. -                updateParsedChannels(inputID, context);
  95. +                channelsOut = updateParsedChannels(inputID, context);
  96.              }
  97.  
  98. -            return null;
  99. +            return channelsOut;
  100.          }
  101.  
  102.          @Override
  103. @@ -411,7 +417,8 @@
  104.          }
  105.  
  106.          @Override
  107. -        protected void onPostExecute(Void nothing){
  108. +        protected void onPostExecute(CopyOnWriteArrayList<VSChannel> parsedChannels){
  109. +            mParsedChannels = parsedChannels;
  110.              isParsedChannelDataAvailable(true);
  111.              Log.d("GraceNote", "GraceNote channel parsing finished. Parsed [ " + mParsedChannels.size() + " ] channels");
  112.          }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement