diff options
author | Amit Kumar <amitkma@e.email> | 2021-05-03 03:17:11 +0530 |
---|---|---|
committer | Amit Kumar <amitkma@e.email> | 2021-05-03 03:17:11 +0530 |
commit | 0d036a8742f54eb9ea87e64fdce9ab878f58859b (patch) | |
tree | 2ee2ddab1e61f2d436ce1d4401cbe1b032282e37 /app/src/main/java/foundation/e/privacycentralapp/dummy | |
parent | 75843f012b09f0f11da4aec10be2f378465a94c2 (diff) | |
download | advanced-privacy-0d036a8742f54eb9ea87e64fdce9ab878f58859b.tar.gz |
Connect multiple features
Diffstat (limited to 'app/src/main/java/foundation/e/privacycentralapp/dummy')
-rw-r--r-- | app/src/main/java/foundation/e/privacycentralapp/dummy/DummyDataSource.kt | 141 |
1 files changed, 141 insertions, 0 deletions
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 <https://www.gnu.org/licenses/>. + */ + +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<String> = emptyList(), + val packagesAllowed: List<String> = 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<Permission> by lazy { + fetchPermissions() + } + + private fun fetchPermissions(): List<Permission> { + val result = mutableListOf<Permission>() + 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 <T> getRandomItems(data: Array<T>, limit: Int): List<T> = + getRandomItems(data.asList(), limit) + + private fun <T> getRandomItems(data: List<T>, limit: Int): List<T> { + val randomItems = mutableSetOf<T>() + 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) + } +} |