瀏覽代碼

extract URL creation and shift paramters to retrofit API

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 2 年之前
父節點
當前提交
b779a01c27

+ 4 - 1
app/src/main/java/com/nextcloud/talk/api/NcApi.java

@@ -659,5 +659,8 @@ public interface NcApi {
 
     @POST
     Observable<TranslationsOverall> translateMessage(@Header("Authorization") String authorization,
-                                                     @Url String url);
+                                                     @Url String url,
+                                                     @Query("text") String text,
+                                                     @Query("toLanguage") String toLanguage,
+                                                     @Nullable @Query("fromLanguage") String fromLanguage);
 }

+ 8 - 10
app/src/main/java/com/nextcloud/talk/translate/TranslateActivity.kt

@@ -112,12 +112,11 @@ class TranslateActivity : BaseActivity() {
     private fun getLanguageOptions() {
         val currentUser: User = userManager.currentUser.blockingGet()
         val json = JSONArray(CapabilitiesUtilNew.getLanguages(currentUser).toString())
-        Log.i(TAG, "json is: $json")
 
         val fromLanguagesSet = mutableSetOf(resources.getString(R.string.translation_detect_language))
         val toLanguagesSet = mutableSetOf(resources.getString(R.string.translation_device_settings))
 
-        for (i in 0..json.length() - 1) {
+        for (i in 0 until json.length()) {
             val current = json.getJSONObject(i)
             if (current.getString(FROM_ID) != Locale.getDefault().language) {
                 toLanguagesSet.add(current.getString(FROM_LABEL))
@@ -140,16 +139,15 @@ class TranslateActivity : BaseActivity() {
     private fun translate(fromLanguage: String?, toLanguage: String) {
         val currentUser: User = userManager.currentUser.blockingGet()
         val credentials: String = ApiUtils.getCredentials(currentUser.username, currentUser.token)
-        val translateURL = currentUser.baseUrl +
-            "/ocs/v2.php/translation/translate?text=$text&toLanguage=$toLanguage" +
-            if (fromLanguage != null && fromLanguage != "") {
-                "&fromLanguage=$fromLanguage"
-            } else {
-                ""
-            }
+        val translateURL = ApiUtils.getUrlForTranslation(currentUser.baseUrl)
+        val calculatedFromLanguage = if (fromLanguage == null || fromLanguage == "") {
+            null
+        } else {
+            fromLanguage
+        }
 
         Log.i(TAG, "Url is: $translateURL")
-        ncApi.translateMessage(credentials, translateURL)
+        ncApi.translateMessage(credentials, translateURL, text, toLanguage, calculatedFromLanguage)
             ?.subscribeOn(Schedulers.io())
             ?.observeOn(AndroidSchedulers.mainThread())
             ?.subscribe(object : Observer<TranslationsOverall> {

+ 4 - 0
app/src/main/java/com/nextcloud/talk/utils/ApiUtils.java

@@ -526,4 +526,8 @@ public class ApiUtils {
     public static String getUrlForConversationDescription(int version, String baseUrl, String token) {
         return getUrlForRoom(version, baseUrl, token) + "/description";
     }
+
+    public static String getUrlForTranslation(String baseUrl) {
+        return baseUrl + ocsApiVersion + "/translation/translate";
+    }
 }