aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/foundation/e/privacycentralapp/dummy
diff options
context:
space:
mode:
authorAmit Kumar <amitkma@e.email>2021-05-03 03:17:11 +0530
committerAmit Kumar <amitkma@e.email>2021-05-03 03:17:11 +0530
commit0d036a8742f54eb9ea87e64fdce9ab878f58859b (patch)
tree2ee2ddab1e61f2d436ce1d4401cbe1b032282e37 /app/src/main/java/foundation/e/privacycentralapp/dummy
parent75843f012b09f0f11da4aec10be2f378465a94c2 (diff)
downloadadvanced-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.kt141
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)
+ }
+}