From 0d036a8742f54eb9ea87e64fdce9ab878f58859b Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Mon, 3 May 2021 03:17:11 +0530 Subject: Connect multiple features --- .../e/privacycentralapp/dummy/DummyDataSource.kt | 141 +++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 app/src/main/java/foundation/e/privacycentralapp/dummy/DummyDataSource.kt (limited to 'app/src/main/java/foundation/e/privacycentralapp/dummy') diff --git a/app/src/main/java/foundation/e/privacycentralapp/dummy/DummyDataSource.kt b/app/src/main/java/foundation/e/privacycentralapp/dummy/DummyDataSource.kt new file mode 100644 index 0000000..65d072a --- /dev/null +++ b/app/src/main/java/foundation/e/privacycentralapp/dummy/DummyDataSource.kt @@ -0,0 +1,141 @@ +/* + * Copyright (C) 2021 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.privacycentralapp.dummy + +import foundation.e.privacycentralapp.R + +// ======================================================// +// +// ============ ==== ==== ============ +// ============ ===== ===== ==== ==== +// ==== ====== ====== ==== ==== +// ==== ======= ======= ============ +// ==== ================ ==== +// ==== ==== ====== ==== ==== +// ============ ==== ==== ==== ==== +// ============ ==== == ==== ==== +// +// ======================================================// + +/** + * This whole file acts as a dummy source. All data classes and method implementations + * are not proper ones and are subject to change anytime. + */ + +/** + * Dummmy permission data class. + */ +data class Permission( + val name: String, + val iconId: Int, + val packagesRequested: List = emptyList(), + val packagesAllowed: List = emptyList() +) + +object DummyDataSource { + val permissions = arrayOf("Body Sensor", "Calendar", "Call Logs", "Location") + val icons = arrayOf( + R.drawable.ic_body_monitor, + R.drawable.ic_calendar, + R.drawable.ic_call, + R.drawable.ic_location + ) + + val packages = arrayOf( + "facebook", + "uber", + "instagram", + "openstreetmap", + "truecaller", + "netflix", + "firefox", + "pubg", + "amazon", + "calendar", + "zohomail", + "privacycentral" + ) + + val populatedPermission: List by lazy { + fetchPermissions() + } + + private fun fetchPermissions(): List { + val result = mutableListOf() + permissions.forEachIndexed { index, permission -> + when (index) { + 0 -> result.add(Permission(permission, icons[index])) + 1 -> { + val randomPackages = getRandomItems(packages, 8) + val grantedPackages = getRandomItems(randomPackages, 3) + result.add( + Permission( + permission, + icons[index], + randomPackages, + grantedPackages + ) + ) + } + 2 -> { + val randomPackages = getRandomItems(packages, 10) + val grantedPackages = getRandomItems(randomPackages, 9) + result.add( + Permission( + permission, + icons[index], + randomPackages, + grantedPackages + ) + ) + } + 3 -> { + val randomPackages = getRandomItems(packages, 5) + val grantedPackages = getRandomItems(randomPackages, 3) + result.add( + Permission( + permission, + icons[index], + randomPackages, + grantedPackages + ) + ) + } + } + } + return result + } + + private fun getRandomItems(data: Array, limit: Int): List = + getRandomItems(data.asList(), limit) + + private fun getRandomItems(data: List, limit: Int): List { + val randomItems = mutableSetOf() + val localData = data.toMutableList() + repeat(limit) { + val generated = localData.random() + randomItems.add(generated) + localData.remove(generated) + } + return randomItems.toList() + } + + fun getPermission(permissionId: Int): Permission { + return populatedPermission.get(permissionId) + } +} -- cgit v1.2.3