Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: GraceNoteWrapper.java
- ===================================================================
- --- GraceNoteWrapper.java (revision 170270)
- +++ GraceNoteWrapper.java (working copy)
- @@ -91,6 +91,7 @@
- public static void isParsedProgramDataAvailable(boolean state) {
- mProgramDataAvailable = state;
- }
- +
- // Add a new channel to the pending list so that it may get parsed via GraceNote later on
- public int registerChannel(VSChannelFromSatellite channel) {
- // Get the dvbID hash value generated from the channel's onID, tsID and sID values
- @@ -183,7 +184,8 @@
- }
- if (!isParsedProgramDataAvailable()) {
- - new ParseGraceNotePrograms(context, startTimeMS, endTimeMS).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- + ParseGraceNotePrograms programParse = new ParseGraceNotePrograms(context, startTimeMS, endTimeMS, mParsedChannels);
- + programParse.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
- }
- @@ -223,9 +225,9 @@
- }
- // Called after we submitted our pending channels to GraceNote for parsing
- - protected boolean updateParsedChannels(String inputID, Context context) {
- + protected CopyOnWriteArrayList<VSChannel> updateParsedChannels(String inputID, Context context) {
- // Retrieve the list of successfully parsed channels
- - mParsedChannels = mChannelArray.getChannelList();
- + CopyOnWriteArrayList<VSChannel> channelsOut = mChannelArray.getChannelList();
- // Create a container to map a channel URI to a channel logo URL
- HashMap<Uri, String> logos = new HashMap<>();
- // Get all channels by querying TvInputManager
- @@ -263,7 +265,7 @@
- Uri channelUri;
- // We iterate over every GraceNote parsed channel
- - for (VSChannel newChannel : mParsedChannels) {
- + for (VSChannel newChannel : channelsOut) {
- // Try to generate a unique key for the current channel the same way we did above
- int tsID = newChannel.getDvbID().getTsID();
- int sID = newChannel.getDvbID().getsID();
- @@ -290,7 +292,8 @@
- mCache.cacheLogos(logos);
- mPendingChannels.clear();
- - return true;
- +
- + return channelsOut;
- }
- protected class ParseGraceNotePrograms extends AsyncTask<Void, Void, Void> {
- @@ -297,11 +300,13 @@
- Context context = null;
- Long mStartTime = 0L;
- Long mEndTime = 0L;
- + CopyOnWriteArrayList<VSChannel> mChannels;
- - public ParseGraceNotePrograms(Context context, Long startTimeMS, Long endTimeMS) {
- + public ParseGraceNotePrograms(Context context, Long startTimeMS, Long endTimeMS, CopyOnWriteArrayList<VSChannel> channels) {
- this.context = context;
- - mStartTime = startTimeMS;
- - mEndTime = endTimeMS;
- + this.mStartTime = startTimeMS;
- + this.mEndTime = endTimeMS;
- + this.mChannels = channels;
- }
- @Override
- @@ -371,7 +376,7 @@
- }
- }
- - protected class ParseGraceNoteChannels extends AsyncTask<Void, Void, Void> {
- + protected class ParseGraceNoteChannels extends AsyncTask<Void, Void, CopyOnWriteArrayList<VSChannel>> {
- Context context = null;
- Integer dvbID = null;
- String inputID = "";
- @@ -387,7 +392,8 @@
- }
- @Override
- - protected Void doInBackground(Void... params) {
- + protected CopyOnWriteArrayList<VSChannel> doInBackground(Void... params) {
- + CopyOnWriteArrayList<VSChannel> channelsOut = new CopyOnWriteArrayList<VSChannel>();
- VSGNBase.StatusCode gnParseStatus = VSGNBase.StatusCode.OTHER;
- if (dvbID == null) {
- gnParseStatus = mChannelArray.parseGNIDsWithChannels(context, mPendingChannels, false);
- @@ -398,10 +404,10 @@
- }
- }
- if (gnParseStatus == VSGNBase.StatusCode.OK) {
- - updateParsedChannels(inputID, context);
- + channelsOut = updateParsedChannels(inputID, context);
- }
- - return null;
- + return channelsOut;
- }
- @Override
- @@ -411,7 +417,8 @@
- }
- @Override
- - protected void onPostExecute(Void nothing){
- + protected void onPostExecute(CopyOnWriteArrayList<VSChannel> parsedChannels){
- + mParsedChannels = parsedChannels;
- isParsedChannelDataAvailable(true);
- Log.d("GraceNote", "GraceNote channel parsing finished. Parsed [ " + mParsedChannels.size() + " ] channels");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement