diff --git a/app/build.gradle b/app/build.gradle index 48673d00cb18b1e93b1e0b1d0fc14c6c57825c78..e330c53d35f973c4994bfb6544ac2ab3b8a3526c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "foundation.e.apps" minSdkVersion 21 targetSdkVersion 27 - versionCode 7 - versionName "1.1.4" + versionCode 8 + versionName "1.1.5" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/src/main/java/foundation/e/apps/api/AppDownloadedRequest.kt b/app/src/main/java/foundation/e/apps/api/AppDownloadedRequest.kt new file mode 100644 index 0000000000000000000000000000000000000000..1a55c7cfb49d8c956f6b6efdd08421d953b06e33 --- /dev/null +++ b/app/src/main/java/foundation/e/apps/api/AppDownloadedRequest.kt @@ -0,0 +1,44 @@ +/* + Copyright (C) 2019 e Foundation + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + +package foundation.e.apps.api + +import com.fasterxml.jackson.annotation.JsonCreator +import com.fasterxml.jackson.annotation.JsonIgnoreProperties +import com.fasterxml.jackson.databind.ObjectMapper +import foundation.e.apps.utils.Common +import foundation.e.apps.utils.Constants + +class AppDownloadedRequest(private val id: String) { + companion object { + private val reader = ObjectMapper().readerFor(Result::class.java) + } + + fun request() { + try { + val url = Constants.BASE_URL + "apps?action=download&app_id=$id" + val urlConnection = Common.createConnection(url, Constants.REQUEST_METHOD_GET) + reader.readValue(urlConnection.inputStream) + urlConnection.disconnect() + } catch (e: Exception) { + e.printStackTrace() + } + } + + class Result @JsonCreator @JsonIgnoreProperties(ignoreUnknown = true) + constructor() +} diff --git a/app/src/main/java/foundation/e/apps/application/model/Application.kt b/app/src/main/java/foundation/e/apps/application/model/Application.kt index 8068cd3cd5b9c85c72a1fa9f136ae3d544365528..900396a49050e96c9068af1239e43898491d5f72 100644 --- a/app/src/main/java/foundation/e/apps/application/model/Application.kt +++ b/app/src/main/java/foundation/e/apps/application/model/Application.kt @@ -22,8 +22,8 @@ import android.app.Activity import android.app.DownloadManager import android.content.Context import android.content.pm.PackageManager -import android.widget.ImageView import foundation.e.apps.api.AppDetailRequest +import foundation.e.apps.api.AppDownloadedRequest import foundation.e.apps.api.PackageNameSearchRequest import foundation.e.apps.application.model.State.* import foundation.e.apps.application.model.data.BasicData @@ -32,6 +32,7 @@ import foundation.e.apps.applicationmanager.ApplicationManager import foundation.e.apps.utils.Common import foundation.e.apps.utils.Constants import foundation.e.apps.utils.Error +import foundation.e.apps.utils.Execute import java.util.concurrent.atomic.AtomicInteger class Application(val packageName: String, private val applicationManager: ApplicationManager) : @@ -152,6 +153,9 @@ class Application(val packageName: String, private val applicationManager: Appli override fun onDownloadComplete(context: Context, status: Int) { if (status == DownloadManager.STATUS_SUCCESSFUL) { + Execute({ + AppDownloadedRequest(basicData!!.id).request() + }, {}) install(context) } else { synchronized(blocker) {