Created
January 3, 2017 13:14
-
-
Save mgcm/dd9115eb76db16422c040c8e605558a7 to your computer and use it in GitHub Desktop.
Translation Helper Utility
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.unhcr.unhcr.utils; | |
import android.app.Activity; | |
import android.support.v4.app.Fragment; | |
import com.parse.FindCallback; | |
import com.parse.ParseException; | |
import com.parse.ParseObject; | |
import com.parse.ParseQuery; | |
import com.unhcr.unhcr.background.HelpBackground; | |
import com.unhcr.unhcr.background.OrganizationBackground; | |
import com.unhcr.unhcr.background.NotesBackground; | |
import com.unhcr.unhcr.helper.Manager; | |
import com.unhcr.unhcr.models.Help; | |
import java.util.ArrayList; | |
import java.util.HashMap; | |
import java.util.List; | |
// | |
// Translation.java | |
// Salam | |
// | |
// Created by Fábio Carvalho | |
// Copyright © 2016 Tetrapi. All rights reserved. | |
// | |
class Translation { | |
private Activity activity; | |
private Manager manager; | |
Translation(Activity activity) { | |
this.activity = activity; | |
this.manager = new Manager(activity); | |
} | |
void getHelpTranslation(final Fragment fragment, final List<ParseObject> objects) { | |
ArrayList<String> queryClasses = new ArrayList<>(); | |
queryClasses.add("HelpItem"); | |
queryClasses.add("HelpCategory"); | |
ParseQuery<ParseObject> query = new ParseQuery<>("Translation"); | |
query.whereContainedIn("sourceObjectClass", queryClasses); | |
query.whereMatches("language", manager.getLanguage()); | |
query.setLimit(1000); | |
query.findInBackground(new FindCallback<ParseObject>() { | |
public void done(final List<ParseObject> list, final ParseException e) { new HelpBackground(fragment, objects, convertToHashMap(list)).execute(); } | |
}); | |
} | |
void getNotesTranslation(final Help help, final List<ParseObject> objects) { | |
ArrayList<String> queryObjects = new ArrayList<>(); | |
for (ParseObject object : objects) queryObjects.add(object.getObjectId()); | |
ParseQuery<ParseObject> query = new ParseQuery<>("Translation"); | |
query.whereContainedIn("sourceObjectId", queryObjects); | |
query.whereMatches("sourceObjectClass", "HelpNote") ; | |
query.whereMatches("language", manager.getLanguage()); | |
query.setLimit(1000); | |
query.findInBackground(new FindCallback<ParseObject>() { | |
public void done(final List<ParseObject> list, final ParseException e) { new NotesBackground(activity, objects, convertToHashMap(list)).execute(); } }); | |
} | |
void getOrganizationsTranslation(final Fragment fragment, final List<ParseObject> objects) { | |
ArrayList<String> queryClasses = new ArrayList<>(); | |
queryClasses.add("Organization"); | |
queryClasses.add("HelpCategory"); | |
ParseQuery<ParseObject> query = new ParseQuery<>("Translation"); | |
query.whereContainedIn("sourceObjectClass", queryClasses); | |
query.whereMatches("language", manager.getLanguage()); | |
query.setLimit(1000); | |
query.findInBackground(new FindCallback<ParseObject>() { | |
public void done(final List<ParseObject> list, final ParseException e) { new OrganizationBackground(fragment, objects, convertToHashMap(list)).execute(); } }); | |
} | |
private HashMap<String, HashMap<String, ParseObject>> convertToHashMap(List<ParseObject> list) { | |
HashMap<String, HashMap<String, ParseObject>> translations = new HashMap<>(); | |
for (ParseObject translation : list) { | |
HashMap<String, ParseObject> objectValue = translations.get(translation.getString("sourceObjectId")); | |
if (objectValue != null) objectValue.put(translation.getString("sourceObjectProperty"), translation); | |
else objectValue = new HashMap<>(); objectValue.put(translation.getString("sourceObjectProperty"), translation); | |
translations.put(translation.getString("sourceObjectId"), objectValue); | |
} return translations; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment