Loading app/src/main/java/it/niedermann/owncloud/notes/persistence/sync/ShareAPI.kt +2 −2 Original line number Original line Diff line number Diff line package it.niedermann.owncloud.notes.persistence.sync package it.niedermann.owncloud.notes.persistence.sync import com.google.gson.internal.LinkedTreeMap import com.nextcloud.android.sso.api.EmptyResponse import com.nextcloud.android.sso.api.EmptyResponse import com.owncloud.android.lib.resources.shares.OCShare import com.owncloud.android.lib.resources.shares.OCShare import it.niedermann.owncloud.notes.share.model.CreateShareRequest import it.niedermann.owncloud.notes.share.model.CreateShareRequest Loading @@ -8,7 +9,6 @@ import it.niedermann.owncloud.notes.share.model.UpdateShareInformationRequest import it.niedermann.owncloud.notes.share.model.UpdateSharePermissionRequest import it.niedermann.owncloud.notes.share.model.UpdateSharePermissionRequest import it.niedermann.owncloud.notes.share.model.UpdateShareRequest import it.niedermann.owncloud.notes.share.model.UpdateShareRequest import it.niedermann.owncloud.notes.shared.model.OcsResponse import it.niedermann.owncloud.notes.shared.model.OcsResponse import okhttp3.ResponseBody import retrofit2.Call import retrofit2.Call import retrofit2.Response import retrofit2.Response import retrofit2.http.Body import retrofit2.http.Body Loading @@ -28,7 +28,7 @@ interface ShareAPI { @Query("page") page: String, @Query("page") page: String, @Query("perPage") perPage: String, @Query("perPage") perPage: String, @Query("lookup") lookup: String = "false", @Query("lookup") lookup: String = "false", ): Response<ResponseBody> ): LinkedTreeMap<String, Any?>? @GET("shares") @GET("shares") fun getShares(remoteId: Long): Call<OcsResponse<List<OCShare>>> fun getShares(remoteId: Long): Call<OcsResponse<List<OCShare>>> Loading app/src/main/java/it/niedermann/owncloud/notes/share/repository/ShareRepository.kt +27 −78 Original line number Original line Diff line number Diff line Loading @@ -2,6 +2,8 @@ package it.niedermann.owncloud.notes.share.repository import android.content.Context import android.content.Context import android.icu.text.SimpleDateFormat import android.icu.text.SimpleDateFormat import com.google.gson.Gson import com.google.gson.internal.LinkedTreeMap import com.nextcloud.android.sso.model.SingleSignOnAccount import com.nextcloud.android.sso.model.SingleSignOnAccount import com.owncloud.android.lib.common.utils.Log_OC import com.owncloud.android.lib.common.utils.Log_OC import com.owncloud.android.lib.resources.shares.OCShare import com.owncloud.android.lib.resources.shares.OCShare Loading @@ -16,11 +18,6 @@ import it.niedermann.owncloud.notes.share.model.UpdateShareInformationRequest import it.niedermann.owncloud.notes.share.model.UpdateSharePermissionRequest import it.niedermann.owncloud.notes.share.model.UpdateSharePermissionRequest import it.niedermann.owncloud.notes.share.model.UpdateShareRequest import it.niedermann.owncloud.notes.share.model.UpdateShareRequest import it.niedermann.owncloud.notes.shared.model.ApiVersion import it.niedermann.owncloud.notes.shared.model.ApiVersion import okhttp3.Credentials import okhttp3.HttpUrl import okhttp3.OkHttpClient import okhttp3.Request import org.json.JSONArray import org.json.JSONObject import org.json.JSONObject import java.util.Date import java.util.Date import java.util.Locale import java.util.Locale Loading Loading @@ -48,71 +45,29 @@ class ShareRepository(private val applicationContext: Context, private val accou page: Int, page: Int, perPage: Int perPage: Int ): ArrayList<JSONObject> { ): ArrayList<JSONObject> { val url = HttpUrl.Builder() val shareAPI = apiProvider.getShareAPI(applicationContext, account) .scheme("http") val call = shareAPI.getSharees(search = searchString, page = page.toString(), perPage = perPage.toString()) .host("10.0.2.2") return if (call != null) { .port(55001) val respOCS = call["ocs"] as? LinkedTreeMap<*, *> .addPathSegments("ocs/v2.php/apps/files_sharing/api/v1/sharees") val respData = respOCS?.get("data") as? LinkedTreeMap<*, *> .addQueryParameter("format", "json") val respExact = respData?.get("exact") as? LinkedTreeMap<*, *> .addQueryParameter("itemType", "file") .addQueryParameter("search", searchString) .addQueryParameter("page", page.toString()) .addQueryParameter("perPage", perPage.toString()) .addQueryParameter("lookup", "false") .build() val credentials = Credentials.basic("admin", "admin") val request = Request.Builder() .url(url) .header("OCS-APIRequest", "true") .header("Accept", "application/json") .header("Authorization", credentials) .get() .build() val client = OkHttpClient() val call = client.newCall(request).execute() fun LinkedTreeMap<*, *>.getList(key: String): ArrayList<*>? = this[key] as? ArrayList<*> //val shareAPI = apiProvider.getShareAPI(applicationContext, account) val respExactUsers = respExact?.getList("users") //val call = shareAPI.getSharees(search = searchString, page = page.toString(), perPage = perPage.toString()) val respExactGroups = respExact?.getList("groups") if (call.isSuccessful) { val respExactRemotes = respExact?.getList("remotes") val response = call.body.string() val respExactEmails = respExact?.getList("emails") val respJSON = JSONObject(response) val respExactCircles = respExact?.takeIf { it.containsKey("circles") }?.getList("circles") val respOCS = respJSON.getJSONObject("ocs") val respExactRooms = respExact?.takeIf { it.containsKey("rooms") }?.getList("rooms") val respData = respOCS.getJSONObject("data") val respExact = respData.getJSONObject("exact") val respExactUsers = respExact.getJSONArray("users") val respExactGroups = respExact.getJSONArray("groups") val respExactRemotes = respExact.getJSONArray("remotes") val respExactCircles = if (respExact.has("circles")) { respExact.getJSONArray("circles") } else { JSONArray() } val respExactRooms = if (respExact.has("rooms")) { respExact.getJSONArray("rooms") } else { JSONArray() } val respExactEmails = respExact.getJSONArray("emails") val respPartialUsers = respData?.getList("users") val respPartialUsers = respData.getJSONArray("users") val respPartialGroups = respData?.getList("groups") val respPartialGroups = respData.getJSONArray("groups") val respPartialRemotes = respData?.getList("remotes") val respPartialRemotes = respData.getJSONArray("remotes") val respPartialCircles = respData?.takeIf { it.containsKey("circles") }?.getList("circles") val respPartialCircles = if (respData.has("circles")) { val respPartialRooms = respData?.takeIf { it.containsKey("rooms") }?.getList("rooms") respData.getJSONArray("circles") } else { JSONArray() } val respPartialRooms = if (respData.has("rooms")) { respData.getJSONArray("rooms") } else { JSONArray() } val jsonResults = arrayOf( val jsonResults = listOfNotNull( respExactUsers, respExactUsers, respExactGroups, respExactGroups, respExactRemotes, respExactRemotes, Loading @@ -125,21 +80,15 @@ class ShareRepository(private val applicationContext: Context, private val accou respPartialRooms, respPartialRooms, respPartialCircles respPartialCircles ) ) val data: ArrayList<JSONObject> = ArrayList() val var25 = jsonResults val var26 = jsonResults.size for (var27 in 0 until var26) { val jsonResult = var25[var27] for (j in 0 until jsonResult.length()) { val gson = Gson() val jsonObject = jsonResult.getJSONObject(j) return jsonResults.flatMap { jsonResult -> data.add(jsonObject) jsonResult.map { linkedTreeMap -> } JSONObject(gson.toJson(linkedTreeMap)) } } return data }.toCollection(ArrayList()) } else { } else { return ArrayList() ArrayList() } } } } Loading Loading
app/src/main/java/it/niedermann/owncloud/notes/persistence/sync/ShareAPI.kt +2 −2 Original line number Original line Diff line number Diff line package it.niedermann.owncloud.notes.persistence.sync package it.niedermann.owncloud.notes.persistence.sync import com.google.gson.internal.LinkedTreeMap import com.nextcloud.android.sso.api.EmptyResponse import com.nextcloud.android.sso.api.EmptyResponse import com.owncloud.android.lib.resources.shares.OCShare import com.owncloud.android.lib.resources.shares.OCShare import it.niedermann.owncloud.notes.share.model.CreateShareRequest import it.niedermann.owncloud.notes.share.model.CreateShareRequest Loading @@ -8,7 +9,6 @@ import it.niedermann.owncloud.notes.share.model.UpdateShareInformationRequest import it.niedermann.owncloud.notes.share.model.UpdateSharePermissionRequest import it.niedermann.owncloud.notes.share.model.UpdateSharePermissionRequest import it.niedermann.owncloud.notes.share.model.UpdateShareRequest import it.niedermann.owncloud.notes.share.model.UpdateShareRequest import it.niedermann.owncloud.notes.shared.model.OcsResponse import it.niedermann.owncloud.notes.shared.model.OcsResponse import okhttp3.ResponseBody import retrofit2.Call import retrofit2.Call import retrofit2.Response import retrofit2.Response import retrofit2.http.Body import retrofit2.http.Body Loading @@ -28,7 +28,7 @@ interface ShareAPI { @Query("page") page: String, @Query("page") page: String, @Query("perPage") perPage: String, @Query("perPage") perPage: String, @Query("lookup") lookup: String = "false", @Query("lookup") lookup: String = "false", ): Response<ResponseBody> ): LinkedTreeMap<String, Any?>? @GET("shares") @GET("shares") fun getShares(remoteId: Long): Call<OcsResponse<List<OCShare>>> fun getShares(remoteId: Long): Call<OcsResponse<List<OCShare>>> Loading
app/src/main/java/it/niedermann/owncloud/notes/share/repository/ShareRepository.kt +27 −78 Original line number Original line Diff line number Diff line Loading @@ -2,6 +2,8 @@ package it.niedermann.owncloud.notes.share.repository import android.content.Context import android.content.Context import android.icu.text.SimpleDateFormat import android.icu.text.SimpleDateFormat import com.google.gson.Gson import com.google.gson.internal.LinkedTreeMap import com.nextcloud.android.sso.model.SingleSignOnAccount import com.nextcloud.android.sso.model.SingleSignOnAccount import com.owncloud.android.lib.common.utils.Log_OC import com.owncloud.android.lib.common.utils.Log_OC import com.owncloud.android.lib.resources.shares.OCShare import com.owncloud.android.lib.resources.shares.OCShare Loading @@ -16,11 +18,6 @@ import it.niedermann.owncloud.notes.share.model.UpdateShareInformationRequest import it.niedermann.owncloud.notes.share.model.UpdateSharePermissionRequest import it.niedermann.owncloud.notes.share.model.UpdateSharePermissionRequest import it.niedermann.owncloud.notes.share.model.UpdateShareRequest import it.niedermann.owncloud.notes.share.model.UpdateShareRequest import it.niedermann.owncloud.notes.shared.model.ApiVersion import it.niedermann.owncloud.notes.shared.model.ApiVersion import okhttp3.Credentials import okhttp3.HttpUrl import okhttp3.OkHttpClient import okhttp3.Request import org.json.JSONArray import org.json.JSONObject import org.json.JSONObject import java.util.Date import java.util.Date import java.util.Locale import java.util.Locale Loading Loading @@ -48,71 +45,29 @@ class ShareRepository(private val applicationContext: Context, private val accou page: Int, page: Int, perPage: Int perPage: Int ): ArrayList<JSONObject> { ): ArrayList<JSONObject> { val url = HttpUrl.Builder() val shareAPI = apiProvider.getShareAPI(applicationContext, account) .scheme("http") val call = shareAPI.getSharees(search = searchString, page = page.toString(), perPage = perPage.toString()) .host("10.0.2.2") return if (call != null) { .port(55001) val respOCS = call["ocs"] as? LinkedTreeMap<*, *> .addPathSegments("ocs/v2.php/apps/files_sharing/api/v1/sharees") val respData = respOCS?.get("data") as? LinkedTreeMap<*, *> .addQueryParameter("format", "json") val respExact = respData?.get("exact") as? LinkedTreeMap<*, *> .addQueryParameter("itemType", "file") .addQueryParameter("search", searchString) .addQueryParameter("page", page.toString()) .addQueryParameter("perPage", perPage.toString()) .addQueryParameter("lookup", "false") .build() val credentials = Credentials.basic("admin", "admin") val request = Request.Builder() .url(url) .header("OCS-APIRequest", "true") .header("Accept", "application/json") .header("Authorization", credentials) .get() .build() val client = OkHttpClient() val call = client.newCall(request).execute() fun LinkedTreeMap<*, *>.getList(key: String): ArrayList<*>? = this[key] as? ArrayList<*> //val shareAPI = apiProvider.getShareAPI(applicationContext, account) val respExactUsers = respExact?.getList("users") //val call = shareAPI.getSharees(search = searchString, page = page.toString(), perPage = perPage.toString()) val respExactGroups = respExact?.getList("groups") if (call.isSuccessful) { val respExactRemotes = respExact?.getList("remotes") val response = call.body.string() val respExactEmails = respExact?.getList("emails") val respJSON = JSONObject(response) val respExactCircles = respExact?.takeIf { it.containsKey("circles") }?.getList("circles") val respOCS = respJSON.getJSONObject("ocs") val respExactRooms = respExact?.takeIf { it.containsKey("rooms") }?.getList("rooms") val respData = respOCS.getJSONObject("data") val respExact = respData.getJSONObject("exact") val respExactUsers = respExact.getJSONArray("users") val respExactGroups = respExact.getJSONArray("groups") val respExactRemotes = respExact.getJSONArray("remotes") val respExactCircles = if (respExact.has("circles")) { respExact.getJSONArray("circles") } else { JSONArray() } val respExactRooms = if (respExact.has("rooms")) { respExact.getJSONArray("rooms") } else { JSONArray() } val respExactEmails = respExact.getJSONArray("emails") val respPartialUsers = respData?.getList("users") val respPartialUsers = respData.getJSONArray("users") val respPartialGroups = respData?.getList("groups") val respPartialGroups = respData.getJSONArray("groups") val respPartialRemotes = respData?.getList("remotes") val respPartialRemotes = respData.getJSONArray("remotes") val respPartialCircles = respData?.takeIf { it.containsKey("circles") }?.getList("circles") val respPartialCircles = if (respData.has("circles")) { val respPartialRooms = respData?.takeIf { it.containsKey("rooms") }?.getList("rooms") respData.getJSONArray("circles") } else { JSONArray() } val respPartialRooms = if (respData.has("rooms")) { respData.getJSONArray("rooms") } else { JSONArray() } val jsonResults = arrayOf( val jsonResults = listOfNotNull( respExactUsers, respExactUsers, respExactGroups, respExactGroups, respExactRemotes, respExactRemotes, Loading @@ -125,21 +80,15 @@ class ShareRepository(private val applicationContext: Context, private val accou respPartialRooms, respPartialRooms, respPartialCircles respPartialCircles ) ) val data: ArrayList<JSONObject> = ArrayList() val var25 = jsonResults val var26 = jsonResults.size for (var27 in 0 until var26) { val jsonResult = var25[var27] for (j in 0 until jsonResult.length()) { val gson = Gson() val jsonObject = jsonResult.getJSONObject(j) return jsonResults.flatMap { jsonResult -> data.add(jsonObject) jsonResult.map { linkedTreeMap -> } JSONObject(gson.toJson(linkedTreeMap)) } } return data }.toCollection(ArrayList()) } else { } else { return ArrayList() ArrayList() } } } } Loading