Example #1
0
 /**
  * read maps packages list
  * @param maps a list of maps objects that will be read from JSON file
  * @param packagesArray packages array
  */
 private void readMapsPackages(List <MapDownloadResource> maps, JSONArray packagesArray)
 {
     for (int i = 0; i < packagesArray.Length(); i++)
     {
         JSONObject currentPackageObject = null;
         try
         {
             currentPackageObject = packagesArray.GetJSONObject(i);
         }
         catch (JSONException ex)
         {
             SKLogging.WriteLog(TAG, ex.Message, SKLogging.LogDebug);
         }
         if (currentPackageObject != null)
         {
             MapDownloadResource currentMap = new MapDownloadResource();
             try
             {
                 currentMap.Code = (currentPackageObject.GetString(PACKAGE_CODE_ID));
             }
             catch (JSONException ex)
             {
                 SKLogging.WriteLog(TAG, ex.Message, SKLogging.LogDebug);
             }
             try
             {
                 currentMap.setSubType(GetMapType(currentPackageObject.GetInt(TYPE_ID)));
             }
             catch (JSONException ex)
             {
                 SKLogging.WriteLog(TAG, ex.Message, SKLogging.LogDebug);
             }
             try
             {
                 JSONArray currentMapNames = currentPackageObject.GetJSONArray(LANGUAGES_ID);
                 if (currentMapNames != null)
                 {
                     for (int j = 0; j < currentMapNames.Length(); j++)
                     {
                         JSONObject currentMapNameObject = currentMapNames.GetJSONObject(j);
                         if (currentMapNameObject != null)
                         {
                             String currentMapName = currentMapNameObject.GetString(TL_NAME_ID);
                             if (currentMapName != null)
                             {
                                 currentMap.setName(currentMapName, currentMapNameObject.GetString(LNG_CODE_ID));
                             }
                         }
                     }
                 }
             }
             catch (JSONException ex)
             {
                 SKLogging.WriteLog(TAG, ex.Message, SKLogging.LogDebug);
             }
             try
             {
                 JSONObject currentMapBoundingBox = currentPackageObject.GetJSONObject(BBOX_ID);
                 if (currentMapBoundingBox != null)
                 {
                     currentMap.setBbLatMax(currentMapBoundingBox.GetDouble(LAT_MAX_ID));
                     currentMap.setBbLatMin(currentMapBoundingBox.GetDouble(LAT_MIN_ID));
                     currentMap.setBbLongMax(currentMapBoundingBox.GetDouble(LONG_MAX_ID));
                     currentMap.setBbLongMin(currentMapBoundingBox.GetDouble(LONG_MIN_ID));
                 }
             }
             catch (JSONException ex)
             {
                 SKLogging.WriteLog(TAG, ex.Message, SKLogging.LogDebug);
             }
             try
             {
                 currentMap.setSkmFileSize(currentPackageObject.GetLong(SKM_SIZE_ID));
             }
             catch (JSONException ex)
             {
                 SKLogging.WriteLog(TAG, ex.Message, SKLogging.LogDebug);
             }
             try
             {
                 currentMap.setSkmFilePath(currentPackageObject.GetString(FILE_ID));
             }
             catch (JSONException ex)
             {
                 SKLogging.WriteLog(TAG, ex.Message, SKLogging.LogDebug);
             }
             try
             {
                 currentMap.setZipFilePath(currentPackageObject.GetString(NB_ZIP_ID));
             }
             catch (JSONException ex)
             {
                 SKLogging.WriteLog(TAG, ex.Message, SKLogging.LogDebug);
             }
             try
             {
                 currentMap.setUnzippedFileSize(currentPackageObject.GetLong(UNZIP_SIZE_ID));
             }
             catch (JSONException ex)
             {
                 SKLogging.WriteLog(TAG, ex.Message, SKLogging.LogDebug);
             }
             try
             {
                 JSONObject currentMapTXGDetails = currentPackageObject.GetJSONObject(TEXTURE_ID);
                 if (currentMapTXGDetails != null)
                 {
                     currentMap.setTXGFilePath(currentMapTXGDetails.GetString(TEXTURES_BIG_FILE_ID));
                     currentMap.setTXGFileSize(currentMapTXGDetails.GetLong(SIZE_BIG_FILE_ID));
                 }
             }
             catch (JSONException ex)
             {
                 SKLogging.WriteLog(TAG, ex.Message, SKLogging.LogDebug);
             }
             try
             {
                 currentMap.setSkmAndZipFilesSize(currentPackageObject.GetLong(SIZE_ID));
             }
             catch (JSONException ex)
             {
                 SKLogging.WriteLog(TAG, ex.Message, SKLogging.LogDebug);
             }
             if ((currentMap.Code != null) && (currentMap.getSubType() != null))
             {
                 removeNullValuesIfExist(currentMap);
                 maps.Add(currentMap);
             }
         }
     }
 }
        private void readCurrentMapDetails(List <MapDownloadResource> maps, JsonReader reader)
        {
            MapDownloadResource currentMap = new MapDownloadResource();

            reader.BeginObject();
            while (reader.HasNext)
            {
                string key = reader.NextName();
                if (key != null)
                {
                    if (key.Equals(PACKAGE_CODE_ID))
                    {
                        currentMap.Code = reader.NextString();
                    }
                    else if (key.Equals(TYPE_ID))
                    {
                        currentMap.setSubType(getMapType(reader.NextInt()));
                    }
                    else if (key.Equals(LANGUAGES_ID))
                    {
                        reader.BeginArray();
                        while (reader.HasNext)
                        {
                            readCurrentMapNames(currentMap, reader);
                        }
                        reader.EndArray();
                    }
                    else if (key.Equals(BBOX_ID))
                    {
                        readCurrentMapBoundingBoxDetails(currentMap, reader);
                    }
                    else if (key.Equals(SKM_SIZE_ID))
                    {
                        currentMap.setSkmFileSize(reader.NextLong());
                    }
                    else if (key.Equals(FILE_ID))
                    {
                        currentMap.setSkmFilePath(reader.NextString());
                    }
                    else if (key.Equals(NB_ZIP_ID))
                    {
                        currentMap.setZipFilePath(reader.NextString());
                    }
                    else if (key.Equals(UNZIP_SIZE_ID))
                    {
                        currentMap.setUnzippedFileSize(reader.NextLong());
                    }
                    else if (key.Equals(TEXTURE_ID))
                    {
                        readCurrentMapTXGDetails(currentMap, reader);
                    }
                    else if (key.Equals(SIZE_ID))
                    {
                        currentMap.setSkmAndZipFilesSize(reader.NextLong());
                    }
                    else
                    {
                        // for now, we skip the elevation tag
                        reader.SkipValue();
                    }
                }
            }
            reader.EndObject();

            if ((currentMap.Code != null) && (currentMap.getSubType() != null))
            {
                removeNullValuesIfExist(currentMap);
                maps.Add(currentMap);
            }
        }