Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 30344aca authored by alperozturk's avatar alperozturk
Browse files

fix getSharees

parent a4644a15
Loading
Loading
Loading
Loading
+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
@@ -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
@@ -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>>>
+27 −78
Original line number Original line Diff line number Diff line
@@ -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
@@ -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
@@ -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,
@@ -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()
        }
        }
    }
    }