Loading app/src/main/java/io/eelo/appinstaller/application/model/Application.kt +5 −3 Original line number Diff line number Diff line Loading @@ -8,15 +8,16 @@ import java.io.IOException import java.net.URL import java.util.concurrent.atomic.AtomicInteger class Application(var data: ApplicationData, context: Context, private val installManager: InstallManager) { class Application(val data: ApplicationData, context: Context, private val installManager: InstallManager) { private val uses = AtomicInteger(0) private val info = ApplicationInfo(data) private val stateManager = StateManager(context, info, this) private val stateManager = StateManager(info, this) init { if (data.id != "") { searchFullData() stateManager.find(context) } } Loading Loading @@ -91,6 +92,7 @@ class Application(var data: ApplicationData, context: Context, private val insta } fun searchFullData() { data = dataReader.readValue<ApplicationData>(URL(Constants.BASE_URL + "apps?action=app_detail&id=" + data.id)) val newData = dataReader.readValue<ApplicationData>(URL(Constants.BASE_URL + "apps?action=app_detail&id=" + data.id)) data.update(newData) } } app/src/main/java/io/eelo/appinstaller/application/model/ApplicationData.kt +51 −4 Original line number Diff line number Diff line Loading @@ -13,7 +13,9 @@ class ApplicationData { val lastVersion: String get() = lastVersionObj.version val lastVersionObj: Version get() = versions[lastVersionName]!! get() { return versions[lastVersionName]!! } //util data var lastModified = "" Loading @@ -38,10 +40,11 @@ class ApplicationData { var stars = 0f var privacyScore = 0 var hasFullData = false var dataIndex = 0 constructor(packageName: String) { this.packageName = packageName dataIndex = 0 } constructor(packageName: String, Loading @@ -60,7 +63,7 @@ class ApplicationData { this.author = author this.icon = icon this.images = images this.hasFullData = false dataIndex = 1 } @Suppress("unused") Loading Loading @@ -95,7 +98,7 @@ class ApplicationData { this.lastVersionName = lastVersionName this.appLink = appLink this.lastAccessed = lastAccessed hasFullData = true dataIndex = 2 } @Suppress("unused") Loading @@ -115,4 +118,48 @@ class ApplicationData { result["whats_new"] as String?, name) } fun update(data: ApplicationData) { when (data.dataIndex) { 0 -> { packageName = data.packageName } 1 -> { if (dataIndex < 1) { dataIndex = 1 } packageName = data.packageName lastModified = data.lastModified id = data.id name = data.name lastVersionName = data.lastVersionName author = data.author icon = data.icon images = data.images } 2 -> { dataIndex = 2 id = data.id icon = data.icon packageName = data.packageName createdOn = data.createdOn category = data.category author = data.author source = data.source description = data.description images = data.images lastModified = data.lastModified licence = data.licence name = data.name lastVersionName = data.lastVersionName appLink = data.appLink lastAccessed = data.lastAccessed versions = data.versions } } this.name = data.name if (data.iconImage != null) { iconImage = data.iconImage } } } app/src/main/java/io/eelo/appinstaller/application/model/StateManager.kt +1 −5 Original line number Diff line number Diff line Loading @@ -3,15 +3,11 @@ package io.eelo.appinstaller.application.model import android.content.Context import java.util.* class StateManager(context: Context, private val info: ApplicationInfo, private val app: Application) { class StateManager(private val info: ApplicationInfo, private val app: Application) { private var listeners = Collections.synchronizedList(ArrayList<ApplicationStateListener>()) var state = State.NOT_DOWNLOADED private set init { find(context) } fun find(context: Context) { changeState(if (info.isLastVersionInstalled(context)) { State.INSTALLED Loading Loading
app/src/main/java/io/eelo/appinstaller/application/model/Application.kt +5 −3 Original line number Diff line number Diff line Loading @@ -8,15 +8,16 @@ import java.io.IOException import java.net.URL import java.util.concurrent.atomic.AtomicInteger class Application(var data: ApplicationData, context: Context, private val installManager: InstallManager) { class Application(val data: ApplicationData, context: Context, private val installManager: InstallManager) { private val uses = AtomicInteger(0) private val info = ApplicationInfo(data) private val stateManager = StateManager(context, info, this) private val stateManager = StateManager(info, this) init { if (data.id != "") { searchFullData() stateManager.find(context) } } Loading Loading @@ -91,6 +92,7 @@ class Application(var data: ApplicationData, context: Context, private val insta } fun searchFullData() { data = dataReader.readValue<ApplicationData>(URL(Constants.BASE_URL + "apps?action=app_detail&id=" + data.id)) val newData = dataReader.readValue<ApplicationData>(URL(Constants.BASE_URL + "apps?action=app_detail&id=" + data.id)) data.update(newData) } }
app/src/main/java/io/eelo/appinstaller/application/model/ApplicationData.kt +51 −4 Original line number Diff line number Diff line Loading @@ -13,7 +13,9 @@ class ApplicationData { val lastVersion: String get() = lastVersionObj.version val lastVersionObj: Version get() = versions[lastVersionName]!! get() { return versions[lastVersionName]!! } //util data var lastModified = "" Loading @@ -38,10 +40,11 @@ class ApplicationData { var stars = 0f var privacyScore = 0 var hasFullData = false var dataIndex = 0 constructor(packageName: String) { this.packageName = packageName dataIndex = 0 } constructor(packageName: String, Loading @@ -60,7 +63,7 @@ class ApplicationData { this.author = author this.icon = icon this.images = images this.hasFullData = false dataIndex = 1 } @Suppress("unused") Loading Loading @@ -95,7 +98,7 @@ class ApplicationData { this.lastVersionName = lastVersionName this.appLink = appLink this.lastAccessed = lastAccessed hasFullData = true dataIndex = 2 } @Suppress("unused") Loading @@ -115,4 +118,48 @@ class ApplicationData { result["whats_new"] as String?, name) } fun update(data: ApplicationData) { when (data.dataIndex) { 0 -> { packageName = data.packageName } 1 -> { if (dataIndex < 1) { dataIndex = 1 } packageName = data.packageName lastModified = data.lastModified id = data.id name = data.name lastVersionName = data.lastVersionName author = data.author icon = data.icon images = data.images } 2 -> { dataIndex = 2 id = data.id icon = data.icon packageName = data.packageName createdOn = data.createdOn category = data.category author = data.author source = data.source description = data.description images = data.images lastModified = data.lastModified licence = data.licence name = data.name lastVersionName = data.lastVersionName appLink = data.appLink lastAccessed = data.lastAccessed versions = data.versions } } this.name = data.name if (data.iconImage != null) { iconImage = data.iconImage } } }
app/src/main/java/io/eelo/appinstaller/application/model/StateManager.kt +1 −5 Original line number Diff line number Diff line Loading @@ -3,15 +3,11 @@ package io.eelo.appinstaller.application.model import android.content.Context import java.util.* class StateManager(context: Context, private val info: ApplicationInfo, private val app: Application) { class StateManager(private val info: ApplicationInfo, private val app: Application) { private var listeners = Collections.synchronizedList(ArrayList<ApplicationStateListener>()) var state = State.NOT_DOWNLOADED private set init { find(context) } fun find(context: Context) { changeState(if (info.isLastVersionInstalled(context)) { State.INSTALLED Loading