commit b90b345a6b15d233e64d090fa150ad716450e951 Author: denghaina Date: Mon Aug 19 15:40:04 2024 +0800 版本V1.0.0(1) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..54285e5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties +app/release/ +.idea/ diff --git a/ScaryPrank.jks b/ScaryPrank.jks new file mode 100644 index 0000000..7ac46e8 Binary files /dev/null and b/ScaryPrank.jks differ diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..5a532e6 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,67 @@ +import java.text.SimpleDateFormat +import java.util.Date + +plugins { + alias(libs.plugins.android.application) + id("org.jetbrains.kotlin.android") + id ("kotlin-kapt") +} +val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) +android { + namespace = "com.lc.myapplication.security.mysoundstwo" + compileSdk = 34 + + defaultConfig { + applicationId = "com.sp.myapplication.scary.prank" + minSdk = 23 + targetSdk = 34 + versionCode = 1 + versionName = "1.0.0" + setProperty("archivesBaseName", "ScaryPrank_v${versionName}_(${versionCode})_$timestamp") + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = true + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + buildFeatures { + viewBinding = true + } + +} + +dependencies { + + implementation(libs.appcompat) + implementation(libs.material) + implementation(libs.activity) + implementation(libs.constraintlayout) + testImplementation(libs.junit) + androidTestImplementation(libs.ext.junit) + androidTestImplementation(libs.espresso.core) + implementation ("com.github.bumptech.glide:glide:4.16.0") + implementation ("com.google.code.gson:gson:2.10.1") + implementation("com.google.android.material:material:1.11.0") + implementation("androidx.appcompat:appcompat:1.3.0") + + val room_version = "2.6.1" + implementation("androidx.room:room-runtime:$room_version") + annotationProcessor("androidx.room:room-compiler:$room_version") + kapt("androidx.room:room-compiler:$room_version") + implementation("androidx.room:room-ktx:$room_version") + implementation("androidx.room:room-rxjava2:$room_version") + implementation("androidx.room:room-rxjava3:$room_version") + implementation("androidx.room:room-guava:$room_version") + testImplementation("androidx.room:room-testing:$room_version") + implementation("androidx.room:room-paging:$room_version") +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..77d51b1 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,27 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile + +-keep class com.google.gson.reflect.TypeToken { *; } +-keep class * extends com.google.gson.reflect.TypeToken + +-keep class com.lc.myapplication.security.mysoundstwo.list.SoundsData { *; } +-keep class com.lc.myapplication.security.mysoundstwo.list.SoundsList { *; } \ No newline at end of file diff --git a/app/src/androidTest/java/com/lc/myapplication/security/mysoundstwo/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/lc/myapplication/security/mysoundstwo/ExampleInstrumentedTest.java new file mode 100644 index 0000000..474e7cb --- /dev/null +++ b/app/src/androidTest/java/com/lc/myapplication/security/mysoundstwo/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.lc.myapplication.security.mysoundstwo; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.lc.myapplication.security.mysoundstwo", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..2238a25 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/myfront.ttf b/app/src/main/assets/myfront.ttf new file mode 100644 index 0000000..0d924de Binary files /dev/null and b/app/src/main/assets/myfront.ttf differ diff --git a/app/src/main/assets/myfront1.ttf b/app/src/main/assets/myfront1.ttf new file mode 100644 index 0000000..560bb2a Binary files /dev/null and b/app/src/main/assets/myfront1.ttf differ diff --git a/app/src/main/assets/myfront2.ttf b/app/src/main/assets/myfront2.ttf new file mode 100644 index 0000000..58fa175 Binary files /dev/null and b/app/src/main/assets/myfront2.ttf differ diff --git a/app/src/main/assets/prank.json b/app/src/main/assets/prank.json new file mode 100644 index 0000000..0a4ee96 --- /dev/null +++ b/app/src/main/assets/prank.json @@ -0,0 +1,3390 @@ +[ + { + "categoryId": "625f83491fea07887e619063", + "categoryName": "Airhorn", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/3807ddc86891d2f6994cebcc82773f20.png", + "list": [ + { + "title": "Airhorn 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f6f15687ea2f414192c0b473714985fb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3e4d4574dc0ca65457ed1635d8d8a35f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4d62db79c5ce22e4af02a728df11fea3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/18423e3b40a7abe5b13fef44a090279d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a1bdfca1db5913e0889320d039db069d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b188a56dd6f4d96081dbdc55c9d8189e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/dd803e0943de2f23e345f7a333ef50f0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c7a498cd8ebe972a0d9d290967b0c217.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7247df90396f71742a19b17cd4b44007.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b234c324d5ad721eb8d0ee8eb2ca6586.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/afc85b998457d1401bc942538c834dd4.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/890fd4c730bf1d22cd47074c9f3f2024.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + }, + { + "title": "Airhorn 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a5f49085cfd96acf9af9ae3b0d40d767.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7111dbef323985fa5ce40cc001efc06b.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e619069", + "categoryName": "Fart Sound", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/9a338a79cd2cd19fe9cd33ef789a5508.png", + "list": [ + { + "title": "Fart Sound 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fd670b056455266357f2a9da86027f92.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5b57dca5528a8b918f2e0ccbfa3ad7f8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5ee055b13bf0b80f3b327f88bbc3a342.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/671e5a10b64b37afe8d782d2c2b61111.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e00eaeafb7dfd572371a74c7c67774b9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/25915fb137e5a205d893b84302bd97ea.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9576b7c63248788024ac421dfe6549ec.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7c6a693b6554482cf03fbe7e8d89b0f7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/841a885f366574f6cff1d4965b0cea54.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/37afe86493a5f5a31c6c18cdc476b530.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4bf94832c6a6ff55053a96327ee22e8e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7608e95747aa442b7135b79e7abc6791.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/edb1357822ad7266389e4e6bc558c515.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1230e6751807de13cec5821ed232971b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/02b7143a9c8b4d49155a4af7e14002c6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/39b42fcebac74d4a68887c413107de32.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + }, + { + "title": "Fart Sound 17", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a5645abdfe28fcf5a4bfb1a091511ee0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d13c716cd8627cbb385fbddf58c6f9f.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e61906b", + "categoryName": "Hair Clipper", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/01e97185a794005a5cd5a8ca6903d68d.png", + "list": [ + { + "title": "Hair Clipper 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/df05f0cb432e9c3fddcc505d37bdc596.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + }, + { + "title": "Hair Clipper 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ae5266af93d2af046777529549da69a2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + }, + { + "title": "Hair Clipper 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/df5e55461640aa6326bd1f27bc961abb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + }, + { + "title": "Hair Clipper 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ad5285afce500ae8b05d104cd70c16e0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + }, + { + "title": "Hair Clipper 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/173c711dda00a1a683a3e64cb73a01a5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + }, + { + "title": "Hair Clipper 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7ac57b43913e8077e5e9db31426194fe.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + }, + { + "title": "Hair Clipper 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a3248ae7e08e69d499dbd50f99a39b22.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + }, + { + "title": "Hair Clipper 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2d43e87e8d312bc0174814dacf15a2bc.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + }, + { + "title": "Hair Clipper 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/48828fd5b702259e0bb4a31cb38c002d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + }, + { + "title": "Hair Clipper 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/64a3a3936d9083c3fb0cb8af63b62db1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + }, + { + "title": "Hair Clipper 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f4d989eca3644062185bd21f0a7eac98.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + }, + { + "title": "Hair Clipper 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/76de9aeaa070bc2bb6010270ef7c91ef.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e40b8da118eb07fbd3c6de7fa6749e39.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e619065", + "categoryName": "Breaking", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/253556740e135a243df384d2bc216757.png", + "list": [ + { + "title": "Breaking 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d5e25e6c6f9bd1316067910ae3f07f96.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f3bc85e0c23dcb07546b098c3964da7.png" + }, + { + "title": "Breaking 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/777effb7b006cc507c54df2d3ae97956.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f3bc85e0c23dcb07546b098c3964da7.png" + }, + { + "title": "Breaking 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/12200195df885df378ab7097e3d5e8b5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f3bc85e0c23dcb07546b098c3964da7.png" + }, + { + "title": "Breaking 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9512b4aa0bcf477b8b1ee9de6a50428b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f3bc85e0c23dcb07546b098c3964da7.png" + }, + { + "title": "Breaking 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/61bd13d8cbb5150a7a477bd28d70a4e3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f3bc85e0c23dcb07546b098c3964da7.png" + }, + { + "title": "Breaking 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c1d49295a8bd5d84fe7c1ce9e84e09fb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f3bc85e0c23dcb07546b098c3964da7.png" + }, + { + "title": "Breaking 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9c34aa3d5c4d338958c71a25ca27f687.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f3bc85e0c23dcb07546b098c3964da7.png" + }, + { + "title": "Breaking 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3b3c248b515e8c3a95114e43ff5a4d1a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f3bc85e0c23dcb07546b098c3964da7.png" + }, + { + "title": "Breaking 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e0f0d1f6a131699cbfd25c00192af3cd.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f3bc85e0c23dcb07546b098c3964da7.png" + }, + { + "title": "Breaking 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/95ea3be095fd6794270ed7dc5adf0da3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f3bc85e0c23dcb07546b098c3964da7.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e619066", + "categoryName": "Burp", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/c515c437f6ed4f62906fc002cc0db056.png", + "list": [ + { + "title": "Burp 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2b0a79866b3ff7f526be74f9ece5fa0c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + }, + { + "title": "Burp 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/240512d87919eca52e158ca1c394f52a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + }, + { + "title": "Burp 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/72bb5de165e71bfd9f718070ea610ca0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + }, + { + "title": "Burp 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c1531b085072be1f0707aa86b90d3efe.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + }, + { + "title": "Burp 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1a2796d86150bf0588f570da12450d62.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + }, + { + "title": "Burp 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/73e22e498d75b1ef991b927b1ce60ab6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + }, + { + "title": "Burp 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ffa51c717f144800474472cca3856658.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + }, + { + "title": "Burp 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/56ae2848fa2cf163fc2fbd454699bc8c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + }, + { + "title": "Burp 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/be6771406a30e73aa62bb02157d6c402.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + }, + { + "title": "Burp 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/de622186e8b2b35ae43097db2bb20b45.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + }, + { + "title": "Burp 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7014be86f0fe5c09b796e65340e6df47.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + }, + { + "title": "Burp 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/24c6df56ea75d4cbd467a7352d3faeb1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13119b2bafba96a97062cf0070ac2edd.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e619067", + "categoryName": "Car", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/052d4199504f4fcb97b7cc9e07401c54.png", + "list": [ + { + "title": "Car 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0619759e8da1730d7ccaa0431221b072.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e5b05a82fab3e76d3d3a150ea7c524e0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6ab888f3cd83e13da07fa38ecd586e82.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/43e740a0298fcb564abaebd3ae888f09.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6b72963c235449841157ff07d3110651.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9f32990305af872e1cd04316ea4dcc92.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6445a57d610fe55393f63409a383e62c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4adf39e09c07a08f9fa2e03108db395e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a2ad7ce685cc1baf74e7425c5ba4eb28.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/298d731cc3b0f698088227385549ffa3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f1696474e6482b97d58b2dc577c8d474.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a98205a6a5a837813a0161446baacadb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ec59ac304495a098c3930ca4cf5f376f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + }, + { + "title": "Car 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a089153bbbaf1d0ea6b71fe94f02eb18.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18af2d20fca7882d644ac1745a63ea6d.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e619068", + "categoryName": "Door Bell", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/382fcff17bbe80ad45aed28c9d1ae26e.png", + "list": [ + { + "title": "Door Bell 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/038780ebadb3249009710b1781b24871.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f337efcb0e67418bc4f40c67d9914b3d.png" + }, + { + "title": "Door Bell 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e96b5d06eebb2d6001a17293942e4f83.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f337efcb0e67418bc4f40c67d9914b3d.png" + }, + { + "title": "Door Bell 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/93a1fb12fbfd65419677c380cd1ceac3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f337efcb0e67418bc4f40c67d9914b3d.png" + }, + { + "title": "Door Bell 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e926d86a2b234756af495542f020a4e1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f337efcb0e67418bc4f40c67d9914b3d.png" + }, + { + "title": "Door Bell 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c7e489164f640e750671868b8d5cf177.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f337efcb0e67418bc4f40c67d9914b3d.png" + }, + { + "title": "Door Bell 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5bc2eeab953d604d4400ceaad1ac4809.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f337efcb0e67418bc4f40c67d9914b3d.png" + }, + { + "title": "Door Bell 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9de866aeb7da2605341c3c69a3b1ee46.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f337efcb0e67418bc4f40c67d9914b3d.png" + }, + { + "title": "Door Bell 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8005cab6c5e7c0f64e243fd0960712ba.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f337efcb0e67418bc4f40c67d9914b3d.png" + }, + { + "title": "Door Bell 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2a7ded6caaa4d0e601d8066bd5cab926.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f337efcb0e67418bc4f40c67d9914b3d.png" + }, + { + "title": "Door Bell 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0f4ec6a3a7844c3843f5013fd236cb03.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f337efcb0e67418bc4f40c67d9914b3d.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e61906a", + "categoryName": "Gun", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/e7500deb0a551a15118c87e5cddd8fe0.png", + "list": [ + { + "title": "Gun 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1b70d7932349c66053c18170fc34c483.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e41bcaab807dce68e4fdf0c8ad3050bd.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3adc00280653c1f3801ca604447e1ac2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/10bf11c673df6ad35e2c0091c0274b75.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9ae299c7048214c816051d89b64e73e0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/06eb4dad128dc0b38fd9a894e330d18e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/eca3917ea4bb05de3738e6d56992e068.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6b6a94f60770a0eed81e2a6cceac990e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8217ef2b02efcc620a7693609e763272.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7ff1c0b254f99647bc15b8d0257c77e1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/54d7e3165add3b311cc52e42e2ac358e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fab9360f83cd2adedbccf863eef4c00e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + }, + { + "title": "Gun 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8aa3109b806dd3af5a19e01cd92eedd7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0b502b9482b4983cea9d0016222eb151.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e61906c", + "categoryName": "Laughing & Clapping", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/f5f20f7b929d1895646fa53a11b6e713.png", + "list": [ + { + "title": "Laughing & Clapping 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/53976e14d9dcd04d66a2231dbefa2d25.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d2660175f92e9d66c5ea2438c998f96b.png" + }, + { + "title": "Laughing & Clapping 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bf5865743949d55a2e60f76e54f406f3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d2660175f92e9d66c5ea2438c998f96b.png" + }, + { + "title": "Laughing & Clapping 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d4b7ac581f1e29e91873fb444bf4a650.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d2660175f92e9d66c5ea2438c998f96b.png" + }, + { + "title": "Laughing & Clapping 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d2d86df37a19d3ba49ee576c9827507e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d2660175f92e9d66c5ea2438c998f96b.png" + }, + { + "title": "Laughing & Clapping 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4b0ad3c4370ef58c65eda79c4ed5da77.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d2660175f92e9d66c5ea2438c998f96b.png" + }, + { + "title": "Laughing & Clapping 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8ef8e563cbf9fd21d2d692f15e5872fa.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d2660175f92e9d66c5ea2438c998f96b.png" + }, + { + "title": "Laughing & Clapping 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/25e598b57e0b8b1c3577bc79a1f46d8d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d2660175f92e9d66c5ea2438c998f96b.png" + }, + { + "title": "Laughing & Clapping 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3a890019e262b16ee4347cc8a813992e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d2660175f92e9d66c5ea2438c998f96b.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e61906d", + "categoryName": "Man Cough", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/5ca252ff3bf4df8997dea29778a7b5a2.png", + "list": [ + { + "title": "Man Cough 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a8e5b8919a9d48dc554478ea8f1c4439.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0c1d0ccc9575b1bfcb90709eaca2d87c.png" + }, + { + "title": "Man Cough 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6e70e991809ed445964e664e7aaa9712.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0c1d0ccc9575b1bfcb90709eaca2d87c.png" + }, + { + "title": "Man Cough 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/488555f76ecd73f81fba44ce79735e6a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0c1d0ccc9575b1bfcb90709eaca2d87c.png" + }, + { + "title": "Man Cough 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5a9bb0bf2c45728baaed0802ffcc3785.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0c1d0ccc9575b1bfcb90709eaca2d87c.png" + }, + { + "title": "Man Cough 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/83a38883a26c16352c5ecdc75e895016.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0c1d0ccc9575b1bfcb90709eaca2d87c.png" + }, + { + "title": "Man Cough 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/53ca05546106e9dc029d15791c479c0b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0c1d0ccc9575b1bfcb90709eaca2d87c.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e61906e", + "categoryName": "Man Sneeze", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/3ab4be4f087c6105283b1fce000219d8.png", + "list": [ + { + "title": "Man Sneeze 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/da8ecb9ac9aeed016f19995362a52dda.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/abd829a1371fed85427195644bdecc50.png" + }, + { + "title": "Man Sneeze 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a0283a7c16693263d16dceb903d72876.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/abd829a1371fed85427195644bdecc50.png" + }, + { + "title": "Man Sneeze 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2d89cf3b56a45040b6a3dd772ddb5ca0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/abd829a1371fed85427195644bdecc50.png" + }, + { + "title": "Man Sneeze 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9d8cc900cd41b19bf110fc305e1ca23a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/abd829a1371fed85427195644bdecc50.png" + }, + { + "title": "Man Sneeze 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3063a0e734865ffb985ddccbfb6d8f2a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/abd829a1371fed85427195644bdecc50.png" + }, + { + "title": "Man Sneeze 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3fe129338e5f251b86ad1e462b3a02be.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/abd829a1371fed85427195644bdecc50.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e61906f", + "categoryName": "Police", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/337c43b1284f89cd5fb01ba72b70bbe0.png", + "list": [ + { + "title": "Police 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/00758055f21c7c847eb17111fbd4fde1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b14f740e38a3027b0e07809ea3cd9e6a.png" + }, + { + "title": "Police 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/62fd647b38f9085b04388302ec6be903.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b14f740e38a3027b0e07809ea3cd9e6a.png" + }, + { + "title": "Police 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6c1b0258ee9d8d1a8944fade13d299b9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b14f740e38a3027b0e07809ea3cd9e6a.png" + }, + { + "title": "Police 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/709c8dd0669775acff861c3833f1380f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b14f740e38a3027b0e07809ea3cd9e6a.png" + }, + { + "title": "Police 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2c0bafc776d3513f4cd84e30581673c6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b14f740e38a3027b0e07809ea3cd9e6a.png" + }, + { + "title": "Police 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/949fd589e776f0f497755b36b20725be.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b14f740e38a3027b0e07809ea3cd9e6a.png" + } + ] + }, + { + "categoryId": "64b617f06d7b94ebbe2a20fa", + "categoryName": "Siren Head", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/66f62ff246444e7f216b3e3145436ba2.png", + "list": [ + { + "title": "Siren Head 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f1c48bfe7199564a4f65cd366e5bbee1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/71d4d9da20e9c77932ef1f8e360528b9.png" + }, + { + "title": "Siren Head 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/dd95a7600e0183928a90c9454125b9da.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d0f866a2c593c3d673a5b7c3c5ff65a3.png" + }, + { + "title": "Siren Head 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/717fee29f9cb3771f40eb611fa68ddb7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/bc39a8d7dc21405b4c9d90bcd4bb763d.png" + }, + { + "title": "Siren Head 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4055968c7925dc385780e5085e87e668.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/11c95a75b76c58e0b7fe948619bf90d5.png" + }, + { + "title": "Siren Head 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7740dcc10a55fd19a9f535117267d167.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c3532129a7e0c7a90ff1d7f5c840a588.png" + }, + { + "title": "Siren Head 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9cee309d020b9057d3e3817f7bd3c9f6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/57662e423e3572d248fe25c18e297571.png" + }, + { + "title": "Siren Head 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/76142b5831d017ae2a79bf6f21701848.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1e2c6f0f9a02a7f16f101d2641dafdfc.png" + }, + { + "title": "Siren Head 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ea514c12f3c2d600acc25764294d0e36.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6336d43fda0f23102ed71ab253efd223.png" + }, + { + "title": "Siren Head 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e9b29fb3222e26f98f513495aa94b07f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d1c6f6b2a9954b1c86d9653a6176d3e1.png" + }, + { + "title": "Siren Head 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c67c90fd97b0ff58b663b88b25f5d9c6.mp3", + "preUrl": "https://prank-sound-abi.pranksound.com/icons/icon-sounds/SIREN HEAD/Horror toilet head.png" + }, + { + "title": "Siren Head 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5bf293da0ae9defb3ff22f2633c4e8a7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/40ae0ffc0d72ff35a667c252c57bc21b.png" + }, + { + "title": "Siren Head 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3e514f44b1a924784e70516f5c14676b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/484c5a84e39b4cf8a89eaf6c0ce33058.png" + }, + { + "title": "Siren Head 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f2d6521b93cb4708c90bc7411e3efe8d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4ad530a9cd082b6718fc6b0c6314e117.png" + }, + { + "title": "Siren Head 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b783ff32874fab37c529674008d094de.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8daffdde57d1f112a0c8fa085e5dd342.png" + }, + { + "title": "Siren Head 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/39ea5814f83dad94fa03813765cd7be2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/312a7a167f65006ae12a9c0835381a32.png" + }, + { + "title": "Siren Head 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/50ab76c335620fc019b3456ebd998dde.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/25fb210025fef2caf179b6e674132beb.png" + }, + { + "title": "Siren Head 17", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0d24bfb2863ecd141bf531f8c10f4825.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b16a10b771a10c6de7bbe6fc788ad29e.png" + }, + { + "title": "Siren Head 18", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7a5c47c0a3eee16839d5152cc2534b9a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/641a2ca25cab24bc625bf357ca068cf9.png" + }, + { + "title": "Siren Head 19", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0ecdb52645d0183434c4adf54c5aa1c2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cc034d34f4b651dee403836573953798.png" + }, + { + "title": "Siren Head 20", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/cf4a85cff1bca293fc70ca99413ba3a3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1ea8ed30ad14f35b8c5414248e71168c.png" + }, + { + "title": "Siren Head 21", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/46b35ad55405ec55ab660f45ab342135.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/bda071bed3d6a2f27b451a0e23529cb8.png" + }, + { + "title": "Siren Head 22", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/98e6b123b0e4b8626be248d9570a0893.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d47035746f6540a7050a6401adabcd5d.png" + }, + { + "title": "Siren Head 23", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f86502f566001ba59633f9e4b436a120.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/20d0f271ccb54260e6fd787e337d54d9.png" + }, + { + "title": "Siren Head 24", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ca9deeed39c238efa15039fc6c504249.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6b85ae163ea1702b837e6cef65f4e72d.png" + }, + { + "title": "Siren Head 25", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a11ad1489c9bdcd019f424de3757ceb2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/40291b6f6ce00d1e5870cf49b2deb169.png" + }, + { + "title": "Siren Head 26", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2f18cb66ae66f52db7e5f7f7d720614b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/3fa55b1e54a5e3a0e8b5aba438989ebf.png" + }, + { + "title": "Siren Head 27", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/dd392b80f13294931fd3cba97837c1b4.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c1be056dabc3a43ed1e2fd6dd11e1186.png" + }, + { + "title": "Siren Head 28", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1794f5474e0eecc863dcfbe37e7799ea.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6af3cd32bcb76a0f9f31aef2697b65be.png" + }, + { + "title": "Siren Head 29", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/caff07c26ba52bbb40d0f6e9375d5117.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e184c7165caae221ba6dd2ed4f14e4da.png" + }, + { + "title": "Siren Head 30", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/feb2a49dc93e4c615e564658550562a4.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/a4cd82ea68f707cb87681545786fe1fd.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e619070", + "categoryName": "Scary", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/6278fe84a68fcd4460cdd386c6e416a9.png", + "list": [ + { + "title": "Scary 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/528d36e86c6c907fcd269dfb11d36e7f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/017425f1d43d5d5a2ddb30d5c98b833e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6d4cad59de5cde890f3ad91fc97a01bf.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/81bd6eccee3776b9f0739c844900589f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/10e36b4a6be36d66da6e8a412fe2dc38.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/03be97cf98b8fdfe2bfc6192ca38e295.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2c234ea6d1714c5f921a11a0cb04b959.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e0f85cd581a950931ccd70c0a8f18284.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/eec0a36a322ba705914de17be1844902.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c9b387e84b03367983b8c5956c027fd3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/81950f0fe7a87a8d919f90f6c7a126ac.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b490c3b6de2845d27f785cc038651a7d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/54faf2f18d3aa3fdd1cf6288280dee33.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ffae2d80b33be19ce3ed46b71fa2e89c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + }, + { + "title": "Scary 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/32469294894ddb9e7f0d0470944c96ef.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/45dd88855533ed768453de20d00e24d2.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e619071", + "categoryName": "Toilet Flushing", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/33b7620ad25844786a8fc223527f5ef6.png", + "list": [ + { + "title": "Toilet Flushing 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4869b8d235565ae0dcfb417730fadfd3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cb67455649424c9e527ffb8cbe1d4720.png" + }, + { + "title": "Toilet Flushing 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/75fbdd7d378d68bcf9c5265c416d2ea7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cb67455649424c9e527ffb8cbe1d4720.png" + }, + { + "title": "Toilet Flushing 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/05b018ec588b59a7ae6aeacffebd090c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cb67455649424c9e527ffb8cbe1d4720.png" + }, + { + "title": "Toilet Flushing 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d99d871d2b71c2748a4b50a9e412a003.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cb67455649424c9e527ffb8cbe1d4720.png" + }, + { + "title": "Toilet Flushing 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/569d98c887e4713a8f2ab75d94335471.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cb67455649424c9e527ffb8cbe1d4720.png" + }, + { + "title": "Toilet Flushing 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0d784187286cbdad0b86906b0ecf468c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cb67455649424c9e527ffb8cbe1d4720.png" + }, + { + "title": "Toilet Flushing 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2b83531021f3adfe140576edaa6ae64a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cb67455649424c9e527ffb8cbe1d4720.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e619072", + "categoryName": "Woman Cough", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/f2bdfbc0e64c5fc58d2cfb97807760b4.png", + "list": [ + { + "title": "Woman Cough 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f7752eaa1925eae9f35baa413473d947.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5cdfcb21202fd7c0758fd4358ab5388c.png" + }, + { + "title": "Woman Cough 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d12628bab0220fec1f2adfcd11059eee.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5cdfcb21202fd7c0758fd4358ab5388c.png" + }, + { + "title": "Woman Cough 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d328c92c428b9deb701e5ce62e29c3aa.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5cdfcb21202fd7c0758fd4358ab5388c.png" + }, + { + "title": "Woman Cough 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4924914999fdedb0b8805dd3bb351c1c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5cdfcb21202fd7c0758fd4358ab5388c.png" + }, + { + "title": "Woman Cough 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2bc4822253cec9bea5b1ebc58d864bf5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5cdfcb21202fd7c0758fd4358ab5388c.png" + }, + { + "title": "Woman Cough 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1f76eff7125e748fe8cbbe9a75bbf065.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5cdfcb21202fd7c0758fd4358ab5388c.png" + } + ] + }, + { + "categoryId": "625f83491fea07887e619073", + "categoryName": "Woman Sneeze", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/53ff3c33cb2978848ad158f5f503f44f.png", + "list": [ + { + "title": "Woman Sneeze 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5e3372221ee2d524c09ea1453241f2ec.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b9d608c945508adf3af63dd897b87962.png" + }, + { + "title": "Woman Sneeze 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/aa62d571978100034f075aa0e6fdfac1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b9d608c945508adf3af63dd897b87962.png" + }, + { + "title": "Woman Sneeze 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e0cfbb8a8a73b8204faa50c83928c602.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b9d608c945508adf3af63dd897b87962.png" + }, + { + "title": "Woman Sneeze 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/29f9bc8ea11b407997a732036867b690.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b9d608c945508adf3af63dd897b87962.png" + }, + { + "title": "Woman Sneeze 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6ee013abc51374d888d692cbc3dd0113.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b9d608c945508adf3af63dd897b87962.png" + }, + { + "title": "Woman Sneeze 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6d114f02275389c9e2804742e03589f8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b9d608c945508adf3af63dd897b87962.png" + } + ] + }, + { + "categoryId": "6260b076d7ddc35b5bd96175", + "categoryName": "Fart Song", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/597048640f9327fdf80a9b8c57d1875d.png", + "list": [ + { + "title": "Fart Song 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7f57e37ad26c9340e9f2c4e9513ad16b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + }, + { + "title": "Fart Song 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d48603d0f885f0bfb92908dff279fc74.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + }, + { + "title": "Fart Song 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a0c91808e3c3f82dde9c4f0c213c277b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + }, + { + "title": "Fart Song 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a6402c906f706a2d8ca90623ae25959d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + }, + { + "title": "Fart Song 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6e076b6f5cc6b28206855438f5ae1ae8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + }, + { + "title": "Fart Song 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fe8e179b2cbee41df3307fe986f6c5c3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + }, + { + "title": "Fart Song 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/12ffa7d48d8d09603cdd083c35011f07.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + }, + { + "title": "Fart Song 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1c57006820d6f0c33bfd98da3876aea6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + }, + { + "title": "Fart Song 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/dca2cd758468a24b069c8fbcf1c58822.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + }, + { + "title": "Fart Song 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7197d999f98a8dac6c1db1b1b102bbaa.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + }, + { + "title": "Fart Song 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/02d51fe34d1ea224e21a6e81d82d6b34.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + }, + { + "title": "Fart Song 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/03f3ae3aad6de892fab252ab1105de9f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a6fd612ee2d23f205720be5a47b8f0d.png" + } + ] + }, + { + "categoryId": "62be51874d4edd56b588d54d", + "categoryName": "Hair Dryer", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/0cbc3e7ca3f59e483987ada3bf66092b.png", + "list": [ + { + "title": "Hair Dryer 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ab62180a31684ba85e6ae1ba49969105.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d923a0b99a094f3aa46706d7f4a1adcb.png" + }, + { + "title": "Hair Dryer 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2ccabf9031bcfa21d48551e79fc83415.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d923a0b99a094f3aa46706d7f4a1adcb.png" + }, + { + "title": "Hair Dryer 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2c646ee341779cb9c6cbd333fa32d964.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d923a0b99a094f3aa46706d7f4a1adcb.png" + }, + { + "title": "Hair Dryer 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/877dc85a9dfa2fb89a50d14ff78555c4.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d923a0b99a094f3aa46706d7f4a1adcb.png" + }, + { + "title": "Hair Dryer 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/41e6c807cbc7a5121bd85e20c51e2dcf.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d923a0b99a094f3aa46706d7f4a1adcb.png" + }, + { + "title": "Hair Dryer 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0bcfafc6a6cee193b81dc776ee8978a5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d923a0b99a094f3aa46706d7f4a1adcb.png" + }, + { + "title": "Hair Dryer 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0bc4403a27bd81be77ca974858880814.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d923a0b99a094f3aa46706d7f4a1adcb.png" + }, + { + "title": "Hair Dryer 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7fb10282eaf2abd213e5b0748c249c3f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d923a0b99a094f3aa46706d7f4a1adcb.png" + }, + { + "title": "Hair Dryer 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8fd15fe2cd50c03de4e2e9099b64b605.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d923a0b99a094f3aa46706d7f4a1adcb.png" + }, + { + "title": "Hair Dryer 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e43c49428ea8d722e3f899fa751db5a4.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d923a0b99a094f3aa46706d7f4a1adcb.png" + } + ] + }, + { + "categoryId": "62be51cc4d4edd56b588d54e", + "categoryName": "Scissors", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/b5d48ccbd106fbd1d7c626f91727fa10.png", + "list": [ + { + "title": "Scissors 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/383b87e66571b7d1d61e26559e78c1af.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ad58f8cfd6ddf45319b2c74c5ec3e338.png" + }, + { + "title": "Scissors 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f097fbde71b2d02a5fa7d82c80b2178f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ad58f8cfd6ddf45319b2c74c5ec3e338.png" + }, + { + "title": "Scissors 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fb3004acf9a716bc01811fe575fc8fa4.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ad58f8cfd6ddf45319b2c74c5ec3e338.png" + }, + { + "title": "Scissors 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/010f00d576f839b749ea679de5071304.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ad58f8cfd6ddf45319b2c74c5ec3e338.png" + }, + { + "title": "Scissors 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2ec031ff389789dad863624fbe0daa84.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ad58f8cfd6ddf45319b2c74c5ec3e338.png" + }, + { + "title": "Scissors 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1720a6fffea45b1e85960c0e2882e533.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ad58f8cfd6ddf45319b2c74c5ec3e338.png" + }, + { + "title": "Scissors 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9b4263d5ad2bae68cb5bec90119b1677.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ad58f8cfd6ddf45319b2c74c5ec3e338.png" + }, + { + "title": "Scissors 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1a58702466094a2e8f22c357cd6651b7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ad58f8cfd6ddf45319b2c74c5ec3e338.png" + }, + { + "title": "Scissors 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/534eff4250e113d0b9c9c160f83e7daa.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ad58f8cfd6ddf45319b2c74c5ec3e338.png" + }, + { + "title": "Scissors 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fd206198f0d10bafd81909ffb1948f7b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ad58f8cfd6ddf45319b2c74c5ec3e338.png" + } + ] + }, + { + "categoryId": "62be51f84d4edd56b588d54f", + "categoryName": "Stun Gun", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/6dbc249836ba3c26eaea8a65246ba007.png", + "list": [ + { + "title": "Stun Gun 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/36714df03c6662fe87bf66775b79e290.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/93ca289c09f6940321e6649e36f1b4b8.png" + }, + { + "title": "Stun Gun 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5ea760c046e892a87572f6ff4b574b21.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/93ca289c09f6940321e6649e36f1b4b8.png" + }, + { + "title": "Stun Gun 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3c445de6e2182f8bd84dc2013e0c92c6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/93ca289c09f6940321e6649e36f1b4b8.png" + }, + { + "title": "Stun Gun 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/efb342b94e6705a542bf81b897884891.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/93ca289c09f6940321e6649e36f1b4b8.png" + }, + { + "title": "Stun Gun 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/217cb15dd95d75de47be5ecc25903bc9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/93ca289c09f6940321e6649e36f1b4b8.png" + }, + { + "title": "Stun Gun 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3c57ac18cda86a1c64497c5bf71a5df9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/93ca289c09f6940321e6649e36f1b4b8.png" + }, + { + "title": "Stun Gun 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/71804861ad4c4b9a87cc55233cab13f1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/93ca289c09f6940321e6649e36f1b4b8.png" + }, + { + "title": "Stun Gun 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/14e0f7d9d2e90455332dbf1fc48f164b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/93ca289c09f6940321e6649e36f1b4b8.png" + }, + { + "title": "Stun Gun 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/86525c1bb7cd3a5c32b8f75d1d246ca1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/93ca289c09f6940321e6649e36f1b4b8.png" + }, + { + "title": "Stun Gun 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b30e4e8b2f568e68fafe97f020f9cc03.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/93ca289c09f6940321e6649e36f1b4b8.png" + } + ] + }, + { + "categoryId": "636b8e5415831ec42fc7d803", + "categoryName": "Business & Office", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/310d539f09087c633febe6bb47dcbe9d.png", + "list": [ + { + "title": "Business & Office 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/dac34a1833dbc36e5485c9ad605186f9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f285409f669ec89b073aa32da7c689b5.png" + }, + { + "title": "Business & Office 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/30986c5ed073a225c4f2ecc4e18df94e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d3d198ec14f12000e8000e1e7ca3c2b2.png" + }, + { + "title": "Business & Office 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/15bb74cacee7e2e6774b0486f6f119fd.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4d4295326110cbc8970c2d5b045fdddc.png" + }, + { + "title": "Business & Office 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/71248827a62bdc2e09f40ac4dafbdddc.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7f79dd59ee84130d97935a6809ee8932.png" + }, + { + "title": "Business & Office 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/de4c54a2e4734ce622e6c0650bee4e29.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0e2bdbf65f930c724f177379cf6e1433.png" + }, + { + "title": "Business & Office 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f7ca6b14b56ea73b369b6bae7c4e4e2c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4d04e30956a94b46a0ff3f6f3679c668.png" + }, + { + "title": "Business & Office 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/89e347a79b3bdc50302fc921702bb656.wav", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ebf9fc1c3f19a38b04e48051190e98b9.png" + }, + { + "title": "Business & Office 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4b8b9230ad1c31f315d98c04005b9007.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c2812f24bfc3e17940bd5e8dba2c384d.png" + }, + { + "title": "Business & Office 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/711b2bf9ef1f12f325a1e4a06b67e71a.wav", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/97d22c85cd7c616d6fa304cc24a2d4d2.png" + }, + { + "title": "Business & Office 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b9a2ba10a8c49185f81e9a098b7d8e9e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/a3b2eee907c7e17e2153d0278e844565.png" + }, + { + "title": "Business & Office 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4dad8196b944eb9d7f4aa5ba9fafb1ea.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/02f87fce069b516fabc7cee0b8042380.png" + }, + { + "title": "Business & Office 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4de94407c7b019b4f28e7e47aeaba821.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7170defe4afbac8f2e3adc1c7786efe7.png" + }, + { + "title": "Business & Office 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/75d78fdb2025ffe47867d0c66f940c1d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/17b3e93b2eeff9b952012cf2d77ede26.png" + }, + { + "title": "Business & Office 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9cccbb6715861dedc1d5d788a315cd91.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/baa5002f8777087d433be6c3e27f6407.png" + }, + { + "title": "Business & Office 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/804f1003e1a900f0ed58fa855f6b74f5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/17e051287b5c7d6d2871d169f84b0120.png" + }, + { + "title": "Business & Office 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/dc19db1639480a2837bb8fb2e815f3d1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/29a072366d8a98a411d8b6e979c4ead9.png" + } + ] + }, + { + "categoryId": "636b8e5415831ec42fc7d804", + "categoryName": "Doors", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/fc4acd4d2f4c93c94c65fa122e4bf945.png", + "list": [ + { + "title": "Doors 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5dd61ae1dcaf73548d6fa3b46630c94f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7eb41be957ec7d8b0ecd7584221cbd43.png" + }, + { + "title": "Doors 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/72a49b6da900a94ee9bbf81ea97eebcc.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/abbdcebf90efbfa947b8b65deef8bbf0.png" + }, + { + "title": "Doors 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b532a5815df6aa83d42eee075b7fd0cb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7a9b205da4fd1cbaee96251bcc72723d.png" + }, + { + "title": "Doors 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/61c804feb9791b324240794466bbecfb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b2748764ffb0b3f6adee8bec72bc23a7.png" + }, + { + "title": "Doors 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8196950a7900e1dc7f89e16d884532f7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/dceaa1d13a61589b26d1984dc43aa935.png" + }, + { + "title": "Doors 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/467373a534d5828b3cfc40e7e15f4c29.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/97e82065e38da733e3873be883680045.png" + }, + { + "title": "Doors 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4d6021931f2cc965b8f4618518519825.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/870c966054eb8e5c8599c87760edf1a0.png" + }, + { + "title": "Doors 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bc1b8cad303726345b57d53875eb3829.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/87732e14f894bffe1e1037cfec2ab1bd.png" + }, + { + "title": "Doors 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/969d1046fb8e89b08d489ac649710389.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f623e0b8b10afef6a1d5803cdc71c4e5.png" + }, + { + "title": "Doors 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/253cd4367452afe514185d206c880da6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1d903b54414d65351897d1d3bc5931d1.png" + }, + { + "title": "Doors 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/484faca48a560a2735e5f263c269dd85.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d526bec2aba09fcc2ef2ffc3d4be162d.png" + }, + { + "title": "Doors 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fdfadf1f67a7f0fe84fc8fe415b3e780.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8fcbebdf66ce047de184cbe06a033add.png" + }, + { + "title": "Doors 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4256003d4e427cad1a9d6c91e124c70e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9c1013485295e5f6d7e187b8dbf18d72.png" + }, + { + "title": "Doors 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/53b4d94372e6ad1f00e2588c4a2e6d5a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b1f8e3b5c189c6722080cbfa8e339324.png" + }, + { + "title": "Doors 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/976b47bbd63271953dbaa1571af18b33.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e2b7ee1365748dbe029e397b5552a2d2.png" + }, + { + "title": "Doors 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/faea69992fb7827e14d58cbc11b48e5c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0996dfe242956c469972c799d5c29838.png" + } + ] + }, + { + "categoryId": "636b8e5415831ec42fc7d80a", + "categoryName": "Tools", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/b52b8ff860d9faa3f1ebfcce9674146a.png", + "list": [ + { + "title": "Tools 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8ecd92c12f58b998a1995b1165fedb2f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/61bac61bf374b774bada2f2ff2a4c5a9.png" + }, + { + "title": "Tools 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c6b83c50a9ffa835f85a33fbd5456378.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8236f1eb51b7c1664bc12576904c20dd.png" + }, + { + "title": "Tools 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f87a533bd42391c05919cf42217d0881.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d5dc76bec49925af9eddfae717771d21.png" + }, + { + "title": "Tools 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b60bab2e7a6aa07a1ea7a8cfadb9eb2a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c230585234a87c66eb77d14d409f314f.png" + }, + { + "title": "Tools 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/749997c97f26bbd68d126063a73e020d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d33fc684d1b061c48198a9fe06a6a435.png" + }, + { + "title": "Tools 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7ac292b1e7e08aa9deac5336c98672c8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ebd488945e45cb8f9bc4fab61777226f.png" + }, + { + "title": "Tools 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d24fa096945aad87e4e7e826b951cb47.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/87758a660d803d1993163a6174337e86.png" + }, + { + "title": "Tools 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/44d2fa94e973155b6eafc2ebd98a48b5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/31099ab082cf0c33257ba55b6f158d2d.png" + }, + { + "title": "Tools 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3d2bb144b89a0f17694976d7c0752fbf.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/bf4f23309c1e286ac774bd7ea905fec2.png" + }, + { + "title": "Tools 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5ca71e456e6fc165ce80670096441054.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/313943eb3bca880b256eb60817bbe794.png" + }, + { + "title": "Tools 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9f6568788aafed3a4e94666556e063a3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/03448a48e39357ff4cb0e5353eb2d84b.png" + }, + { + "title": "Tools 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d598154f78de11d670556446024fe75c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e8e2c49b654cac07f1b9aa435e94a4fd.png" + }, + { + "title": "Tools 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/74e4fb931e8b23db2429b0540206b735.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4874e00bba3ccdc19fdce2caaa42abe5.png" + }, + { + "title": "Tools 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8bc825c756c4bc3c650638f00906d8a2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c3fbde9b26562ebf3dfa26663caf905e.png" + }, + { + "title": "Tools 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/637463e2cb3b2dc56857803be51e740b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d7236b203518ad4d663a77cfe9605797.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd33", + "categoryName": "Blowing Nose", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/10ae4d6081899ea2e9a669d984803af1.png", + "list": [ + { + "title": "Blowing Nose 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c21ee72ff053b9af5446a144f3a8f5d9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/3d852de32ef2cee953cc0052c5434d7c.png" + }, + { + "title": "Blowing Nose 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d8bc2062013cf3898ba22339e05f8937.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/815a8c9f75c08462e5056293b4ac03d6.png" + }, + { + "title": "Blowing Nose 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/738053f0fd11e2e78ebc6982a0ce8d94.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5230615041ab079bc44b5ab4651689ac.png" + }, + { + "title": "Blowing Nose 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8b39b3c764aa9f24d793ef7ca9b47766.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5db6a01b77d6bec1e77e27ed0250538d.png" + }, + { + "title": "Blowing Nose 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1dec038dcf27e131f378152b6cca19aa.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c1f25a36e5be3f5e89548ca2df68ec7d.png" + }, + { + "title": "Blowing Nose 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e3ca312da6ccf6c045cf54a3053ec64d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2c70c41bf20ab79c047ab83eb073c7f1.png" + }, + { + "title": "Blowing Nose 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d27f5ee9a14e7abb8647df98bdf78d6d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/615db5ca94702e352df5fe7160405987.png" + }, + { + "title": "Blowing Nose 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f8b89b279b92dcc07fdd21c57b274939.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/335130a491ceb6544dc06030a9099b72.png" + }, + { + "title": "Blowing Nose 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/524df318fb89468b47ecdd24fee0abb3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cb3589f2bcc4de916b93f1d645bd609c.png" + }, + { + "title": "Blowing Nose 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/85df353b75274d23379db28c793bcda2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/071640b3fbc881af55fc345aefbcfb8f.png" + }, + { + "title": "Blowing Nose 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3323d20bae58fba6564d20dddbf54344.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d64135b9fc82bdf24691ba3cd0d219fe.png" + }, + { + "title": "Blowing Nose 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fec8cf2ef7810aa77c535d30deb424a9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/be6f421cd6252c727d0849b0485872c7.png" + }, + { + "title": "Blowing Nose 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/181b424184ee04268e010b2d57fc7b3c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e535a74ddb58cd6061b3d12bec3d8108.png" + }, + { + "title": "Blowing Nose 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8e408532f99f796ca6ef4ddb2536ccb2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6200c6c8db8192e6adf9870e6fb3d66c.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd34", + "categoryName": "Boom", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/5b1491b8aaf758881c67c8c2b558c2dc.png", + "list": [ + { + "title": "Boom 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5306947bccc61b844e2e6727b457379a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/82c5ab1a9f451de342f3f09216e1fbee.png" + }, + { + "title": "Boom 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1b3cc658778a2341f0d6552f7f4f5962.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1974c458e5f8872ad86b965695d2099b.png" + }, + { + "title": "Boom 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f86bc4ffc1eaabd2981caee1f0e99340.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6bae28d8c8769199edafe4131b300fc0.png" + }, + { + "title": "Boom 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/289af25a549128d5283adad2beba9bab.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c9f3f6a9ffda61356fe9eaba57bbd4f6.png" + }, + { + "title": "Boom 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/479ebd96e9487ff97aab59db83ae7d8a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/a6c2da6f9026bd769cd0839c9e63120a.png" + }, + { + "title": "Boom 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/edb83ff1f94ba7ed4022c9592372f717.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/30312fa0068c7d5b2eb5be68373e2ac9.png" + }, + { + "title": "Boom 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bee0244d6a055138352e20fc9e657fd1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f7de1f306d8688582603f28d3f1d2b5b.png" + }, + { + "title": "Boom 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9aa4c5eea7cb1df76482151cfec7143b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/500c164ef2359970562876e7be6f3a69.png" + }, + { + "title": "Boom 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1d1a8d15f3bd34210b32a15fc01e357e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/05af0a4257212c0d05a428bd12f702ea.png" + }, + { + "title": "Boom 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/26979e70465520b90166a19db093b678.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6ad99a9bc42d9200f5e62a62fdaf263a.png" + }, + { + "title": "Boom 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5c5581b9ef71e552db551b817c6face0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/056e4e4bcedc33a049702bf2136ce246.png" + }, + { + "title": "Boom 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2ceff4497dd839813c8180e5b1e85daf.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d3ff691c62a65fddd11b1971001387e.png" + }, + { + "title": "Boom 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5a01d5adf7cda433c436825285c476c3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2f36ab0b9b3c8d2f3ac825d4cf98ca40.png" + }, + { + "title": "Boom 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/68d1372b68af614f0d8a13088c5f997e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5d5f6d6ef003d5ac9aa219cf5e457f1d.png" + }, + { + "title": "Boom 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/319b39b164ee36a13d42add262409225.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b1e1e983e25f064323fffa945987ee39.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd35", + "categoryName": "Clocking", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/e3541e200135977e948a25f3fa3cf9ae.png", + "list": [ + { + "title": "Clocking 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/032d4c70e10ccc9a058784834525abf0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/455bb3313b0fbe49583f8d08342d7be9.png" + }, + { + "title": "Clocking 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0ebcd92a879c0747ca396b7056fc0d77.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0072b82cbe704d382d94163e8a4d7ea5.png" + }, + { + "title": "Clocking 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6c3b8867d8dc5ddae8f6f4dfae2e161c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d1b160240044e24c4d70c1e6e9c13a08.png" + }, + { + "title": "Clocking 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/22a5efd130ecc59ae5b572e411383215.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/54708a377b13ca9220c98d67bb2b05b3.png" + }, + { + "title": "Clocking 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/83d7123a865e59111c8e21c9e84d6f7d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/952339c7f8b628c0076aa67d3a91fe3c.png" + }, + { + "title": "Clocking 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5a6bae02f1218a65bce425a394d359bd.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c810ed9b81a8d117e976595a79545a1f.png" + }, + { + "title": "Clocking 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d6364d7a241e6229efd69025f64ef4af.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1222c2c9548466ded15941e3ec870cff.png" + }, + { + "title": "Clocking 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ffeefb8ac458b79227bd16321bf6141d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ed63edf33b1729c9bda6b3d4cbaa6e95.png" + }, + { + "title": "Clocking 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/62120a53252484f25d5d137f1e414925.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1fe48f5bc261f2bc56bb74960af59fb0.png" + }, + { + "title": "Clocking 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/072cbbb01d6067011cd5661676c15bec.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/3f1ac1219fbaee5a369325654a4236f3.png" + }, + { + "title": "Clocking 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/35267eb03b6c63b878287ea0a58b465d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f0b356181df23e939e48fd0dbfbde77c.png" + }, + { + "title": "Clocking 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b6bd31db371b35e3e0413b7a1bcaa526.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2679e3065f4b7b1c53706bdbce5db3b7.png" + }, + { + "title": "Clocking 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/657cf0b4daad0b890dad532224eff264.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/58aa57c5a6a2145ef55a91eed36d94bb.png" + }, + { + "title": "Clocking 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e6ec30d7e2328312cec2f81aa4ee8cfd.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/09af64443514248717d999cd3de025a1.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd36", + "categoryName": "Fun Anime", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/aaeefafde067a8a581e092da1bded504.png", + "list": [ + { + "title": "Fun Anime 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/82e23478a39727b64319ea9a24305c44.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e531963223deb322b6c1cd82ca35e592.png" + }, + { + "title": "Fun Anime 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4c96810a77998e69fc26c7db700943ba.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/564ed41ed1c50939f678c6ce1615a6e6.png" + }, + { + "title": "Fun Anime 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/abb51fb03ffff3df365a52e1a7909a6e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4ad9020fbea3aa257808155ab0126d4b.png" + }, + { + "title": "Fun Anime 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e19805327c2fef5e45d7980907e1bff3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7689e7a20fad1560264d4958ca171bb6.png" + }, + { + "title": "Fun Anime 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c581f4a448d6e3a2664400409dd7f1d5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f957d27cdfed60da55a6c8f19e77d3ad.png" + }, + { + "title": "Fun Anime 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c6768509557bfa64aabf3a50ebec11a2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/476fa332cc8aa7d52fdee4e7f09b9efe.png" + }, + { + "title": "Fun Anime 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bc839deec4b513f5ff140d6f10399a82.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/eb251b99ea2a75bd894bba66b06eefa7.png" + }, + { + "title": "Fun Anime 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f39bc98cd9378aae577317073a83a292.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ef6b03b866a7403d1b866e844d2ea0e7.png" + }, + { + "title": "Fun Anime 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d53fc0ae81afeac96df388f6a46b596d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/78a92bcb099672e7410382f5ffb96ebb.png" + }, + { + "title": "Fun Anime 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0623826682a9e23342ad643442901586.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/dd7baccea4b5f4ec1034ccbf409d0255.png" + }, + { + "title": "Fun Anime 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f871f8a0248e4c72ec23eabe1c5a1c26.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1b74cfe553a4100f6a2880face866a9b.png" + }, + { + "title": "Fun Anime 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c3c889815549d64a75e8fd4dfbd19ad1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/95486a7e21e90c104089d0ead67d1b4a.png" + }, + { + "title": "Fun Anime 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1a5f1250826de847860c616847abadc5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/99eae612ce6f2c0bfb88124494e365ce.png" + }, + { + "title": "Fun Anime 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1d891ffebbdb80288e29e01a0ef3ff06.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f1e484fa2f68496eb14e884a7f1b5193.png" + }, + { + "title": "Fun Anime 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9e6efaa721456378dc7f2fd9a4b80431.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/fa29b5549d0dc2922ab022daf74d0618.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd37", + "categoryName": "Gurgting", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/47f677ab3d76036aeeb7d883143acc35.png", + "list": [ + { + "title": "Gurgting 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e83587c797c63bda5ba0ba6e9661c10e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/92ebcaceca2f01bc0c5b17685260fab5.png" + }, + { + "title": "Gurgting 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/54a2ae6b7b3a6dade1fb653bee78d725.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c4bd65ec05dc758a167089ccc70dbc99.png" + }, + { + "title": "Gurgting 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d79da14a8674221c299c546ae5279a0e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/67ff60b6706cba7005666ea00b42a567.png" + }, + { + "title": "Gurgting 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7231f3e4c77dfe4e187ce9567a91a396.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/188336dc146d580464df78f639840322.png" + }, + { + "title": "Gurgting 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9ab0294593e0d91ad4898bed9ac7d07c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/81c9fc90426a5f09550aefaebec609ec.png" + }, + { + "title": "Gurgting 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d92ab4e402006c717d2661db13197f09.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/47f677ab3d76036aeeb7d883143acc35.png" + }, + { + "title": "Gurgting 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9d70e3f7bb5972e369376e594a3a187b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/51b2150f404124ca10d97e4a6810e912.png" + }, + { + "title": "Gurgting 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d30ad11811d29696445ab82646c8948c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/db6626e843b7e7be6fd3b8fab03bb3c6.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd38", + "categoryName": "Snoring", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/90513d7237ab90669be0049f8a093fac.png", + "list": [ + { + "title": "Snoring 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d997397b7b670deb5eb3db3e5a0d116b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/71a53b72f1fc60996f118ab40bf7b743.png" + }, + { + "title": "Snoring 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7c5ec7e1aa8dc82d9a65cebd3ccc2f2d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/32d9f31db6f6c4f3cf91bb53c2a329ad.png" + }, + { + "title": "Snoring 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ddcc94754a778ff7eb96a6d4723e6537.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1e3ecb4ef600dacaa302349b4c47c8bc.png" + }, + { + "title": "Snoring 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9dd4fda080ab2c3a8fce79d2bc53477f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4b402486f7c161195d2a59d63710df01.png" + }, + { + "title": "Snoring 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6557e92d1ae88b26aa3fa12297fb57d7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e1c1ac226e6bd3fdc0b347dc88d83554.png" + }, + { + "title": "Snoring 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2743eabb2a90c80fdd88521b1d20af58.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/a65b43dafc79ddb0e20db297e479b02f.png" + }, + { + "title": "Snoring 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/727733ca746f831e9ddd2a54d9cb747c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cfa2e6cbfa5790163388f2532672ad29.png" + }, + { + "title": "Snoring 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4d37ebc5baa7f6dac1d35b5795e017b8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6081e93fecf535ad88645553308fe912.png" + }, + { + "title": "Snoring 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5814b09bb3eea1ae7529c922de188b8c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2b922803e5f21b96548c103b2cf36481.png" + }, + { + "title": "Snoring 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/58270fc0616e08a132642f291a655f87.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c768c8dd29f9d69024b09b1b99b9b0a4.png" + }, + { + "title": "Snoring 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f10bccfc57aec1dac59868d5c3510765.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/210933cae9708dd88bb4e74939a3fc50.png" + }, + { + "title": "Snoring 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6a00470a867d76515fd0e319c2e7d2b1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7b6b47f6dcde9f9183e4d25208fef6ff.png" + }, + { + "title": "Snoring 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8dac9187468e2968e732716ef459da70.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5a750988a6584326de4c0060ceedee62.png" + }, + { + "title": "Snoring 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fc973109aa07c0795d7739caee934c3c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6cdbd0f5c65ff9e1821e72238f848c4b.png" + } + ] + }, + { + "categoryId": "636b8e5415831ec42fc7d805", + "categoryName": "Meme sound 1", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/3f20b20d6eb55d2c150bfdaab3146d5b.png", + "list": [ + { + "title": "Meme sound 1 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4cd17db699d08db7a00410aa44cfdae6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4e54a92c280899133f5748cfcb9ad94f.jpg" + }, + { + "title": "Meme sound 1 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6f4f5d8793fefd662d605051e882e308.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6ce34decfb7d58cf510ab82dc78aa5b5.jpg" + }, + { + "title": "Meme sound 1 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/83dd4438485bc75d1c2512d211c29e94.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/508463f2dffc6aadc6d97f0dbf0e0f54.jpg" + }, + { + "title": "Meme sound 1 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f72c46ffaa2eb922a5d3862154e4d7da.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/768f3032a5b4d5f108d38315021369b7.jpg" + }, + { + "title": "Meme sound 1 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/49f4f9589e5bc7fccb5025c3bbbf6370.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5145b39e4f37e5e7b19b3eb044da4ca6.jpg" + }, + { + "title": "Meme sound 1 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b70fb22c26fd2b3ede119ed8211c87cb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/674b7013980d4de4a298d29cf4a453bd.jpg" + }, + { + "title": "Meme sound 1 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/14893595f107aa2400451448d4657dce.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6201f052d753abc2a69ad0c2193b0021.jpg" + }, + { + "title": "Meme sound 1 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e707fa24de58599a20208974a6104205.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b839257eb37854499a4e40d51cbd6aa2.jpg" + }, + { + "title": "Meme sound 1 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/85eeb4bfb625a5925f4c93a981bbcdec.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9bb5966682457978dd2b13141d1c565b.jpg" + }, + { + "title": "Meme sound 1 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b483172e127951c58db64d47c9446a84.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/881be3402237e08c78e9afd5702ffc0d.jpg" + }, + { + "title": "Meme sound 1 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/cb1a3597611e266d9567e407e89c5805.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6b569aafac50aa1065d82218effbdd09.jpg" + }, + { + "title": "Meme sound 1 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f6a2966af445835d771d208c656f75e3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4882cb64aa7f02fccaa771bd3132f320.jpg" + }, + { + "title": "Meme sound 1 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6812b5abf6e98ef65f8b9061baf3a0b3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4780f9b372215392caf39459ce3b499f.jpg" + }, + { + "title": "Meme sound 1 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0afec4a83197261ea8c28ecae784b726.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f30debf012bb78a8f80f81884471cec7.jpg" + }, + { + "title": "Meme sound 1 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/86cdd28d82081e0d76c4f6091e830792.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8c1f4b8d2d50d2720531d5ce10f8feb1.jpg" + }, + { + "title": "Meme sound 1 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3651d0108fcb04f43cbdb3923f773c54.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9f1b1cb0b619a9e2ab06df6109a98d36.jpg" + }, + { + "title": "Meme sound 1 17", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ad0f4afbbba444f44adca6c8f4ef0b1b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c3ef842c2e46738780d099c66764f7e0.jpg" + }, + { + "title": "Meme sound 1 18", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a1350b1481b1cc8a7e6c9a97c929eb91.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/dcf787322d2f21f06d472ee29f575c42.jpg" + }, + { + "title": "Meme sound 1 19", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5192333458fb60fe9c5234d2f322f32b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/42b905a9bc320ae65ae0e8129bd793d0.jpg" + } + ] + }, + { + "categoryId": "636b8e5415831ec42fc7d806", + "categoryName": "Meme sound 2", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/4ce8347fa345ab501c9f3af2f10b2f72.png", + "list": [ + { + "title": "Meme sound 2 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d3aba7a2f9224139f1b28b72d3afbf61.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4c9ef927a9222babeb120236f86d8703.jpg" + }, + { + "title": "Meme sound 2 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/371d5e520c35b9d1d85f1422f3107e06.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/22eeccfd81d0c1250e815d1b7cfaeed0.jpg" + }, + { + "title": "Meme sound 2 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9220b4f67e33bc6d9065f0044a5f7540.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9122797892df0cbc618c8f82951f26e1.jpg" + }, + { + "title": "Meme sound 2 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/00f68bdb9de929d4388975d2bb522e52.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/41039b3970942cb52a11ab1b00b1b82b.jpg" + }, + { + "title": "Meme sound 2 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/43b262159fd2c422679e0b069b19fd02.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9e1031d234f6e41034fac222a1bd736d.jpg" + }, + { + "title": "Meme sound 2 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e8984bcbb510fb580b743e63f5302f25.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8f3f247d3761aad7a8ae1258891b015c.jpg" + }, + { + "title": "Meme sound 2 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/da87964537c41e74dd79877fa0477f5a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/13bcf55c08382797c5e3692f91fb183f.jpg" + }, + { + "title": "Meme sound 2 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9583852f8b38ff95c31362abd1b971eb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9b1ba9e18d100d573ec8eb4460537dd6.jpg" + }, + { + "title": "Meme sound 2 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/321cf948ef4521b6d25bb4760c183c73.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/be20800a7b112260564585eb30d4e158.jpg" + }, + { + "title": "Meme sound 2 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/cdefab3966d462745c1734a6b4c8d6bc.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a5d76c4c4485fbe8148c4d1d366fd74.jpg" + }, + { + "title": "Meme sound 2 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4b3c0d029aaf8d89b144dad3282b3919.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c480137f6e71f38cafcdd03440c69901.jpg" + }, + { + "title": "Meme sound 2 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f15b37e84d953464b92053417e4ca579.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e9f831f381978012560e046ce68c69d9.jpg" + }, + { + "title": "Meme sound 2 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/cfe4de2e2c7bc52bf4c6abce869c0e21.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/da5173be065c93376a8d51d6de963183.jpg" + }, + { + "title": "Meme sound 2 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f0dfb8bbdcced07296c6245995cb7a76.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e9aa4066c75f80de11ad4df4f80849d5.jpg" + }, + { + "title": "Meme sound 2 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9a36ed578c106c63a5554b4d76429f57.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/211df0d52a525b827d6c188eefbf634a.jpg" + }, + { + "title": "Meme sound 2 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/84498bb4dc3030de465e10d280f7e409.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2e13fe9fee06d9048d1b92f37e392602.jpg" + }, + { + "title": "Meme sound 2 17", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c38d6a583c7e23f8b054851e4b6fa37e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/3ec03e51b2a71153a7af4a0e2e947e97.jpg" + }, + { + "title": "Meme sound 2 18", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/833b37c1be0d7e45e02df03782045bc4.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0e80619eb10ab775ec48616ab695d597.jpg" + }, + { + "title": "Meme sound 2 19", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2f5d347f0a8938e727d7b67e604810e9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/22645a92d965b54f0635924c7dd7a047.jpg" + }, + { + "title": "Meme sound 2 20", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c3a2d9d4e3ef4ebea19dbfb172176c74.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8b31f0bf6ca513ab5e90d37ec710aa3b.jpg" + }, + { + "title": "Meme sound 2 21", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0dc955a722a13654b1f9f4cd0f19fadc.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4fb6bf4fed2964f6ee424d9e5ad06ade.jpg" + } + ] + }, + { + "categoryId": "636b8e5415831ec42fc7d807", + "categoryName": "Meme sound 3", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/991f4d7e0b8ce3ca9ebc5f9e7f5cf68f.png", + "list": [ + { + "title": "Meme sound 3 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a927e26b9e9b0f0d734249f42a43ca0e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/000a7d3d6afda260f4f60f8dcc9d3819.jpg" + }, + { + "title": "Meme sound 3 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2c270e44c922586edb6d2aa4538ed485.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/fcd952d3919aae04fb61f1fd7754c96c.jpg" + }, + { + "title": "Meme sound 3 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/921b2c1bbc72295b480c3191f864c56d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b17746bbf7adad92b3903361864464e1.jpg" + }, + { + "title": "Meme sound 3 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4a376e86dfd73ae191757a9ee4e3336f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/3f08146406c3ec54a260b36d99b70213.jpg" + }, + { + "title": "Meme sound 3 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c8fc4acb5ed591f485a4c05dbe47d196.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/281cd3eb809510959f769a92cbef14bf.jpg" + }, + { + "title": "Meme sound 3 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1d09fa4e130a83895110bacf9936bc08.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7a3c9d99c62804210d83a46c2ef483d9.jpg" + }, + { + "title": "Meme sound 3 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4f1e59550b0740b5121509f0ca14c53b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/faa047812fea681a7ca99c41eb26af0c.jpg" + }, + { + "title": "Meme sound 3 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/009a7f043aeb65538abb6e0b851161fc.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d65babaa76e14d9936aedf26aad3eb0e.jpg" + }, + { + "title": "Meme sound 3 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c42f9de360823efa5f282cdaa8dcdfb2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6a048ae07699d2b920be0ef461e2cb1f.jpg" + }, + { + "title": "Meme sound 3 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/95fc6616ee24aa28012b08a26f22aa8a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/bd39e5ae04c6f513d98d7ef7ab5e6fce.jpg" + }, + { + "title": "Meme sound 3 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/14082ceb9f18ced4335183efea0ec8a5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e2c63eade56ee2d0e1ba41eb151e3114.jpg" + }, + { + "title": "Meme sound 3 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/79b6d68b0964b18b1ffd7a18d62f07c6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1a45d50ab697bbbd06d4d5dcee2e676b.jpg" + }, + { + "title": "Meme sound 3 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/763faab8987cb8ed00313ec3e91b705d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c27dbdd362cdb5e6f892cb3902be7f21.jpg" + }, + { + "title": "Meme sound 3 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/956727fb2bfebb355f10c8b9076cf36d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/93731efe64afad808776b97c0aacbf5c.jpg" + }, + { + "title": "Meme sound 3 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/66713b1c3d8306d0ff6b3f553b36c56c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/79d5d5fe3ab51fcbda216fd2b16c3caf.jpg" + }, + { + "title": "Meme sound 3 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d78e9acea8e9855870f169b399dd4ad9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1ffb2974cfbebc108780ef6c09d114ba.jpg" + }, + { + "title": "Meme sound 3 17", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/69de8ea564a97aedc05ea3de558e21f1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/060c0d5afba0eb61f48ab6ae3d1cfa94.jpg" + }, + { + "title": "Meme sound 3 18", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5c6d26321b4885f77dc57071d6e26f00.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b23b98c3514f214578f6ec5cd810047e.jpg" + }, + { + "title": "Meme sound 3 19", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/adb8153b33811cc86661adfba3b02a36.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/370af28996b90fb6998f0173e8e9d34a.jpg" + }, + { + "title": "Meme sound 3 20", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9e63caaf95df5b1f01d6b5648c3824af.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7ebeaf99e3cc7df5442227efc7e1453c.jpg" + } + ] + }, + { + "categoryId": "636b8e5415831ec42fc7d808", + "categoryName": "Meme sound 4", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/9050e970de5939d5358be1e58cc139d6.png", + "list": [ + { + "title": "Meme sound 4 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7a649f4231c33e3afbc1c22474d06048.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5a47376faeef054e9aa4ea61ce14b427.jpg" + }, + { + "title": "Meme sound 4 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bee98ad260c5a66823d7a09bd5a423e2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/bfdda888e4d95a7223c861ffde959898.jpg" + }, + { + "title": "Meme sound 4 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ee49eb67378e93ec563d1f715dd5ac04.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/72146479be8c97cd6f92589d378f1ff8.jpg" + }, + { + "title": "Meme sound 4 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6b267b5aa6e0e7e2683509618fc70c8e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/55a85177ed6c1f6797aa53bb56261c46.jpg" + }, + { + "title": "Meme sound 4 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/28e3bb6e134f0c4ed50c79b46dc7d3e8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/50d1c9bb32c01cf6c4eb4d1718a89555.jpg" + }, + { + "title": "Meme sound 4 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/40922d865af722072a2930634ee3deb4.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/022b3ad8abb7d4f7c9ce7e581f3eae35.jpg" + }, + { + "title": "Meme sound 4 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5a67630338114fa5e6549add918255d0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1d7113c73fde73c318f3056d10194fac.jpg" + }, + { + "title": "Meme sound 4 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c7a574daa8527fbdefa8711ee432a760.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6ff4d677150bbade9299359a612bd0a8.jpg" + }, + { + "title": "Meme sound 4 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/062e1014a3ce5f793bdfa6926d366782.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/02da4270d96b090050c6f5d12e7a3b92.jpg" + }, + { + "title": "Meme sound 4 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/97921af860a1b8a4608c93eaf698d7b5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/bcfeb56c90258f205bb7c138e39e6686.jpg" + }, + { + "title": "Meme sound 4 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/87bc2c2f0549adccfcb7efd60f08d5c3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ed9baa1d9e965163768e63dca828b7d8.jpg" + }, + { + "title": "Meme sound 4 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1fde554f6df05257c47c60c52b152a1d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/70db7c9770c5a6d7f2d4e0997c754baa.jpg" + }, + { + "title": "Meme sound 4 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/eed5df84833eb3fc0f88040e6d935f68.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/3225f4c4434e4df454211d831a38dbe8.jpg" + }, + { + "title": "Meme sound 4 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/33ab611bf307198983cb5bad90271f69.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/de2b05ba8d73bd08e8521591ca535610.jpg" + }, + { + "title": "Meme sound 4 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/39ebde0e167962507a6cc0a1b2b0a43e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f3c1b6225474f24e03b3cbffe09bad9.jpg" + }, + { + "title": "Meme sound 4 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fce825de32f3e45a25c2723bf77886a9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/25c365d77f0840c49fb062b65bb828c0.jpg" + }, + { + "title": "Meme sound 4 17", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c7b605aace3b5857014eb16397b73d9c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/a52864c67d2614a08b0a97a618e1959e.jpg" + }, + { + "title": "Meme sound 4 18", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c874245574d11fd62aa751f40094d8c8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/36ea58b8c21f4ac9fd9543d3bc5b9e47.jpg" + }, + { + "title": "Meme sound 4 19", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ec2d800276d384e791916cb70259120d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0e705cd5fa0a17f71d77a8e37ef8647a.jpg" + } + ] + }, + { + "categoryId": "636dc88cf512f266a311768d", + "categoryName": "Meme sound 6", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/e6936b3979a284fc32cfade30c6bf4b7.png", + "list": [ + { + "title": "Meme sound 6 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/329971602548f5fdda85ddfcf4d4750e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0868668e6ac9aac537aa5d748ec59120.jpg" + }, + { + "title": "Meme sound 6 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0d44d826d2e1aaa96b6bc8b7efbcfec3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e59535a07a4f3c49864dc7292952a2d0.jpg" + }, + { + "title": "Meme sound 6 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/675d7aa8adfbbd77a3907014a92a0350.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/486fac53d977b93150890e6a412b8e58.jpg" + }, + { + "title": "Meme sound 6 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bcf2fd56c6bc1e99d7816bbb653afda1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/695cf4294618c4f44d5a4ed24b962884.jpg" + }, + { + "title": "Meme sound 6 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f2313c970059bd82560b912e3e796cf3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e80f216e9be298a7ac73169403b71ee1.jpg" + }, + { + "title": "Meme sound 6 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f33fab082b968a9f1b7655fac27cccd8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7aa63ab3392d0e172a6dbc8653e39fad.jpg" + }, + { + "title": "Meme sound 6 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/19b13cbe8aa919b7a659c67112a32677.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/09e3e8716641ba9685e6a2f668ab7392.jpg" + }, + { + "title": "Meme sound 6 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/320da723c98724cbd2e16278655040f6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6c2c1bc64c3c3e7c42a8a6531bef4e8b.jpg" + }, + { + "title": "Meme sound 6 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bd99b8121af03eb7ff7c656c1b17bf82.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/08660c22eb77ab2eed9720bf0f62dbab.jpg" + }, + { + "title": "Meme sound 6 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d0081e4584ec2544ce12b321b2c76e5a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0766f75be34db4fe4c365dbcd6484d2d.jpg" + }, + { + "title": "Meme sound 6 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/11bf03ddedc8132b325bacf036587433.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f494ceb2062cd947a3ee9fee5f7a98c8.jpg" + }, + { + "title": "Meme sound 6 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b3403a619232ac76a6d7fae3792c6c64.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/caf286fc28088eff04869ffc55ff670e.jpg" + }, + { + "title": "Meme sound 6 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0509a6574615013c1b1b5e159762ff7a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/627b28437b4b2580161128213a8ca0c2.jpg" + }, + { + "title": "Meme sound 6 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/21db05bf5ecae4ddefd79ca45f571043.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/05b4c395a970af05cfcb12ca7b9e7a39.jpg" + }, + { + "title": "Meme sound 6 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5048c14e0b0fb6fa3d7f8cb3f20fe3a3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/304a9f457796f1d6efc947b98e239e06.jpg" + }, + { + "title": "Meme sound 6 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/14a7721964d399fb1ff14046aaa8a05f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/24b920a2609777defbccd5a672dbcb42.jpg" + }, + { + "title": "Meme sound 6 17", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c669a98436b196ee02aa9feec12157a4.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/dc58e5c0f632283ea4c47f2d7d48dcd0.jpg" + }, + { + "title": "Meme sound 6 18", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c3a78fe4c0cbcd409ad96f544b78eabc.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/465ccef137a5cd239a6203853cc7b84c.jpg" + }, + { + "title": "Meme sound 6 19", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b0abaf45811bcaf63a2cc72f9eb3bf6f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9161ad4d1a4f2863ca5b9224d4ea5eac.jpg" + }, + { + "title": "Meme sound 6 20", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f11e6556bf48d1d24b8ff040020e6f43.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b9a7ab2203e7a458eb00ae06a5be7090.jpg" + }, + { + "title": "Meme sound 6 21", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/dd972b4b9493dcd5f7670c2ebb8bcdf7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/58d469e7ea485dd84ea9daa1148002ea.jpg" + }, + { + "title": "Meme sound 6 22", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b0e4fa13785f91d52a0620196081a13f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/228c8e61babff3a1cbd9fb9b0223fb13.jpg" + }, + { + "title": "Meme sound 6 23", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/cfda72d5b5f3c130831d75d7e000782e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2a2217e353c80547fa5155b31758860d.jpg" + }, + { + "title": "Meme sound 6 24", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b31fc1bfcda231ba0cabbe7aa393e05f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/02dc8c61d8bcdd4aa5d3c6345e1419c7.jpg" + }, + { + "title": "Meme sound 6 25", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b470760f4647f924418cbc65790277ae.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/15f0f8521da1aea52878d45b712e6a39.jpg" + }, + { + "title": "Meme sound 6 26", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5fb1770c6a9d95453dd4055c08c7aee0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0a7d2e597715db7a9577ac21686c576b.jpg" + }, + { + "title": "Meme sound 6 27", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a401d8a439641e01380944f5e9479631.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f313c74f55856f223f46df7081e3599e.jpg" + }, + { + "title": "Meme sound 6 28", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7b3691ddd8b7003f94dad485575f29c8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/48975447ad46b8b2df53a8fb47476009.jpg" + }, + { + "title": "Meme sound 6 29", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/41131b267c4cf1e66935d8a89f829380.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/654621faf8e63ef7e10b7064f3d721fb.jpg" + }, + { + "title": "Meme sound 6 30", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/06130956631b9114acc5689507ad13dd.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8065992bf5d7b1c65ecc3a6439f85c00.jpg" + }, + { + "title": "Meme sound 6 31", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8d4b16a2bb5c7923b990aad974d366de.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/195afbf628564ea641adb7942bfe3bf6.jpg" + }, + { + "title": "Meme sound 6 32", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/dbda8c77a6ca41482982f5e9e0eadfc8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1c0227a8c0449471e9bcba1f69316199.jpg" + }, + { + "title": "Meme sound 6 33", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7176264d231269074b8b9534f1feb9bb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2912730820f802440298c5e5a8162eee.jpg" + }, + { + "title": "Meme sound 6 34", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/672a2686241722ee369fbbaf168af90b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/a74204ad259b2709176bd5dbb9daccc5.jpg" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd47", + "categoryName": "Anime meme", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/e3b711902ebeab5aa59ba28c0d8239e5.png", + "list": [ + { + "title": "Anime meme 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a7107c3791c029153b6447df5bbdbf93.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c072fdee79639ad62037e5ce65293953.png" + }, + { + "title": "Anime meme 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c44b237dc9bf64e745ebb11f279cfdf8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8dcb4de77e8d9647cf238f7b794b8bf1.png" + }, + { + "title": "Anime meme 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2056dbf4ed3fb5e869ff64325a242570.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5e189c0b758d1a3d50c1b181976098ba.png" + }, + { + "title": "Anime meme 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b22b46a0e6c64e42daace075aa58159a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/a6bbe5e5dfa3aa803463fe640e1149eb.png" + }, + { + "title": "Anime meme 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5f0e00363737b68c8e6469355fe0887d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b34bea898b6fa4937a8f76537828d79f.png" + }, + { + "title": "Anime meme 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ca3fc9fed78a2f4b9c4f1ff4a1b65b1e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/3c1dceb38be61d063008b964f12d158d.png" + }, + { + "title": "Anime meme 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/181ffe52f8e7525b19196dc0eafbc6c0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/144bf1628d8649f985ff73aa7722b5aa.png" + }, + { + "title": "Anime meme 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/84defddcf3327f93c63f142e7ab37908.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6caa05b728c8a180cbcf5a1086761d24.png" + }, + { + "title": "Anime meme 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/065c97cdfa10eca952c862c561477e74.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/dba1d239bc0dda7d1d52d6537ba2b7b7.png" + }, + { + "title": "Anime meme 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b2f1a1f221a0ffa1986ef5ea109f3bd1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d0cefe5b4b205290c1958e5550f88075.png" + }, + { + "title": "Anime meme 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/388a0f22fcab6261338b897a67cf18db.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f5cf1d7bce8c0ab1243a94e6004054c9.png" + }, + { + "title": "Anime meme 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/342ac706dd55e3d12fd56cda4f9a7d1a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/95c662aac956e395f1bdcdc0e0bbdf26.png" + }, + { + "title": "Anime meme 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0aeafdd0a4f706c5fb3f36f659ad1601.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d501f4d7bde34fbcaedb06520d876963.png" + }, + { + "title": "Anime meme 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6f90dd5e43fb8d486830a97914d485db.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/65fe1c01b27186bd437633529baf5ee1.png" + }, + { + "title": "Anime meme 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a0a4d785b7b1f3f30dc7bad4625e9b19.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e8dbec69a3906d4afcdd2e094a641e38.png" + }, + { + "title": "Anime meme 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5f057a0ef2f0d38436b17e6c0886e668.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/85c3f3ea2c28848336409c979be0fa64.png" + }, + { + "title": "Anime meme 17", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e06141603a431b19d9ae9af19badac64.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/56097d4a5ac7cd104d8c0d396db60c9c.png" + }, + { + "title": "Anime meme 18", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/114001c35080918434c4b982555d12f5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/91cc168e4b2769ed530aa937be13378b.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd49", + "categoryName": "Laughing meme", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/423099070cc5c92aaec95c5d7c090307.png", + "list": [ + { + "title": "Laughing meme 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b4cb447b860354cec570325a11f71a8d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/01536a53628daacf6062406e99e31fbc.png" + }, + { + "title": "Laughing meme 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0c2431340568d80e58aba6a07c41425f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/7936b296c7f9c7e76ca6d9e2e8c5af28.png" + }, + { + "title": "Laughing meme 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/92c8b2e7b99aaf7ee7c0e3f0948cd83b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/3f34fb2705784bbd15253d6cc5ed8df0.png" + }, + { + "title": "Laughing meme 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4c02f87b34ea2d082c1993a678d64d55.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/35baba3942bf6801f9ee7a7b753910d4.png" + }, + { + "title": "Laughing meme 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6691d33ad9c4f61805c12f2fff1ca912.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9edc9040260b40e4a56e702fadb0b8b5.png" + }, + { + "title": "Laughing meme 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1c7c99b1a63fb03a4ca4b68329ee814a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/bcb252e4c0518a4f65ccc83daea498d1.png" + }, + { + "title": "Laughing meme 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/23c8a8ba802b6e66f4141d2fcaf53d0d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/05cbb8d81900840e62789a617795942f.png" + }, + { + "title": "Laughing meme 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5474a770d53fba645d462e4377ea87c8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/dad70f170d826bb985905dafa70a9291.png" + }, + { + "title": "Laughing meme 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f94aba6f1c0c8d93c2f6b1d928b27e12.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d94b52a7f791c078e2fad9abd0271e0b.png" + }, + { + "title": "Laughing meme 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0807dda5995ecb102c45622a45501cce.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/70c9bd2a1cec4ec53f10679f992edc86.png" + }, + { + "title": "Laughing meme 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0a7eaf35fa6aaaf62aa3f128fab8f04f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c227353b580998e4681d094d3dec78c6.png" + }, + { + "title": "Laughing meme 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9d2ea6b802b104c5fe2868c257cbfe31.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b551c5055a4efe19ecf521afeb953c6f.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd50", + "categoryName": "Video effect", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/f30322429a15f99fafac651af6601a1e.png", + "list": [ + { + "title": "Video effect 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/be127a651be21c9d9543551427930e65.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/fb11cf86c9b4317187b2f8d20e813a52.png" + }, + { + "title": "Video effect 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3fbba72e271c7e245f95be440ae89502.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/affec1cd3b1acf3534f2b1dd54b6e11f.png" + }, + { + "title": "Video effect 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b1ce43dedf92ecf79663f064198d05c8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e4efb19584a4c6df9292df3d171d96ed.png" + }, + { + "title": "Video effect 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/65003244adcad85bc4f866435208d856.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/55dfa8097e3554f3ff921d4bae1c6360.png" + }, + { + "title": "Video effect 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/242ebe659af90fbb24b35a3de82c86d6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ae2cfb2a5f2c291e5adc3ec1a6b86fd3.png" + }, + { + "title": "Video effect 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/cb8152a74bb4571725157bf40c8be677.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/776aace8ed0f04dd9957a6f3edd83925.png" + }, + { + "title": "Video effect 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/cbdc15cf69a945d0598dd8ac78325c5f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5f490886e570a860b89dfd7e26e4b7bc.png" + }, + { + "title": "Video effect 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/380b993ecadff751c64a0fb622de439a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d3f15a89bfcfa46acdad754ca8b2d736.png" + }, + { + "title": "Video effect 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f76c37498bb9fca60563d8b2a67653c6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/be0edab4d77cb56d90db71b7a7d7fec8.png" + }, + { + "title": "Video effect 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bc09237302c352a08446a7cb194d076d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f033ac2536cf4a0a341e2c00029afec6.png" + }, + { + "title": "Video effect 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a5f431d51547344c66ccdae1eebad93f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e5bb75fff945bac8b3c4070b831fb8bd.png" + }, + { + "title": "Video effect 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/789cdce4f59c71ef84c32cac4896f00e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/82295cecfe039e891067bba2b9012fe3.png" + }, + { + "title": "Video effect 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fd865eaaaa48796b89e054b112be0774.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/66c604a7978a5390701e1aaadf5b26a7.png" + }, + { + "title": "Video effect 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ae1f54af64ee5cc1e145b3096604b7b4.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/566156ee20f5dd4825eee2b29ebef57c.png" + }, + { + "title": "Video effect 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/382871ca218f1384a012850e610bd0f5.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d982297cd7148a9a8201a7e5db52e2dd.png" + }, + { + "title": "Video effect 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7e22a15803c6c18ba1020fb7a12c2ac9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/176f813f19d83391cc3a94714b3c33e3.png" + }, + { + "title": "Video effect 17", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f3e9cec93ce50e08a61324017e53474b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cb6fb89351ea96dad75fe012977e9a8d.png" + }, + { + "title": "Video effect 18", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e49c5b23079f42061fc13bc0ec2d96c2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/609557bbd566aaee85787039d827a8e6.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd40", + "categoryName": "Church Bell", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/2b0b47180f68099bd4e3f20f2738a553.png", + "list": [ + { + "title": "Church Bell 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/264749515174f71fc385edc3c58f6dc6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/bd3dbeb14c909851c9d55a0522ffeb02.png" + }, + { + "title": "Church Bell 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/43663417104a737de0ad75058b3d7dd7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/00d1bf22be137338977a68288c1e39e3.png" + }, + { + "title": "Church Bell 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9905c68f7a6fac7d90d5075d12462f59.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f16b1bcf9bb12fc1773d7574d6e19198.png" + }, + { + "title": "Church Bell 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8be3c1a2dbd6ba2b8baa1ea3cdf48590.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6b2aa96e01e20f0fbfd9d3ad4b1d48da.png" + }, + { + "title": "Church Bell 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4b2cac435ff33013e4a8c6bb5be6408c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d7da9541816f730c7cbd5173e81072a4.png" + }, + { + "title": "Church Bell 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/debe07c42709ac424a015405ab9876c0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/66aaded545b6bee1925c9736c7533ed4.png" + }, + { + "title": "Church Bell 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/849a9ab93006b3a6fbd462a38deca497.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/bf37e5bb7c3c17e6814082204cbe49a2.png" + }, + { + "title": "Church Bell 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/4e4459bd7dc3e50e4fcbd256a49f9e7d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/85d18158e371a44acffd83307945accc.png" + }, + { + "title": "Church Bell 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/57480a9f7da1e52f9aefe12dab66578e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/25a96e9ee7e5e2c1969caf290a7091df.png" + }, + { + "title": "Church Bell 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6176ef1954a68a705732987d08895bbc.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/09dad424c8103bb12dd2027ff035efb0.png" + }, + { + "title": "Church Bell 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/362939d0d5d7139a5c64b1cf6c52016a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cb702949346a19dbc4af662a21cd9dc5.png" + }, + { + "title": "Church Bell 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/21dff1513a841b9761bc972e4bdd45af.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/631574c422eae411794dfc0963fdb7d5.png" + }, + { + "title": "Church Bell 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/0e83c42bd8d0e7c22dc35db0f6a4a13e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d8bf12721c58819f5429ec3a68f3cc21.png" + }, + { + "title": "Church Bell 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6cfb5ecbb898054a1964aedb6894d926.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1ff22218aebe79a5294a8e86215062f7.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd41", + "categoryName": "Countdown", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/642d3042f0e7ae829988ee296750471a.png", + "list": [ + { + "title": "Countdown 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8e96c19766b1caf938430a8e52669166.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9f958c3d3b9860146e686764ac8753bf.png" + }, + { + "title": "Countdown 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a34b3921bba77d4f73e04be79d943f5c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ea9c7eb239739a3062364a1d165f7e9a.png" + }, + { + "title": "Countdown 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/648afb631b170c87b26e01a994455755.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f350711bd7c0f4baafaf5e7fdaab9d15.png" + }, + { + "title": "Countdown 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bfba411ca5c2bb25be7a2f45dc6560c9.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0186fc0e9badd77dc78db70ee05c3d25.png" + }, + { + "title": "Countdown 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f32b6e6ee555ad5c6d29de13aa8062e1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/66609a323dbb9b10968349ff4991d14e.png" + }, + { + "title": "Countdown 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bfdb88d6fddd25d7bbcb3ea2a8a8f93d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0bf572557b5c37bb2663e1e1ea3d7460.png" + }, + { + "title": "Countdown 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/74307f33d3a9132eab490aa5fe245b58.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/18169f46046cb22f46df892f1b477833.png" + }, + { + "title": "Countdown 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d1c880a46262ca737f937d1bd0c44b0d.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4cacbebf5bbd02920e3fa2d65362602b.png" + }, + { + "title": "Countdown 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1b1661b9a9b7dc08a06d3005edd9a8f6.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e8ba21dcacea89733e6b6beb5118d4d9.png" + }, + { + "title": "Countdown 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ed6c479005e741530a98285e4dd52f25.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1cd88a6ee029f88c9474ae47bd5ab121.png" + }, + { + "title": "Countdown 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b155ee94a60c1c02e1423055b2f8868c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/af040a95410239510ef6625203a3d2fc.png" + }, + { + "title": "Countdown 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/be45cfdcfeb775190645512f8b70cd91.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ec33ecf4b90fffedabeeb14ab677f3cf.png" + }, + { + "title": "Countdown 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/38a8289a4ff2e85f3ce6ddce251290ae.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/1fdee0d8661cf9db1e6a16158e1e1852.png" + }, + { + "title": "Countdown 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e37a733ed877f58b5eecf80a9215aadb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d6e289cbfa828447f45c10a3740c3b41.png" + }, + { + "title": "Countdown 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a30c962da761aeca851a464cc9303ef1.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/258a9bc9932fa59771faec37ace6a33f.png" + }, + { + "title": "Countdown 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/a9ea0774cd8c96b392a17258a2bbf705.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/a7cab5fb8188a2b8fd64d9bf59657d31.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd42", + "categoryName": "Cuckoo Clock", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/775a7b80f8844b2a2e5a90f2602fd38d.png", + "list": [ + { + "title": "Cuckoo Clock 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2d72953021e40478613543328c3648c3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/a4997b34c82a13cf22489b7aaa0933ce.png" + }, + { + "title": "Cuckoo Clock 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e9cb9ee25a3516b755fb47f887366b11.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d7ceda54d1692aae5e25ef66443c1818.png" + }, + { + "title": "Cuckoo Clock 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d595ccd6c056e78b1eaee3b9019c890f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5c1e5ee795a2ee958e09447ecf6b8c6e.png" + }, + { + "title": "Cuckoo Clock 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/10995e06b7d24db64d3aba867ffaba2e.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c6023c9fe9af4392fa513fe2708784f5.png" + }, + { + "title": "Cuckoo Clock 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/99fd437069f69508827b2dd41ba8dec0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/fa25c9faa262645d4d850a10470a0afa.png" + }, + { + "title": "Cuckoo Clock 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fbb86e27c1416edbc7a1226e4ab2268b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c8ca42c2854fcad0a70bdb9e2237a8b7.png" + }, + { + "title": "Cuckoo Clock 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/147922945f4fa1cdb66c32abd83edf18.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/49f1f56e8d3e8e7897fc687e664c1bf7.png" + }, + { + "title": "Cuckoo Clock 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f741ff8869dd5e7ec39e5ad0b49c4ef7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f9793aa7a75f9f434b4259ef5a4712f0.png" + }, + { + "title": "Cuckoo Clock 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/150335b877eb085d49b4a7b1a9ecadde.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9702bb79ea0e23a0b15a9e1dc9db0600.png" + }, + { + "title": "Cuckoo Clock 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1909035da699032a078fc26c6b67a9c3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e9cfc34fc92a17f31972ee70f21d995b.png" + }, + { + "title": "Cuckoo Clock 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/fd6f7a636fc65371decc3264aefa5879.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ae3c8718eae870a97b7c51ab656a83b9.png" + }, + { + "title": "Cuckoo Clock 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c4c297c6360a20c88c868294948491a3.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5645e427f83984febc9a2fd28339e7ea.png" + }, + { + "title": "Cuckoo Clock 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b7fa02d14bf1eb70f41c70cd735577a7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/197e7e101cae3c78e15b57425beadda8.png" + }, + { + "title": "Cuckoo Clock 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/38c67d23b9fff4afd8e8af826185ce62.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/518ca81123ae1db5f5ffc8720c99f403.png" + }, + { + "title": "Cuckoo Clock 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c13c7b3a9a157213eb19dfea09a5e215.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/aacf5c3db406eb6a41ff620c614adfdb.png" + }, + { + "title": "Cuckoo Clock 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/357ebc6e99afbb7edb2b0b6abf28aec0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9b82da41fedb4b98dd4c779264f283c4.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd43", + "categoryName": "Fireworks", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/f01dfac6dd9c7745ab80f274edaf7d34.png", + "list": [ + { + "title": "Fireworks 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/07bcb57943a460ff2a0b04eb093b0f3c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/b3943f642ac8b72992ffcf2b88bc6b7c.png" + }, + { + "title": "Fireworks 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b4bf8204e68f6b48377e6dcaf409bb72.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8f416e70b65f2138b67d677fb4fa615f.png" + }, + { + "title": "Fireworks 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5c8cebcedd1c6ed92a42e8c9135be2fe.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/eb900055ce55cbbcdade84d7fc130a09.png" + }, + { + "title": "Fireworks 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/24b2a5b37cb8136b59880f627498c848.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8959fe87989b632fc85b8d1670a54814.png" + }, + { + "title": "Fireworks 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/071ae6eacc2497bfdb87e6960255e618.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e63ac1c1ff794746fbc8c4078be1c910.png" + }, + { + "title": "Fireworks 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5a224b247ea78a0834dff359203f6802.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6ff3515f2df9c687c14ee550a88aaacc.png" + }, + { + "title": "Fireworks 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e18a5052b273aad4a24baebacdb286e0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f698e862d47dac00773f66006c925b9f.png" + }, + { + "title": "Fireworks 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/44944e44f9a3c1fe1995174054b688eb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9a80eb9887a449f5ac1816bec6dcd86d.png" + }, + { + "title": "Fireworks 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1e42b4d2061e93f0afda40089fa5fdca.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/3702ce81c81d4a7c3c7add0b32bae7f2.png" + }, + { + "title": "Fireworks 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7c182881bba27610cdad7273559c4aae.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/77c476c59a372832171e0392883e4073.png" + }, + { + "title": "Fireworks 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/1fbb65c58fe5373133445f41d7a22c27.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/dfe6a09c757abe7c61feaddcc70bdd42.png" + }, + { + "title": "Fireworks 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c4d4e05d5b361119350487b0be3247c2.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/4a5504bfc38f9aa7f9e48526fd569df4.png" + }, + { + "title": "Fireworks 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9fec8e8f803ccc8ae2d142d759ac6968.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/bb64c6f4b11f53feafe12503da099c04.png" + } + ] + }, + { + "categoryId": "636dc40571a30811c821fd39", + "categoryName": "Champagne", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/23948c0777b58ea43ae231c3adb830c6.png", + "list": [ + { + "title": "Champagne 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/e1cbcd284222ce6099da03810cc1c6b0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/0cab054498349416ba07520ddb5d6ca8.png" + }, + { + "title": "Champagne 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/01082a26035998ab2a833d775e48af71.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/f27a32a5a84b4d7bbdee2735bb54ab8b.png" + }, + { + "title": "Champagne 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/3866cb7d6614d2139e78a19b234d7b14.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8597fa7bce4191a8c3282b67632cae44.png" + }, + { + "title": "Champagne 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c26a6128efc5c4187fbd81e1acf0ab08.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/ae7b094815cd0b714a97c56e0e5c4dad.png" + }, + { + "title": "Champagne 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5657320f06928bc20961043becc95e18.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/3c59aebc7c52aa99d8814411c8c7cc68.png" + }, + { + "title": "Champagne 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/ff80172109053f601b406d552178c3ff.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e689358c959b4cd68310070d0bfc5ec5.png" + }, + { + "title": "Champagne 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/cc8338bc8f1a6b5d20f92c59f7a26bb0.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/96aaa4ce44bf3ad7b73a606f1f9e19ad.png" + }, + { + "title": "Champagne 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bebfc0f8702a4dd30d78a7907af7b93a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/579a09d3b30518b86f7dd67f0cbc05c0.png" + }, + { + "title": "Champagne 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/02cfaa37687cd6d759aed04a03028742.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9d8514f45a8e8ca845fbb16704cfb436.png" + }, + { + "title": "Champagne 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/100eb5628b04d4689843daa8d966ff60.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/400b4f4877f7216d549ec90ee137665b.png" + }, + { + "title": "Champagne 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bbd5249f29ac098a21617918683c03cf.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/65a46b2626b4f28244ac3c654c89abb7.png" + }, + { + "title": "Champagne 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5518b7be45e8566d65ce10848b919284.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/931633fcd7fc1d817a4dd0f9d1873f1b.png" + }, + { + "title": "Champagne 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/7ef9b5fa25e5254a8fd8920f35255457.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/87b431000db60cb3c6aeeed1bb5487d8.png" + }, + { + "title": "Champagne 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/baad4340a6c42843d12556996100f05c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/fe2daef6052258c1b95d45aa649235d9.png" + }, + { + "title": "Champagne 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/89140a8c836648822b52ccd22de8df75.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/10b245d728e59cdf88b73dbb35997bc7.png" + }, + { + "title": "Champagne 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c0a788938294d31469f1e929960f5abd.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/814007103cf43c6a1034f2ff72415659.png" + } + ] + }, + { + "categoryId": "634e0d283a35295ff1e9d782", + "categoryName": "Halloween", + "categoryUrl": "https://resource-sg-public.lux-ad.com/prank/346541dfd63bb11359fecb4913bbbf13.png", + "list": [ + { + "title": "Halloween 1", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/addaa62eb812fc77b8c9c62f4a10c87c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5eab6b3a9c261f0248c63b3b96dcd7f4.png" + }, + { + "title": "Halloween 2", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8dd4ab99f8fa228c05ddd8c36a1fb8ed.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/10de3be681254f26de6351c2ed683ea9.png" + }, + { + "title": "Halloween 3", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/54f1373123ee2d3c6eafcfd0ee1534fb.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/6a500627588ec7c8133cd2e8737a29ef.png" + }, + { + "title": "Halloween 4", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d9639d6b964952898e925057737f179b.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/80c18bc4d370f912d4ba7e99ac389df7.png" + }, + { + "title": "Halloween 5", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/d1fb6ceaa60e105425a016d809f72fcc.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/e3a9a9aed7c1391218e743a61bee052a.png" + }, + { + "title": "Halloween 6", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/bcbc8fbaf653b3f8388ff25211015a18.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/5ac0c7f0469c99417fd12ae7e3fa07af.png" + }, + { + "title": "Halloween 7", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/2adbaf76aad03b5b59e338e7c547e65c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/df60f70ad97c86c77c828605dc106555.png" + }, + { + "title": "Halloween 8", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/8885f6857e6e3aebc8cc0b9aedbe2e88.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/82153ac03f55b18e9d3a57650b86702d.png" + }, + { + "title": "Halloween 9", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/5548a044a4b88dde27d7edbe0fd45a28.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/d430f6bdf723e5c7dfe50f4567aefb88.png" + }, + { + "title": "Halloween 10", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/99a1127659c975822d7f0eff052c54b8.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/2b96582702253e5d88230621d9806ffd.png" + }, + { + "title": "Halloween 11", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/b1f2bd4a4bab0c825367680b8f14580c.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/22eea4ddc2396a8459f8a82cc2fa41a7.png" + }, + { + "title": "Halloween 12", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/00b800fbf34a148d2906aa01306e632f.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/02abab22836fea046ee1b121843aa1c4.png" + }, + { + "title": "Halloween 13", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/407c2a04c6ba9eabffb2d48812676075.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/000d1d7c0026ddb269192cc8a3ed8a36.png" + }, + { + "title": "Halloween 14", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/c0545680e4d81d2040f8ab5be1036221.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/c4d236b50c018013b856d0d6f813f431.png" + }, + { + "title": "Halloween 15", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/40901854f4cf27e3f95e1c5e681d4e94.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/cfc812c4fa5879dc044dbf57848ec829.png" + }, + { + "title": "Halloween 16", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/6acca311c1d0e69f0243a60ee966c763.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/9733f998ea9d592c09cf23dbc9da4218.png" + }, + { + "title": "Halloween 17", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/09f13252d1db5a6b5294527c275fc9a7.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/32d4680f4d064475e6ca4424829d9fd6.png" + }, + { + "title": "Halloween 18", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/9b80fc87cab236dccfdeaabe4770eb50.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/92ab558d70e01ff40d3b12ff27acc6b1.png" + }, + { + "title": "Halloween 19", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/f3dfe8797d1a13a88f9544d3fdc54425.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/300e9423f50ff7b81b7de33d847733d6.png" + }, + { + "title": "Halloween 20", + "mp3Url": "https://resource-sg-public.lux-ad.com/prank/44b966562ddc9d0a5ed2604bf8eac39a.mp3", + "preUrl": "https://resource-sg-public.lux-ad.com/prank/8e3f389ba05c4785961e9abd8a6809bf.png" + } + ] + } +] diff --git a/app/src/main/assets/privacy.html b/app/src/main/assets/privacy.html new file mode 100644 index 0000000..b9477d6 --- /dev/null +++ b/app/src/main/assets/privacy.html @@ -0,0 +1,86 @@ + + + + + + Privacy Policy + + + +

Privacy Policy

+

Date: August 9, 2024

+ +

We provide this Privacy Policy to help you understand how we collect, use, and disclose information, including what you may provide to us or that we obtain from our products and services. We treat your privacy very seriously. Your privacy is important to us.

+ +

Information Collection and Use

+

For a better experience, while using our Service, we may require you to provide us with certain personally identifiable information, such as users' name, address, location, pictures, etc. The information that we request will be retained on your device and is not collected or retained by us in any way and used as described in this privacy policy.

+

The app does use third-party services that may collect information used to identify you.

+

Please refer to the privacy policy of the third-party service provider used by the application:

+ + +

Log Data

+

We want to inform you that whenever you use our Service, in case of an error in the app, we collect data and information (through third-party products) on your phone called Log Data. This Log Data may include information such as your device Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilizing our Service, the time and date of your use of the Service, and other statistics.

+ +

Cookies

+

Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory.

+

This Service does not use these “cookies” explicitly. However, the app may use third-party code and libraries that use “cookies” to collect information and improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to refuse our cookies, you may not be able to use some portions of this Service.

+ +

Service Providers

+

We may employ third-party companies and individuals due to the following reasons:

+ +

We want to inform users of this Service that these third parties have access to their Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose.

+ +

Security

+

We value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and we cannot guarantee its absolute security.

+ +

Links to Other Sites

+

This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by us. Therefore, we strongly advise you to review the Privacy Policy of these websites. We have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.

+ +

Children’s Privacy

+

These Services do not address anyone under the age of 13. We do not knowingly collect personally identifiable information from children under 13 years of age. In the case we discover that a child under 13 has provided us with personal information, we will immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact us so that we will be able to take the necessary actions.

+ +

Changes to This Privacy Policy

+

We may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page.

+ +

Privacy Questions

+

We may update the Privacy Policy from time to time. When we change the policy in a material way, a notice will be posted on our website along with the updated Privacy Policy.

+

If you have any questions or concerns about our Privacy Policy or data processing, please contact us: saleemjeeta2@gmail.com.

+ + diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/ScaryPrank.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/ScaryPrank.java new file mode 100644 index 0000000..1d06426 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/ScaryPrank.java @@ -0,0 +1,74 @@ +package com.lc.myapplication.security.mysoundstwo; + +import android.app.Application; +import android.content.Context; +import android.util.ArraySet; +import android.util.Log; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.lc.myapplication.security.mysoundstwo.list.SoundsData; +import com.lc.myapplication.security.mysoundstwo.list.SoundsList; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeDatabase; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeEntity; +import com.lc.myapplication.security.mysoundstwo.tool.MyTool; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +public class ScaryPrank extends Application { + private static List soundslist; + private int i = 0; + @Override + public void onCreate() { + super.onCreate(); + MyValue.scaryPrank = this; + try { + InputStream openlist = getAssets().open("prank.json"); + String str = MyTool.getCovertStr(openlist); + if (!str.isEmpty()){ + Gson gson = new Gson(); + soundslist = gson.fromJson(str,new TypeToken>(){ + }.getType()); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + setentity(); + } + + private void setentity() { + while (i data = list.getList(); + MyTool.RunIO(new Runnable() { + @Override + public void run() { + for (SoundsData datalist : data) { + ScaryPrankLikeEntity entity = new ScaryPrankLikeEntity(); + entity.setName(datalist.getTitle()); + entity.setImage(datalist.getPreUrl()); + entity.setMp3url(datalist.getMp3Url()); + entity.setSoundslike(false); + entity.setResource(0); + ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().insertLikeData(entity); + //SecurityLockDataBase.getSecurityLockDataBase().getsecurityLockDAO().InsertSecurityEntity(entityApp); + } + } + }); + i++; + } + } + + public static List getList(){ + if (soundslist != null){ + return soundslist; + } + return soundslist; + } +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/CategoryActivity.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/CategoryActivity.java new file mode 100644 index 0000000..5752301 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/CategoryActivity.java @@ -0,0 +1,83 @@ +package com.lc.myapplication.security.mysoundstwo.activity; + +import android.content.Intent; +import android.graphics.Typeface; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.adapter.CategoryListAdapter; +import com.lc.myapplication.security.mysoundstwo.list.SoundsList; +import com.lc.myapplication.security.mysoundstwo.value.MySpace; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +public class CategoryActivity extends AppCompatActivity { + + private RelativeLayout mian_category; + private SoundsList list; + private TextView category_name; + private ImageView category_back; + private RecyclerView category_recycle; + private String bgcolor; + private int bg; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_category); + gotoFindview(); + onMyclick(); + setbackground(); + gotogetData(); + setRecycle(); + } + + private void gotoFindview() { + mian_category = findViewById(R.id.main_category); + category_name = findViewById(R.id.category_name); + category_name.setTypeface(Typeface.createFromAsset(getAssets(),"myfront1.ttf")); + category_recycle = findViewById(R.id.category_recycle); + category_back = findViewById(R.id.category_back); + } + private void setbackground() { + Window window = getWindow(); + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + mian_category.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + } + private void onMyclick() { + category_back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + + private void gotogetData() { + Intent intent = getIntent(); + list = (SoundsList) intent.getSerializableExtra(MyValue.CATEGORY); + assert list != null; + category_name.setText(list.getCategoryName()); + bgcolor = intent.getStringExtra(MyValue.COLOR); + bg = Integer.parseInt(bgcolor); + } + private void setRecycle() { + MySpace mySpace = new MySpace(1,20,1); + GridLayoutManager gridLayoutManager = new GridLayoutManager(this,3); + category_recycle.setLayoutManager(gridLayoutManager); + category_recycle.addItemDecoration(mySpace); + CategoryListAdapter categoryListAdapter = new CategoryListAdapter(CategoryActivity.this,list.getList(),bg); + category_recycle.setAdapter(categoryListAdapter); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/IntoActivity.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/IntoActivity.java new file mode 100644 index 0000000..ed9e3cd --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/IntoActivity.java @@ -0,0 +1,41 @@ +package com.lc.myapplication.security.mysoundstwo.activity; + +import android.content.Intent; +import android.os.Bundle; +import android.os.CountDownTimer; + +import androidx.appcompat.app.AppCompatActivity; + +import com.lc.myapplication.security.mysoundstwo.R; + +public class IntoActivity extends AppCompatActivity { + private CountDownTimer timer; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_into); + timer = new CountDownTimer(1000,500) { + @Override + public void onTick(long millisUntilFinished) { + + } + + @Override + public void onFinish() { + startActivity(new Intent(IntoActivity.this, MainActivity.class)); + finish(); + } + }; + gotostart(); + } + + private void gotostart() { + timer.start(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + timer.cancel();; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/MainActivity.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/MainActivity.java new file mode 100644 index 0000000..e730376 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/MainActivity.java @@ -0,0 +1,75 @@ +package com.lc.myapplication.security.mysoundstwo.activity; + +import android.os.Bundle; +import android.os.Parcelable; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TableLayout; + +import androidx.activity.EdgeToEdge; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; +import androidx.viewpager2.widget.ViewPager2; + +import com.google.android.material.tabs.TabLayout; +import com.google.android.material.tabs.TabLayoutMediator; +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.adapter.FragmentAdapter; + +public class MainActivity extends AppCompatActivity { + + private ViewPager2 main_viewpapre; + private RelativeLayout main_relayout; + private TabLayout main_tablelayout; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + gotofindview(); + setbackground(); + setViewPaper(); + } + + private void setbackground() { + Window window = getWindow(); + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + main_relayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + } + + private void setViewPaper() { + main_viewpapre.setAdapter(new FragmentAdapter(this)); + TabLayoutMediator tabLayoutMediator = new TabLayoutMediator(main_tablelayout, main_viewpapre, new TabLayoutMediator.TabConfigurationStrategy() { + @Override + public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) { + switch (position) { + case 0: + tab.setIcon(R.drawable.sounds_src); + break; + case 1: + tab.setIcon(R.drawable.add_src); + break; + case 2: + tab.setIcon(R.drawable.win_src); + break; + case 3: + tab.setIcon(R.drawable.like_src); + break; + } + } + }); + tabLayoutMediator.attach(); + } + + private void gotofindview() { + main_relayout = findViewById(R.id.main_relayout); + main_viewpapre = findViewById(R.id.main_viewpaper); + main_tablelayout = findViewById(R.id.main_tablelayout); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/PracyActivity.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/PracyActivity.java new file mode 100644 index 0000000..a436295 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/PracyActivity.java @@ -0,0 +1,26 @@ +package com.lc.myapplication.security.mysoundstwo.activity; + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.webkit.WebView; + +import androidx.activity.EdgeToEdge; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +import com.lc.myapplication.security.mysoundstwo.R; + +public class PracyActivity extends AppCompatActivity { + + private WebView webView; + @SuppressLint("MissingInflatedId") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_pracy); + webView = findViewById(R.id.pracy_webview); + webView.loadUrl("file:///android_asset/privacy.html"); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/PreviewActivity.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/PreviewActivity.java new file mode 100644 index 0000000..e1e271c --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/PreviewActivity.java @@ -0,0 +1,269 @@ +package com.lc.myapplication.security.mysoundstwo.activity; + +import android.content.Intent; +import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.media.AudioManager; +import android.media.MediaPlayer; +import android.os.Bundle; +import android.os.Handler; +import android.util.Log; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.SeekBar; +import android.widget.TextView; + +import androidx.activity.EdgeToEdge; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.Target; +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.list.SoundsData; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeDatabase; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeEntity; +import com.lc.myapplication.security.mysoundstwo.tool.MyTool; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +import java.io.File; +import java.io.IOException; +import java.util.Objects; + +public class PreviewActivity extends AppCompatActivity { + + private ImageView preview_back; + private ImageView preview_image; + private TextView preview_name; + private Button preview_play; + private ImageView preview_like; + private boolean isplay = false; + private String urlmp3; + private ScaryPrankLikeEntity list; + private MediaPlayer mediaPlayer; + private SeekBar preview_seekbar; + private AudioManager audioManager; + private ImageView preview_re_song; + private RelativeLayout preview_main; + private int bg; + private boolean islike = false; + private int c = 0; + private String name; + private String image; + private boolean resongs = false; + private SoundsData listdata; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_preview); + audioManager =(AudioManager)getSystemService(AUDIO_SERVICE); + gotofindview(); + setbackground(); + gotoGetData(); + onMyClick(); + } + + private void gotofindview(){ + preview_main = findViewById(R.id.preview_main); + preview_back = findViewById(R.id.preview_back); + preview_image = findViewById(R.id.preview_image); + preview_name = findViewById(R.id.preview_name); + preview_name.setTypeface(Typeface.createFromAsset(getAssets(),"myfront1.ttf")); + preview_re_song = findViewById(R.id.preview_re_song); + preview_play = findViewById(R.id.preview_play); + preview_like = findViewById(R.id.preview_like); + preview_seekbar = findViewById(R.id.preview_seekbar); + preview_seekbar.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)); + //监听进度条滑动事件 + preview_seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,progress,0); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + + } + }); + } + private void setbackground() { + Window window = getWindow(); + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + preview_main.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + } + + private void onMyClick() { + preview_back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + preview_play.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (isplay){ + isplay = false; + preview_play.setBackgroundResource(R.drawable.sounds_play_bg); + if (mediaPlayer != null){ + mediaPlayer.release(); + mediaPlayer = null; + } + }else { + preview_play.setBackgroundResource(R.drawable.sounds_stop_bg); + mediaPlayer = new MediaPlayer(); + try { + mediaPlayer.setDataSource(urlmp3); + } catch (IOException e) { + throw new RuntimeException(e); + } + mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { + @Override + public void onPrepared(MediaPlayer mp) { + //Log.d("---------","--------finish"); + mediaPlayer.start(); + } + }); + isplay = true; + mediaPlayer.prepareAsync(); + mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { + @Override + public void onCompletion(MediaPlayer mp) { + if (resongs){ + mediaPlayer.start(); + }else { + mediaPlayer.release(); + mediaPlayer = null; + preview_play.setBackgroundResource(R.drawable.sounds_play_bg); + } + } + }); + } + } + }); + preview_like.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (islike){ + islike = false; + preview_like.setBackgroundResource(R.drawable.unlike_bg); + list.setSoundslike(false); + }else { + islike = true; + preview_like.setBackgroundResource(R.drawable.like_bg); + list.setSoundslike(true); + } + MyTool.RunIO(new Runnable() { + @Override + public void run() { + ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().UpdateLikeSounds(list); + } + }); + } + }); + preview_re_song.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(resongs){ + preview_re_song.setBackgroundResource(R.drawable.no_recycle); + resongs = false; + }else { + preview_re_song.setBackgroundResource(R.drawable.recycle_bg); + resongs = true; + } + } + }); + } + private void gotoGetData() { + Intent intent = getIntent(); + name = intent.getStringExtra(MyValue.DATA_NAME); + //Log.d("dhncatname2","---"+name); + MyTool.RunIO(new Runnable() { + @Override + public void run() { + list = ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().QueryLikeName(name); + runOnUiThread(new Runnable() { + @Override + public void run() { + image = list.getImage(); + //Log.d("dhncatname3","---"+list); + //Log.d("dhncatname4","---"+list.getImage()); + //Log.d("---------","--------mp3"+image); + if (Objects.equals(list.getResource(), 0)){ + // Log.d("----1","--------mp3"+urlmp3); + Glide.with(PreviewActivity.this) + .load(image) + .listener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, @Nullable Object model, @NonNull Target target, boolean isFirstResource) { + return false; + } + + @Override + public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) { + return false; + } + }) + .into(preview_image); + }else { + //Log.d("----2","--------mp3"+urlmp3); + preview_image.setBackgroundResource(R.mipmap.creat_image); + } + urlmp3 = list.getMp3url(); + //Log.d("---------","--------mp3"+urlmp3); + preview_name.setText(name); + MyTool.RunIO(new Runnable() { + @Override + public void run() { + list = ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().QueryLikeName(name); + } + }); + if (list.getSoundslike()){ + preview_like.setBackgroundResource(R.drawable.like_bg); + islike = true; + }else { + preview_like.setBackgroundResource(R.drawable.unlike_bg); + islike = false; + } + } + }); + } + }); + String getbg = intent.getStringExtra(MyValue.DATA_BG); + bg = Integer.parseInt(getbg); + preview_main.setBackgroundResource(bg); + } + @Override + protected void onDestroy() { + super.onDestroy(); + if (mediaPlayer != null && mediaPlayer.isPlaying()) { + mediaPlayer.stop(); + mediaPlayer.release(); + mediaPlayer = null; + } + } + + @Override + protected void onResume() { + super.onResume(); + gotoGetData(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/RecordSoundActivity.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/RecordSoundActivity.java new file mode 100644 index 0000000..8b8b241 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/RecordSoundActivity.java @@ -0,0 +1,213 @@ +package com.lc.myapplication.security.mysoundstwo.activity; + +import android.Manifest; +import android.annotation.SuppressLint; +import android.app.AppOpsManager; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.media.MediaRecorder; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.os.FileUtils; +import android.os.Handler; +import android.os.Message; +import android.provider.Settings; +import android.util.Log; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.activity.EdgeToEdge; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; +import androidx.fragment.app.FragmentActivity; +import androidx.room.util.FileUtil; + +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +import org.xml.sax.ext.DeclHandler; + +import java.io.File; +import java.io.IOException; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.Locale; + +public class RecordSoundActivity extends FragmentActivity { + private RelativeLayout recore_button; + private RelativeLayout main_record; + private ImageView record_back; + private TextView record_text_time; + private boolean isrecord = false; + private MediaRecorder mediaRecorder; + private String filename; + int timeCount; + Thread timeThread; + final int TIME_COUNT = 0x101; + private File androidfile; + private int count; + + @SuppressLint("MissingInflatedId") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_record_sound); + main_record = findViewById(R.id.main_record); + setbackground(); + record_back = findViewById(R.id.record_back); + record_text_time = findViewById(R.id.record_text_time); + recore_button = findViewById(R.id.record_button); + onMyClick(); + } + private void setbackground() { + Window window = getWindow(); + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + main_record.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + } + + + private void onMyClick() { + record_back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + recore_button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (isrecord) { + stopRecordAudio(); + } else { + startRecord(); + } + } + }); + } + + private void stopRecordAudio() { + if (mediaRecorder != null) { + try { + mediaRecorder.stop();//停止录音 + mediaRecorder.release();//释放 + String name = androidfile.getAbsolutePath(); + String time = FormatMiss(count); + //Log.d("time","time"+time); + Intent intent = new Intent(this, SetNameActivity.class); + //Log.d("-----name","name"+name); + intent.putExtra(MyValue.MP3URL,name); + intent.putExtra(MyValue.TIME, time); + //intent.putExtra(MyValue.DATA_TYPE,"LOAD"); + startActivity(intent); + finish(); + mediaRecorder = null;//置空 + } catch (Exception exception) { + mediaRecorder.reset(); + mediaRecorder.release(); + mediaRecorder = null; + } + } + recore_button.setBackgroundResource(R.drawable.record_play_src); + isrecord = false; + } + + @SuppressLint("NewApi") + private void startRecord() { + isrecord = true; + recore_button.setBackgroundResource(R.drawable.record_stop_src); + File filepath = this.getCacheDir(); //声明存储路径,用绝对路径什么都可以 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd_HH_mm_ss");// HH:mm:ss + //获取当前时间 + Date date = new Date(System.currentTimeMillis()); + filename = simpleDateFormat.format(date); + androidfile = new File(filepath, filename+"RADIO.mp3"); + if (mediaRecorder == null) { + mediaRecorder = new MediaRecorder(); + } + mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);//设置麦克风 + //Log.d("pathfile1", "pathfile" + androidfile); + /* + 设置保存输出文件的格式:THREE_GPP/MPEG-4/RAW_AMR/Default THREE_GPP(3gp格式,H263视频/ARM音频编码)、MPEG-4、RAW_AMR(只支持音频且音频编码要求为AMR_NB) + */ + mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); + mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);//文件编码格式 + //设置音频文件的存储方式 + if(Build.VERSION.SDK_INT < 26){ + //若api低于26,调用setOutputFile(String path) + mediaRecorder.setOutputFile(androidfile.getAbsolutePath());//返回文件的绝对路径 + }else { + //若API高于26 使用setOutputFile(File path) + mediaRecorder.setOutputFile(androidfile); + } + try { + mediaRecorder.prepare(); + mediaRecorder.start(); + timeThread = new Thread(new Runnable() { + @Override + public void run() { + countTime(); + } + }); + timeThread.start(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + private void countTime() { + while (isrecord) { + //LogUtil.d("正在录音"); + timeCount++; + Message msg = Message.obtain(); + msg.what = TIME_COUNT; + msg.obj = timeCount; + myHandler.sendMessage(msg); + try { + timeThread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + //LogUtil.d("结束录音"); + timeCount = 0; + Message msg = Message.obtain(); + msg.what = TIME_COUNT; + msg.obj = timeCount; + myHandler.sendMessage(msg); + } + public static String FormatMiss(int miss) { + String hh = miss / 3600 > 9 ? miss / 3600 + "" : "0" + miss / 3600; + String mm = (miss % 3600) / 60 > 9 ? (miss % 3600) / 60 + "" : "0" + (miss % 3600) / 60; + String ss = (miss % 3600) % 60 > 9 ? (miss % 3600) % 60 + "" : "0" + (miss % 3600) % 60; + return hh + ":" + mm + ":" + ss; + } + Handler myHandler = new Handler() { + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case TIME_COUNT: + count = (int) msg.obj; + //LogUtil.d("count == " + count); + record_text_time.setText(FormatMiss(count)); + break; + } + } + }; +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/SetNameActivity.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/SetNameActivity.java new file mode 100644 index 0000000..14f451a --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/SetNameActivity.java @@ -0,0 +1,193 @@ +package com.lc.myapplication.security.mysoundstwo.activity; + +import android.annotation.SuppressLint; +import android.content.ContentResolver; +import android.content.Context; +import android.content.Intent; +import android.media.MediaPlayer; +import android.net.Uri; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeDatabase; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeEntity; +import com.lc.myapplication.security.mysoundstwo.tool.MyTool; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Objects; + +public class SetNameActivity extends AppCompatActivity { + + private MediaPlayer mediaPlayer; + private String path; + private String mp3url; + private Uri localmp3uri; + private String type; + private EditText set_name; + private RelativeLayout mian_setname; + private Button set_name_play; + private boolean isplay = false; + private RelativeLayout save_name; + private String name; + private String time; + private ScaryPrankLikeEntity scaryPrankLikeEntity; + private int c = 1; + private ScaryPrankLikeEntity exitname; + @SuppressLint("MissingInflatedId") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_set_name); + mian_setname = findViewById(R.id.main_setname); + setbackground(); + set_name = findViewById(R.id.set_name); + set_name_play = findViewById(R.id.set_name_play); + save_name = findViewById(R.id.save_name); + getData(); + OnMyClick(); + } + private void setbackground() { + Window window = getWindow(); + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + mian_setname.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + } + + private void OnMyClick() { + set_name_play.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (isplay){ + isplay = false; + set_name_play.setBackgroundResource(R.drawable.record_play_src); + if (mediaPlayer != null){ + mediaPlayer.release(); + mediaPlayer = null; + } + }else { + set_name_play.setBackgroundResource(R.drawable.record_stop_src); + mediaPlayer = new MediaPlayer(); + if (Objects.equals(type, "LOCAL")){ + try { + mediaPlayer.setDataSource(path); + } catch (IOException e) { + throw new RuntimeException(e); + } + }else { + try { + mediaPlayer.setDataSource(mp3url); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { + @Override + public void onPrepared(MediaPlayer mp) { + mediaPlayer.start(); + } + }); + isplay = true; + mediaPlayer.prepareAsync(); + mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { + @Override + public void onCompletion(MediaPlayer mp) { + set_name_play.setBackgroundResource(R.drawable.record_play_src); + } + }); + } + } + }); + save_name.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Toast.makeText(SetNameActivity.this,getString(R.string.save_name_wait),Toast.LENGTH_SHORT).show(); + name = set_name.getText().toString(); + MyTool.RunIO(new Runnable() { + @Override + public void run() { + exitname = ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().QueryLikeName(name); + runOnUiThread(new Runnable() { + @Override + public void run() { + if (exitname == null){ + setEntity(); + MyTool.RunIO(new Runnable() { + @Override + public void run() { + ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().insertLikeData(scaryPrankLikeEntity); + } + }); + Toast.makeText(SetNameActivity.this,getString(R.string.save_name_success),Toast.LENGTH_LONG).show(); + finish(); + }else { + Toast.makeText(SetNameActivity.this,getString(R.string.name_exit),Toast.LENGTH_LONG).show(); + } + } + }); + } + }); + } + }); + } + + private void setEntity() { + scaryPrankLikeEntity = new ScaryPrankLikeEntity(); + scaryPrankLikeEntity.setName(name); + if (Objects.equals(type, "LOCAL")) { + scaryPrankLikeEntity.setMp3url(path); + }else { + scaryPrankLikeEntity.setMp3url(mp3url); + } + scaryPrankLikeEntity.setSoundslike(false); + scaryPrankLikeEntity.setResource(c); + scaryPrankLikeEntity.setTime(time); + } + + + private void getData() { + Intent intent = getIntent(); + type = intent.getStringExtra(MyValue.DATA_TYPE); + mp3url = intent.getStringExtra(MyValue.MP3URL); + time = intent.getStringExtra(MyValue.TIME); + if (Objects.equals(type, "LOCAL")) { + path = gotoGetsource(this,mp3url); + } + } + + private String gotoGetsource(Context context,String mp3urlpath) { + Uri uripath = Uri.parse(mp3urlpath); + ContentResolver contentResolver = context.getContentResolver();//ContentResolver是用于操作数据,与此对应的是ContentProdiver + try { + InputStream fst = contentResolver.openInputStream(uripath); + FileOutputStream fileOutputStream = new FileOutputStream(new File(getCacheDir(),"local_music.mp3")); + if (fst == null){ + return null; + } + byte[] butter = new byte[1024]; + int n; + while((n = fst.read(butter)) != -1) { + fileOutputStream.write(butter,0,n); + } + return new File(getCacheDir(),"local_music.mp3").getAbsolutePath(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/SettingActivity.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/SettingActivity.java new file mode 100644 index 0000000..2649164 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/activity/SettingActivity.java @@ -0,0 +1,96 @@ +package com.lc.myapplication.security.mysoundstwo.activity; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.graphics.Typeface; +import android.net.Uri; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.webkit.WebView; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.activity.EdgeToEdge; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +import com.lc.myapplication.security.mysoundstwo.R; + +public class SettingActivity extends AppCompatActivity { + private RelativeLayout set_pravicy; + private RelativeLayout main_setting; + private RelativeLayout set_share; + private RelativeLayout set_grade; + private RelativeLayout set_version; + private ImageView image_back; + private TextView set_title; + private WebView webView; + @SuppressLint("MissingInflatedId") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_setting); + main_setting = findViewById(R.id.main_setting); + setbackground(); + set_title = findViewById(R.id.set_title); + set_title.setTypeface(Typeface.createFromAsset(getAssets(),"myfront1.ttf")); + set_pravicy = findViewById(R.id.set_privacy); + set_share = findViewById(R.id.set_share); + set_grade = findViewById(R.id.set_grade); + set_version = findViewById(R.id.set_version); + image_back = findViewById(R.id.image_back); + image_back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + set_pravicy.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(SettingActivity.this,PracyActivity.class); + startActivity(intent); + } + }); + set_share.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + shareAPP(); + } + }); + set_version.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Toast.makeText(SettingActivity.this,getString(R.string.app_version)+"V1.0.0",Toast.LENGTH_LONG).show(); + } + }); + set_grade.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String url = getString(R.string.share_app); + Intent intent2 = new Intent(Intent.ACTION_VIEW); + intent2.setData(Uri.parse(url)); + startActivity(intent2); + } + }); + } + private void setbackground() { + Window window = getWindow(); + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + main_setting.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + } + public void shareAPP() { + Intent sharedIntent = new Intent(); + sharedIntent.setAction(Intent.ACTION_SEND); + sharedIntent.setType("text/*"); + sharedIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.share_app)); //设置要分享的内容 + startActivity(Intent.createChooser(sharedIntent, "Share")); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/CategoryListAdapter.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/CategoryListAdapter.java new file mode 100644 index 0000000..185f027 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/CategoryListAdapter.java @@ -0,0 +1,93 @@ +package com.lc.myapplication.security.mysoundstwo.adapter; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.Target; +import com.lc.myapplication.security.mysoundstwo.activity.PreviewActivity; +import com.lc.myapplication.security.mysoundstwo.databinding.CategoryRecycleBinding; +import com.lc.myapplication.security.mysoundstwo.list.SoundsData; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeDatabase; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeEntity; +import com.lc.myapplication.security.mysoundstwo.tool.MyTool; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +import java.util.List; + +public class CategoryListAdapter extends RecyclerView.Adapter { + private Context mycon; + private List mylist; + private int bgcolor; + private ScaryPrankLikeEntity entity; + public CategoryListAdapter(Context context,List list,int bg){ + mycon = context; + mylist = list; + bgcolor = bg; + } + @NonNull + @Override + public CategoryVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + CategoryRecycleBinding categoryRecycleBinding = CategoryRecycleBinding.inflate(LayoutInflater.from(mycon),parent,false); + return new CategoryVH(categoryRecycleBinding); + } + + @Override + public void onBindViewHolder(@NonNull CategoryVH holder, int position) { + SoundsData datalist = mylist.get(position); + holder.recycleBinding.categorySoundsText.setText(datalist.getTitle()); + holder.recycleBinding.categorySoundsText.setTypeface(Typeface.createFromAsset(mycon.getAssets(),"myfront1.ttf")); + Glide.with(mycon) + .load(datalist.getPreUrl()) + .listener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, @Nullable Object model, @NonNull Target target, boolean isFirstResource) { + return false; + } + + @Override + public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) { + return false; + } + }) + .into(holder.recycleBinding.categorySoundsImage); + holder.recycleBinding.categoryBg.setBackgroundResource(bgcolor); + String putbg = String.valueOf(bgcolor); + holder.recycleBinding.categoryLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(mycon, PreviewActivity.class); + intent.putExtra(MyValue.DATA_NAME,datalist.getTitle()); + Log.d("dhncatname1","---"+datalist.getTitle()); + intent.putExtra(MyValue.DATA_BG,putbg); + mycon.startActivity(intent); + } + }); + } + + @Override + public int getItemCount() { + return mylist.size(); + } + + public class CategoryVH extends RecyclerView.ViewHolder { + private CategoryRecycleBinding recycleBinding; + public CategoryVH(CategoryRecycleBinding categoryRecycleBinding) { + super(categoryRecycleBinding.getRoot()); + recycleBinding = categoryRecycleBinding; + } + } +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/FavouriteAdapter.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/FavouriteAdapter.java new file mode 100644 index 0000000..40c17b3 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/FavouriteAdapter.java @@ -0,0 +1,118 @@ +package com.lc.myapplication.security.mysoundstwo.adapter; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.Target; +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.activity.PreviewActivity; +import com.lc.myapplication.security.mysoundstwo.databinding.FavRecycleBinding; +import com.lc.myapplication.security.mysoundstwo.databinding.RadioRecycleBinding; +import com.lc.myapplication.security.mysoundstwo.fragment.FavoriteFragment; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeEntity; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +import java.util.List; + +public class FavouriteAdapter extends RecyclerView.Adapter{ + private List scaryPrankLikeEntity; + private int c = 1; + private int[] bgswitch; + private int i=0; + int bg; + private Activity myac; + public FavouriteAdapter(Activity activity, List entities){ + myac = activity; + scaryPrankLikeEntity = entities; + } + @NonNull + @Override + public FavVh onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + FavRecycleBinding favRecycleBinding = FavRecycleBinding.inflate(LayoutInflater.from(parent.getContext()),parent,false); + return new FavVh(favRecycleBinding); + } + + @Override + public void onBindViewHolder(@NonNull FavVh holder, int position) { + ScaryPrankLikeEntity entity = scaryPrankLikeEntity.get(position); + holder.favRecycleBinding.favName.setText(entity.getName()); + holder.favRecycleBinding.favName.setTypeface(Typeface.createFromAsset(myac.getAssets(),"myfront.ttf")); + if (entity.getResource() == c){ + holder.favRecycleBinding.favImage.setBackgroundResource(R.mipmap.creat_image); + String image = String.valueOf(R.mipmap.creat_image); + entity.setImage(image); + }else { + Glide.with(myac) + .load(entity.getImage()) + .listener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, @Nullable Object model, @NonNull Target target, boolean isFirstResource) { + return false; + } + + @Override + public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) { + return false; + } + }) + .into(holder.favRecycleBinding.favImage); + } + int swbg = gotoswitchbg(gotocolor()); + String putbg = String.valueOf(swbg); + holder.favRecycleBinding.favImageBg.setBackgroundResource(swbg); + holder.favRecycleBinding.favLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(myac, PreviewActivity.class); + intent.putExtra(MyValue.DATA_NAME,entity.getName()); + intent.putExtra(MyValue.DATA_BG,putbg); + myac.startActivity(intent); + } + }); + } + private int gotoswitchbg(int[] gotoswitch) { + if(i>=gotoswitch.length){ + i = 0; + } + bg = gotoswitch[i]; + i++; + return bg; + } + private int[] gotocolor() { + bgswitch = new int[6]; + bgswitch[0] = R.color.sounds_yellow_bg; + bgswitch[1] = R.color.sounds_poupur_bg; + bgswitch[2] = R.color.sounds_green_bg; + bgswitch[3] = R.color.sounds_organge_bg; + bgswitch[4] = R.color.sounds_pink_bg; + bgswitch[5] = R.color.sounds_blue_bg; + return bgswitch; + } + + @Override + public int getItemCount() { + return scaryPrankLikeEntity.size(); + } + + public class FavVh extends RecyclerView.ViewHolder { + private FavRecycleBinding favRecycleBinding; + public FavVh(@NonNull FavRecycleBinding fb) { + super(fb.getRoot()); + favRecycleBinding = fb; + } + } +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/FragmentAdapter.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/FragmentAdapter.java new file mode 100644 index 0000000..c3b0cd1 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/FragmentAdapter.java @@ -0,0 +1,37 @@ +package com.lc.myapplication.security.mysoundstwo.adapter; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.viewpager2.adapter.FragmentStateAdapter; + +import com.lc.myapplication.security.mysoundstwo.fragment.FavoriteFragment; +import com.lc.myapplication.security.mysoundstwo.fragment.RadioFragment; +import com.lc.myapplication.security.mysoundstwo.fragment.SoundsFragment; +import com.lc.myapplication.security.mysoundstwo.fragment.WinFragment; + +public class FragmentAdapter extends FragmentStateAdapter { + public FragmentAdapter(@NonNull FragmentActivity fragmentActivity) { + super(fragmentActivity); + } + + @NonNull + @Override + public Fragment createFragment(int position) { + switch (position){ + case 0: + return new SoundsFragment(); + case 1: + return new RadioFragment(); + case 2: + return new WinFragment(); + default: + return new FavoriteFragment(); + } + } + + @Override + public int getItemCount() { + return 4; + } +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/RadioAdapter.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/RadioAdapter.java new file mode 100644 index 0000000..827f2c0 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/RadioAdapter.java @@ -0,0 +1,122 @@ +package com.lc.myapplication.security.mysoundstwo.adapter; + +import android.app.Activity; +import android.content.Intent; +import android.graphics.Typeface; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.activity.PreviewActivity; +import com.lc.myapplication.security.mysoundstwo.databinding.RadioRecycleBinding; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeDatabase; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeEntity; +import com.lc.myapplication.security.mysoundstwo.tool.MyTool; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +import java.util.List; + +public class RadioAdapter extends RecyclerView.Adapter { + private List scaryPrankLikeEntity; + private boolean islike; + private Activity myac; + private boolean isdelete; + public RadioAdapter(Activity activity,List entities,boolean delete){ + myac = activity; + scaryPrankLikeEntity = entities; + isdelete = delete; + } + @NonNull + @Override + public RadioVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + RadioRecycleBinding radioRecycleBinding = RadioRecycleBinding.inflate(LayoutInflater.from(parent.getContext()),parent,false); + return new RadioVH(radioRecycleBinding); + } + + @Override + public void onBindViewHolder(@NonNull RadioVH holder, int position) { + ScaryPrankLikeEntity entity = scaryPrankLikeEntity.get(position); + holder.radioRecycleBinding.radioViewName.setText(entity.getName()); + holder.radioRecycleBinding.radioViewImage.setBackgroundResource(R.mipmap.creat_image); + String image = String.valueOf(R.mipmap.creat_image); + entity.setImage(image); + // Log.d("gettime","-----------"+entity.getTime()); + holder.radioRecycleBinding.radioViewTime.setText(entity.getTime()); + islike = entity.getSoundslike(); + if (islike){ + holder.radioRecycleBinding.radioViewLike.setBackgroundResource(R.drawable.like_bg); + }else { + holder.radioRecycleBinding.radioViewLike.setBackgroundResource(R.drawable.unlike_bg); + } + //Log.d("like1","lie"+entity.getSoundslike()); + holder.radioRecycleBinding.radioViewLike.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(!islike){ + holder.radioRecycleBinding.radioViewLike.setBackgroundResource(R.drawable.like_bg); + entity.setSoundslike(!islike); + islike = true; + //Log.d("like2","lie"+entity.getSoundslike()); + }else { + holder.radioRecycleBinding.radioViewLike.setBackgroundResource(R.drawable.unlike_bg); + islike = false; + entity.setSoundslike(islike); + //Log.d("like2","lie"+entity.getSoundslike()); + } + MyTool.RunIO(new Runnable() { + @Override + public void run() { + ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().UpdateLikeSounds(entity); + } + }); + } + }); + if (isdelete){ + holder.radioRecycleBinding.radioViewDelete.setVisibility(View.VISIBLE); + holder.radioRecycleBinding.radioViewDelete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + MyTool.RunIO(new Runnable() { + @Override + public void run() { + ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().deletelike(entity.getName()); + Toast.makeText(myac,"Delete success",Toast.LENGTH_LONG).show(); + } + }); + } + }); + } + String bg = String.valueOf(R.color.white); + holder.radioRecycleBinding.radioViewLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(myac, PreviewActivity.class); + intent.putExtra(MyValue.DATA_NAME,entity.getName()); + intent.putExtra(MyValue.DATA_URLMP3,entity.getMp3url()); + intent.putExtra(MyValue.DATA_BG,bg); + intent.putExtra(MyValue.DATA_IMAGE,"c"); + myac.startActivity(intent); + //Log.d("mentityp","-----------fin"+entity.getImage()); + } + }); + } + + @Override + public int getItemCount() { + return scaryPrankLikeEntity.size(); + } + + public class RadioVH extends RecyclerView.ViewHolder { + private RadioRecycleBinding radioRecycleBinding; + public RadioVH(@NonNull RadioRecycleBinding rb) { + super(rb.getRoot()); + radioRecycleBinding = rb; + } + } +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/SoundsListAdapter.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/SoundsListAdapter.java new file mode 100644 index 0000000..a856d3c --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/SoundsListAdapter.java @@ -0,0 +1,165 @@ +package com.lc.myapplication.security.mysoundstwo.adapter; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.Target; +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.activity.CategoryActivity; +import com.lc.myapplication.security.mysoundstwo.list.SoundsList; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +import java.util.List; +import java.util.Random; + +public class SoundsListAdapter extends RecyclerView.Adapter { + private Context mycontext; + private List mylist; + private int[] bgswitch; + private int[] bgswitch1; + private int i = 0; + int bg; + + public SoundsListAdapter(Context context, List list) { + mycontext = context; + mylist = list; + bgswitch1 = new int[6]; + bgswitch1[0] = R.mipmap.sounds_yellow_bg; + bgswitch1[1] = R.mipmap.sounds_popur_bg; + bgswitch1[2] = R.mipmap.sounds_green_bg; + bgswitch1[3] = R.mipmap.sounds_red_bg; + bgswitch1[4] = R.mipmap.sounds_pink_bg; + bgswitch1[5] = R.mipmap.sounds_littlegreen_bg; + } + + @NonNull + @Override + public SoundsVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(mycontext).inflate(R.layout.fra_recycle_sounds, parent, false); + return new SoundsVH(view); + } + + @Override + public void onBindViewHolder(@NonNull SoundsVH holder, int position) { + SoundsList sounds = mylist.get(position); + holder.getRe_sounds_text().setText(sounds.getCategoryName()); + holder.getRe_sounds_text().setTypeface(Typeface.createFromAsset(mycontext.getAssets(), "myfront1.ttf")); + Log.d("--", "----" + sounds.getCategoryUrl()); + Glide.with(mycontext) + .load(sounds.getCategoryUrl()) + .transform(new RoundedCorners(90)) + .listener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, @Nullable Object model, @NonNull Target target, boolean isFirstResource) { + //Log.e(MBrManager.TAG, "onLoadFailed-----------------categorylist.getCategoryUrl()=---"+categorylist.getCategoryUrl()+"---------e="+e.getMessage()); + return false; + } + + @Override + public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) { + return false; + } + }) + .into(holder.getRe_sounds_image()); + int a = position % 6; + int randombg = gotorandom(gotocolor()); + //Log.d("color", "color" + randombg); + String putbg = String.valueOf(randombg); + holder.getRe_sounds_bg().setBackgroundResource(bgswitch1[a]); + holder.getRe_sounds_layout().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(mycontext, CategoryActivity.class); + intent.putExtra(MyValue.CATEGORY, sounds); + intent.putExtra(MyValue.COLOR, putbg); + mycontext.startActivity(intent); + } + }); + } + + private int gotorandom(int[] gotocolor) { + int[] array = {0, 1, 2, 3, 4, 5}; + Random rand = new Random(); // 创建 Random 对象 + int randomIndex = rand.nextInt(gotocolor.length); // 生成随机索引 + int randomValue = array[randomIndex]; // 获取随机值 + return gotocolor[randomValue]; + } + + private int gotoswitchbg(int[] gotoswitch) { + if (i >= gotoswitch.length) { + i = 0; + } + bg = gotoswitch[i % 6]; + i++; + return bg; + } + + + private int[] gotocolor() { + bgswitch = new int[6]; + bgswitch[0] = R.color.sounds_yellow_bg; + bgswitch[1] = R.color.sounds_poupur_bg; + bgswitch[2] = R.color.sounds_green_bg; + bgswitch[3] = R.color.sounds_organge_bg; + bgswitch[4] = R.color.sounds_pink_bg; + bgswitch[5] = R.color.sounds_blue_bg; + return bgswitch; + } + + + @Override + public int getItemCount() { + return mylist.size(); + } + + public class SoundsVH extends RecyclerView.ViewHolder { + private ImageView re_sounds_image; + private TextView re_sounds_text; + private ImageView re_sounds_bg; + private FrameLayout re_sounds_layout; + + public SoundsVH(@NonNull View itemView) { + super(itemView); + re_sounds_image = itemView.findViewById(R.id.re_sounds_image); + re_sounds_text = itemView.findViewById(R.id.re_sounds_text); + re_sounds_bg = itemView.findViewById(R.id.re_sounds_bg); + re_sounds_layout = itemView.findViewById(R.id.re_sounds_layout); + } + + public ImageView getRe_sounds_image() { + return re_sounds_image; + } + + public TextView getRe_sounds_text() { + return re_sounds_text; + } + + public ImageView getRe_sounds_bg() { + return re_sounds_bg; + } + + public FrameLayout getRe_sounds_layout() { + return re_sounds_layout; + } + } +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/WinAdapter.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/WinAdapter.java new file mode 100644 index 0000000..385fdfb --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/adapter/WinAdapter.java @@ -0,0 +1,127 @@ +package com.lc.myapplication.security.mysoundstwo.adapter; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.Target; +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.activity.PreviewActivity; +import com.lc.myapplication.security.mysoundstwo.databinding.WinRecycleBinding; +import com.lc.myapplication.security.mysoundstwo.list.SoundsData; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeDatabase; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeEntity; +import com.lc.myapplication.security.mysoundstwo.tool.MyTool; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +import java.util.List; + +public class WinAdapter extends RecyclerView.Adapter { + private Context mycon; + private String[] number = new String[]{"4","5","6","7","8","9","10"}; + private List dataList; + private ScaryPrankLikeEntity list; + private boolean islike; + private int c = 0; + public WinAdapter(Activity activity, List data){ + mycon = activity; + dataList = data; + } + + @NonNull + @Override + public WinVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + WinRecycleBinding winRecycleBinding = WinRecycleBinding.inflate(LayoutInflater.from(mycon),parent,false); + return new WinVH(winRecycleBinding); + } + + @Override + public void onBindViewHolder(@NonNull WinVH holder, int position) { + String numtext = number[position]; + ScaryPrankLikeEntity data = dataList.get(position); + holder.winBinding.winReNum.setText(numtext); + String putbg = String.valueOf(R.color.sounds_poupur_bg); + holder.winBinding.winReNum.setTypeface(Typeface.createFromAsset(mycon.getAssets(),"myfront1.ttf")); + holder.winBinding.winReName.setText(data.getName()); + holder.winBinding.winReName.setTypeface(Typeface.createFromAsset(mycon.getAssets(),"myfront.ttf")); + Glide.with(mycon) + .load(data.getImage()) + .transform(new RoundedCorners(90)) + .listener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, @Nullable Object model, @NonNull Target target, boolean isFirstResource) { + //Log.e(MBrManager.TAG, "onLoadFailed-----------------categorylist.getCategoryUrl()=---"+categorylist.getCategoryUrl()+"---------e="+e.getMessage()); + return false; + } + + @Override + public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) { + return false; + } + }) + .into(holder.winBinding.winReImage); + islike = data.getSoundslike(); + if (islike){ + holder.winBinding.winReLike.setBackgroundResource(R.drawable.win_like); + }else { + holder.winBinding.winReLike.setBackgroundResource(R.drawable.win_unlike); + } + holder.winBinding.winReLike.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (islike){ + holder.winBinding.winReLike.setBackgroundResource(R.drawable.win_unlike); + data.setSoundslike(false); + islike = false; + }else { + islike = true; + holder.winBinding.winReLike.setBackgroundResource(R.drawable.win_like); + data.setSoundslike(true); + } + MyTool.RunIO(new Runnable() { + @Override + public void run() { + ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().UpdateLikeSounds(data); + } + }); + } + }); + holder.winBinding.winRecycleLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(mycon, PreviewActivity.class); + intent.putExtra(MyValue.DATA_NAME,data.getName()); + intent.putExtra(MyValue.DATA_BG,putbg); + mycon.startActivity(intent); + } + }); + } + + @Override + public int getItemCount() { + return dataList.size(); + } + + public class WinVH extends RecyclerView.ViewHolder { + private WinRecycleBinding winBinding; + public WinVH(@NonNull WinRecycleBinding itemView) { + super(itemView.getRoot()); + winBinding = itemView; + } + } +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/FavoriteFragment.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/FavoriteFragment.java new file mode 100644 index 0000000..94281ba --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/FavoriteFragment.java @@ -0,0 +1,73 @@ +package com.lc.myapplication.security.mysoundstwo.fragment; + +import android.graphics.Typeface; +import android.os.Bundle; + +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.adapter.FavouriteAdapter; +import com.lc.myapplication.security.mysoundstwo.adapter.RadioAdapter; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeDatabase; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeEntity; +import com.lc.myapplication.security.mysoundstwo.tool.MyTool; + +import java.util.List; + + +public class FavoriteFragment extends Fragment { + private ImageView fav_null; + private RecyclerView fav_recycle; + private List list; + private boolean islike = true; + private TextView fav_title; + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_favorite, container, false); + fav_null = view.findViewById(R.id.fav_null_img); + fav_title = view.findViewById(R.id.fav_title); + fav_title.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"myfront1.ttf")); + fav_recycle = view.findViewById(R.id.fav_recycle); + setRecycle(); + return view; + } + + private void setRecycle() { + MyTool.RunIO(new Runnable() { + @Override + public void run() { + list = ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().getLike(islike); + requireActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + if (!list.isEmpty()){ + fav_null.setVisibility(View.GONE); + FavouriteAdapter favouriteAdapter = new FavouriteAdapter(getActivity(),list); + fav_recycle.setAdapter(favouriteAdapter); + fav_recycle.setLayoutManager(new GridLayoutManager(getContext(),1)); + }else { + fav_null.setVisibility(View.VISIBLE); + } + } + }); + } + }); + + } + + @Override + public void onResume() { + super.onResume(); + setRecycle(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/RadioFragment.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/RadioFragment.java new file mode 100644 index 0000000..85d351a --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/RadioFragment.java @@ -0,0 +1,206 @@ +package com.lc.myapplication.security.mysoundstwo.fragment; + +import static android.app.Activity.RESULT_OK; + + +import android.Manifest; +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.database.Cursor; +import android.graphics.Typeface; +import android.graphics.drawable.ColorDrawable; +import android.media.MediaPlayer; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.provider.Settings; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.ScaryPrank; +import com.lc.myapplication.security.mysoundstwo.activity.PreviewActivity; +import com.lc.myapplication.security.mysoundstwo.activity.RecordSoundActivity; +import com.lc.myapplication.security.mysoundstwo.activity.SetNameActivity; +import com.lc.myapplication.security.mysoundstwo.adapter.RadioAdapter; +import com.lc.myapplication.security.mysoundstwo.adapter.SoundsListAdapter; +import com.lc.myapplication.security.mysoundstwo.databinding.FragmentRadioBinding; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeDatabase; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeEntity; +import com.lc.myapplication.security.mysoundstwo.tool.MyTool; +import com.lc.myapplication.security.mysoundstwo.value.MySpace; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +import java.io.IOException; +import java.util.List; + +public class RadioFragment extends Fragment { + private List list; + + private int c = 1; + private boolean isdelete = false; + private int REQUEST_CODE_AUDIO_FILE=1; + private Dialog dialog; + FragmentRadioBinding binding; + private MediaPlayer mediaPlayer; + @SuppressLint("MissingInflatedId") + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + binding = FragmentRadioBinding.inflate(inflater,container,false); + binding.radioTitle.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"myfront1.ttf")); + binding.addText.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "myfront2.ttf")); + binding.radioDelete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + isdelete = true; + setRecycle(); + } + }); + binding.radioAdds.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + checkPermission(); + } + }); + setRecycle(); + return binding.getRoot(); + } + + private void showdialog() { + dialog = new Dialog(requireContext()); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.setContentView(R.layout.add_sounds_dialog); + dialog.setCancelable(true); + dialog.getWindow().setGravity(Gravity.BOTTOM); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); + dialog.findViewById(R.id.dialog_import).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(Intent.ACTION_GET_CONTENT); + intent.setType("audio/*"); + startActivityForResult(Intent.createChooser(intent,"choose music file"),REQUEST_CODE_AUDIO_FILE); + dialog.cancel(); + } + }); + dialog.findViewById(R.id.dialog_create).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getContext(), RecordSoundActivity.class); + getContext().startActivity(intent); + dialog.cancel(); + } + }); + WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); + lp.copyFrom(dialog.getWindow().getAttributes()); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + lp.height = WindowManager.LayoutParams.WRAP_CONTENT; + dialog.show(); + dialog.getWindow().setAttributes(lp); + + } + + private void setRecycle() { + MyTool.RunIO(new Runnable() { + @Override + public void run() { + list = ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().queryreource(c); + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + RadioAdapter radioAdapter = new RadioAdapter(getActivity(),list,isdelete); + binding.radioRecycle.setAdapter(radioAdapter); + binding.radioRecycle.setLayoutManager(new GridLayoutManager(getActivity(),1)); + } + }); + } + }); + } + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + Log.d("uri","url--"+resultCode); + if (resultCode == RESULT_OK && requestCode == 200) { + checkPermission(); + } + if (requestCode == REQUEST_CODE_AUDIO_FILE && resultCode == RESULT_OK){ + if (data != null){ + Uri androidurl = data.getData(); + if (androidurl != null){ + String url = String.valueOf(androidurl); + Intent intent = new Intent(getContext(), SetNameActivity.class); + intent.putExtra(MyValue.DATA_TYPE,"LOCAL"); + intent.putExtra(MyValue.MP3URL,url); + intent.putExtra(MyValue.TIME,"local music "); + getContext().startActivity(intent); + } + } + } + } + private void checkPermission() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + String[] permissions = new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE}; + for (String permission : permissions) { + if (ContextCompat.checkSelfPermission(getActivity(), permission) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(getActivity(), permissions, 200); + return; + } + } + showdialog(); + } else { + + } + } + + + + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] + grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && requestCode == 200) { + for (int i = 0; i < permissions.length; i++) { + if (grantResults[i] != PackageManager.PERMISSION_GRANTED) { + Intent intent = new Intent(); + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + Uri uri = Uri.fromParts("package", getActivity().getPackageName(), null); + intent.setData(uri); + startActivityForResult(intent, 200); + return; + } + } + } + + } + + @Override + public void onResume() { + super.onResume(); + setRecycle(); + isdelete = false; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/SoundsFragment.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/SoundsFragment.java new file mode 100644 index 0000000..acfb311 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/SoundsFragment.java @@ -0,0 +1,56 @@ +package com.lc.myapplication.security.mysoundstwo.fragment; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.graphics.Typeface; +import android.os.Bundle; + +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.ScaryPrank; +import com.lc.myapplication.security.mysoundstwo.activity.SettingActivity; +import com.lc.myapplication.security.mysoundstwo.adapter.SoundsListAdapter; +import com.lc.myapplication.security.mysoundstwo.value.MySpace; + +public class SoundsFragment extends Fragment { + private TextView sounds_title; + private RecyclerView recyclerView_sounds; + private ImageView main_image_set; + @SuppressLint("MissingInflatedId") + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_sounds, container, false); + recyclerView_sounds = view.findViewById(R.id.fra_recycle_sounds); + sounds_title = view.findViewById(R.id.sounds_title); + sounds_title.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"myfront1.ttf")); + main_image_set = view.findViewById(R.id.main_image_set); + main_image_set.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getContext(), SettingActivity.class); + startActivity(intent); + } + }); + setRecycleSounds(); + return view; + } + private void setRecycleSounds() { + MySpace mySpace = new MySpace(1,20,1); + GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 2); + recyclerView_sounds.setLayoutManager(gridLayoutManager); + recyclerView_sounds.addItemDecoration(mySpace); + SoundsListAdapter soundsAdapter = new SoundsListAdapter(getActivity(), ScaryPrank.getList()); + recyclerView_sounds.setAdapter(soundsAdapter); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/WinFragment.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/WinFragment.java new file mode 100644 index 0000000..a28393f --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/fragment/WinFragment.java @@ -0,0 +1,261 @@ +package com.lc.myapplication.security.mysoundstwo.fragment; + +import android.content.Intent; +import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.os.Bundle; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.Target; +import com.lc.myapplication.security.mysoundstwo.R; +import com.lc.myapplication.security.mysoundstwo.ScaryPrank; +import com.lc.myapplication.security.mysoundstwo.activity.PreviewActivity; +import com.lc.myapplication.security.mysoundstwo.adapter.FavouriteAdapter; +import com.lc.myapplication.security.mysoundstwo.adapter.WinAdapter; +import com.lc.myapplication.security.mysoundstwo.databinding.FragmentWinBinding; +import com.lc.myapplication.security.mysoundstwo.list.SoundsData; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeDatabase; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeEntity; +import com.lc.myapplication.security.mysoundstwo.tool.MyTool; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +import java.util.List; + +public class WinFragment extends Fragment { + private TextView win_title; + private int c = 0; + private RecyclerView win_recycle; + private ImageView win_one_image; + private ImageView win_two_image; + private ImageView win_three_image; + private ImageView win_one_like; + private ImageView win_two_like; + private ImageView win_three_like; + private boolean like1; + private boolean like2; + private boolean like3; + private ScaryPrankLikeEntity list1; + private ScaryPrankLikeEntity list2; + private ScaryPrankLikeEntity list3; + private List entityList; + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_win, container, false); + win_title = view.findViewById(R.id.win_title); + win_title.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"myfront1.ttf")); + win_recycle = view.findViewById(R.id.win_recycle); + win_one_image = view.findViewById(R.id.win_one_image); + win_one_like = view.findViewById(R.id.win_one_like); + win_two_image = view.findViewById(R.id.win_two_image); + win_two_like = view.findViewById(R.id.win_two_like); + win_three_image = view.findViewById(R.id.win_three_image); + win_three_like = view.findViewById(R.id.win_three_like); + gotogetimage(); + onMyclick(); + return view; + } + + private void Getislike() { + like1 = entityList.get(13).getSoundslike(); + if (like1){ + win_one_like.setBackgroundResource(R.drawable.win_like); + }else { + win_one_like.setBackgroundResource(R.drawable.win_unlike); + } + like2 = entityList.get(13).getSoundslike(); + if (like2){ + win_one_like.setBackgroundResource(R.drawable.win_like); + }else { + win_one_like.setBackgroundResource(R.drawable.win_unlike); + } + like3 = entityList.get(13).getSoundslike(); + if (like3){ + win_one_like.setBackgroundResource(R.drawable.win_like); + }else { + win_one_like.setBackgroundResource(R.drawable.win_unlike); + } + } + + + private void gotogetimage() { + MyTool.RunIO(new Runnable() { + @Override + public void run() { + entityList = ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().getAllMessage(); + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + Glide.with(getActivity()) + .load(entityList.get(5).getImage()) + .transform(new RoundedCorners(90)) + .listener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, @Nullable Object model, @NonNull Target target, boolean isFirstResource) { + //Log.e(MBrManager.TAG, "onLoadFailed-----------------categorylist.getCategoryUrl()=---"+categorylist.getCategoryUrl()+"---------e="+e.getMessage()); + return false; + } + + @Override + public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) { + return false; + } + }) + .into(win_one_image); + Glide.with(getActivity()) + .load(entityList.get(115).getImage()) + .transform(new RoundedCorners(90)) + .listener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, @Nullable Object model, @NonNull Target target, boolean isFirstResource) { + //Log.e(MBrManager.TAG, "onLoadFailed-----------------categorylist.getCategoryUrl()=---"+categorylist.getCategoryUrl()+"---------e="+e.getMessage()); + return false; + } + + @Override + public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) { + return false; + } + }) + .into(win_two_image); + Glide.with(getActivity()) + .load(entityList.get(125).getImage()) + .transform(new RoundedCorners(90)) + .listener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, @Nullable Object model, @NonNull Target target, boolean isFirstResource) { + //Log.e(MBrManager.TAG, "onLoadFailed-----------------categorylist.getCategoryUrl()=---"+categorylist.getCategoryUrl()+"---------e="+e.getMessage()); + return false; + } + + @Override + public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) { + return false; + } + }) + .into(win_three_image); + Getislike(); + setRecycle(); + } + }); + } + }); + } + + private void setRecycle() { + WinAdapter winAdapter = new WinAdapter(getActivity(), entityList.subList(123,129)); + win_recycle.setAdapter(winAdapter); + win_recycle.setLayoutManager(new GridLayoutManager(getContext(),1)); + } + private void onMyclick() { + win_one_image.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + gotoIntent(entityList.get(5)); + } + }); + win_two_image.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + gotoIntent(entityList.get(115)); + } + }); + win_three_image.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + gotoIntent(entityList.get(125)); + } + }); + win_one_like.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (like1){ + win_one_like.setBackgroundResource(R.drawable.win_unlike); + entityList.get(5).setSoundslike(false); + like1 = false; + }else { + win_one_like.setBackgroundResource(R.drawable.win_like); + entityList.get(5).setSoundslike(true); + like1 = true; + } + MyTool.RunIO(new Runnable() { + @Override + public void run() { + ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().UpdateLikeSounds(entityList.get(5)); + } + }); + } + }); + win_two_like.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (like2){ + win_one_like.setBackgroundResource(R.drawable.win_unlike); + entityList.get(115).setSoundslike(false); + like1 = false; + }else { + win_one_like.setBackgroundResource(R.drawable.win_like); + entityList.get(115).setSoundslike(true); + like1 = true; + } + MyTool.RunIO(new Runnable() { + @Override + public void run() { + ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().UpdateLikeSounds(entityList.get(115)); + } + }); + } + }); + win_three_like.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (like3){ + win_one_like.setBackgroundResource(R.drawable.win_unlike); + entityList.get(125).setSoundslike(false); + like1 = false; + }else { + win_one_like.setBackgroundResource(R.drawable.win_like); + entityList.get(125).setSoundslike(true); + like1 = true; + } + MyTool.RunIO(new Runnable() { + @Override + public void run() { + ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().UpdateLikeSounds(entityList.get(125)); + } + }); + } + }); + } + private void gotoIntent(ScaryPrankLikeEntity data) { + String putbg = String.valueOf(R.color.sounds_poupur_bg); + Intent intent = new Intent(getContext(), PreviewActivity.class); + intent.putExtra(MyValue.DATA_NAME,data.getName()); + intent.putExtra(MyValue.DATA_BG,putbg); + getActivity().startActivity(intent); + } + + @Override + public void onResume() { + super.onResume(); + gotogetimage(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/list/SoundsData.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/list/SoundsData.java new file mode 100644 index 0000000..7162471 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/list/SoundsData.java @@ -0,0 +1,29 @@ +package com.lc.myapplication.security.mysoundstwo.list; + +import java.io.Serializable; + +public class SoundsData implements Serializable { + private String title; + private String mp3Url; + private String preUrl; + private boolean islike = false; + public String getTitle() { + return title; + } + + public String getMp3Url() { + return mp3Url; + } + + public String getPreUrl() { + return preUrl; + } + + public boolean isIslike() { + return islike; + } + + public void setIslike(boolean islike) { + this.islike = islike; + } +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/list/SoundsList.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/list/SoundsList.java new file mode 100644 index 0000000..4df743b --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/list/SoundsList.java @@ -0,0 +1,43 @@ +package com.lc.myapplication.security.mysoundstwo.list; + +import java.io.Serializable; +import java.util.List; + +public class SoundsList implements Serializable { + private String categoryId; + private String categoryName; + private String categoryUrl; + private List list; + + public String getCategoryId() { + return categoryId; + } + + public void setCategoryId(String categoryId) { + this.categoryId = categoryId; + } + + public String getCategoryName() { + return categoryName; + } + + public void setCategoryName(String categoryName) { + this.categoryName = categoryName; + } + + public String getCategoryUrl() { + return categoryUrl; + } + + public void setCategoryUrl(String categoryUrl) { + this.categoryUrl = categoryUrl; + } + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/room/ScaryPrankLikeDao.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/room/ScaryPrankLikeDao.java new file mode 100644 index 0000000..774b721 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/room/ScaryPrankLikeDao.java @@ -0,0 +1,34 @@ +package com.lc.myapplication.security.mysoundstwo.room; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.OnConflictStrategy; +import androidx.room.Query; +import androidx.room.Update; + +import java.util.List; + +@Dao +public interface ScaryPrankLikeDao { + @Query("select * from scarylike_table where name=:name") + ScaryPrankLikeEntity QueryLikeName(String name); + + @Update + void UpdateLikeSounds(ScaryPrankLikeEntity entity); + @Query("SELECT * FROM scarylike_table") + List getAllMessage(); + + @Insert(onConflict = OnConflictStrategy.IGNORE) + void insertLikeData(ScaryPrankLikeEntity entity); + + @Query("select * from scarylike_table where soundslike=:soundslike") + List getLike(boolean soundslike); + @Delete() + void delete(ScaryPrankLikeEntity entity); + @Query("select * from scarylike_table where resource=:reource") + List queryreource(int reource); + @Query("delete from scarylike_table where name=:name") + void deletelike(String name); + +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/room/ScaryPrankLikeDatabase.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/room/ScaryPrankLikeDatabase.java new file mode 100644 index 0000000..0ee3b34 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/room/ScaryPrankLikeDatabase.java @@ -0,0 +1,22 @@ +package com.lc.myapplication.security.mysoundstwo.room; + +import androidx.room.Database; +import androidx.room.Room; +import androidx.room.RoomDatabase; + +import com.lc.myapplication.security.mysoundstwo.ScaryPrank; +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +@Database(version = 1,entities = {ScaryPrankLikeEntity.class},exportSchema = false) +public abstract class ScaryPrankLikeDatabase extends RoomDatabase { + private static ScaryPrankLikeDatabase scaryPrankLikeDatabase; + public abstract ScaryPrankLikeDao getScaryPrankLikeDao(); + + public static synchronized ScaryPrankLikeDatabase getScaryPrankLikeDatabase(){ + if (scaryPrankLikeDatabase == null){ + scaryPrankLikeDatabase = Room.databaseBuilder(MyValue.scaryPrank,ScaryPrankLikeDatabase.class, MyValue.DATA_BASE).build(); + } + return scaryPrankLikeDatabase; + } + +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/room/ScaryPrankLikeEntity.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/room/ScaryPrankLikeEntity.java new file mode 100644 index 0000000..2adc9f1 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/room/ScaryPrankLikeEntity.java @@ -0,0 +1,74 @@ +package com.lc.myapplication.security.mysoundstwo.room; + +import androidx.room.Entity; +import androidx.room.Index; +import androidx.room.PrimaryKey; + +import com.lc.myapplication.security.mysoundstwo.value.MyValue; + +@Entity(tableName = MyValue.TABLE_NAME,indices = {@Index(value = "name",unique = true)}) +public class ScaryPrankLikeEntity { + @PrimaryKey(autoGenerate = true) + private int id; + private String name; + private String image; + private String mp3url; + private String time; + private Boolean soundslike; + private int resource; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + public void setSoundslike(Boolean soundslike) { + this.soundslike = soundslike; + } + + public String getImage() { + return image; + } + + public void setImage(String image) { + this.image = image; + } + + public String getMp3url() { + return mp3url; + } + + public void setMp3url(String mp3url) { + this.mp3url = mp3url; + } + + public Boolean getSoundslike() { + return soundslike; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public int getResource() { + return resource; + } + + public void setResource(int resource) { + this.resource = resource; + } +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/tool/MyTool.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/tool/MyTool.java new file mode 100644 index 0000000..1f83098 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/tool/MyTool.java @@ -0,0 +1,71 @@ +package com.lc.myapplication.security.mysoundstwo.tool; + +import android.content.SharedPreferences; +import android.util.Log; + +import com.lc.myapplication.security.mysoundstwo.list.SoundsData; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeDatabase; +import com.lc.myapplication.security.mysoundstwo.room.ScaryPrankLikeEntity; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.StringWriter; +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +public class MyTool { + private SharedPreferences sharedPreferences; + private SharedPreferences.Editor editor; + private static ExecutorService executorService; + public static String getCovertStr(InputStream stream) { + String covertStr = ""; + try { + StringWriter writer = new StringWriter(); + char[] buffer = new char[stream.available()]; + Reader reader = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8)); + int a = 0; + while ((a = reader.read(buffer)) != -1) { + writer.write(buffer, 0, a); + } + covertStr = writer.toString(); + } catch (IOException e) { + return covertStr; + } + return covertStr; + } + private static ExecutorService getExecutorService(){ + if (executorService == null){ + executorService = Executors.newSingleThreadExecutor(); + } + return executorService; + } + + public static void RunIO(Runnable task){ + getExecutorService().execute(task); + } + public static void insertEntity(List list) { + Log.d("--------size","----size"+list.size()); + MyTool.RunIO(new Runnable() { + @Override + public void run() { + for (SoundsData datalist : list) { + ScaryPrankLikeEntity entity = new ScaryPrankLikeEntity(); + entity.setName(datalist.getTitle()); + entity.setImage(datalist.getPreUrl()); + entity.setMp3url(datalist.getMp3Url()); + entity.setSoundslike(false); + ScaryPrankLikeDatabase.getScaryPrankLikeDatabase().getScaryPrankLikeDao().insertLikeData(entity); + //SecurityLockDataBase.getSecurityLockDataBase().getsecurityLockDAO().InsertSecurityEntity(entityApp); + } + } + }); + } + + +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/value/MySpace.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/value/MySpace.java new file mode 100644 index 0000000..d5ea632 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/value/MySpace.java @@ -0,0 +1,53 @@ +package com.lc.myapplication.security.mysoundstwo.value; + +import android.graphics.Rect; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +public class MySpace extends RecyclerView.ItemDecoration { + private int ex_space = 0; + private int h_space = 0; + private int v_space = 0; + + @Override + public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + int position = parent.getChildAdapterPosition(view); + int spanSize = 1; + int spanIndex = 0; + int spanCount = 1; + RecyclerView.LayoutManager layoutManager = parent.getLayoutManager(); + if (layoutManager instanceof GridLayoutManager) { + GridLayoutManager layoutManager1 = (GridLayoutManager) layoutManager; + GridLayoutManager.LayoutParams layoutParams = (GridLayoutManager.LayoutParams) view.getLayoutParams(); + spanCount = layoutManager1.getSpanCount(); + spanSize = layoutManager1.getSpanSizeLookup().getSpanSize(position); + spanIndex = layoutParams.getSpanIndex(); + + } + + + if (spanSize == spanCount) { + outRect.left = v_space + ex_space; + outRect.right = v_space + ex_space; + outRect.bottom = h_space; + } else { + int itemAllSpacing = (v_space * (spanCount + 1) + ex_space * 2) / spanCount; + int left = v_space * (spanIndex + 1) - itemAllSpacing * spanIndex + ex_space; + int right = itemAllSpacing - left; + outRect.left = left; + outRect.right = right; + outRect.bottom = h_space; + } + + } + + public MySpace(int ex_space, int h_space, int v_space) { + this.ex_space = ex_space; + this.h_space = h_space; + this.v_space = v_space; + + } +} diff --git a/app/src/main/java/com/lc/myapplication/security/mysoundstwo/value/MyValue.java b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/value/MyValue.java new file mode 100644 index 0000000..8c5d998 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/mysoundstwo/value/MyValue.java @@ -0,0 +1,21 @@ +package com.lc.myapplication.security.mysoundstwo.value; + +import com.lc.myapplication.security.mysoundstwo.ScaryPrank; +import com.lc.myapplication.security.mysoundstwo.fragment.FavoriteFragment; + +public class MyValue { + public static String CATEGORY = "category_list"; + public static String DATA_NAME = "DATA_NAME"; + public static String DATA_ALL = "DATA_all"; + public static String DATA_IMAGE = "DATA_IMAGE"; + public static String DATA_URLMP3 = "DATA_URLMP3"; + public static String DATA_BG = "DATA_BG"; + public static String DATA_TYPE = "type"; + public static String DATA_BASE = "db"; + public static final String TABLE_NAME = "scarylike_table"; + public static String COLOR = "bg_color"; + public static String preCOLOR = "bg_color"; + public static String MP3URL = "MP3"; + public static String TIME = "time"; + public static ScaryPrank scaryPrank; +} diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/add_select_bg.xml b/app/src/main/res/drawable/add_select_bg.xml new file mode 100644 index 0000000..f9c9e7e --- /dev/null +++ b/app/src/main/res/drawable/add_select_bg.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/add_src.xml b/app/src/main/res/drawable/add_src.xml new file mode 100644 index 0000000..b90ba1f --- /dev/null +++ b/app/src/main/res/drawable/add_src.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/adds_bg.xml b/app/src/main/res/drawable/adds_bg.xml new file mode 100644 index 0000000..fd6975d --- /dev/null +++ b/app/src/main/res/drawable/adds_bg.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/adds_src.xml b/app/src/main/res/drawable/adds_src.xml new file mode 100644 index 0000000..32cf096 --- /dev/null +++ b/app/src/main/res/drawable/adds_src.xml @@ -0,0 +1,12 @@ + + + diff --git a/app/src/main/res/drawable/delete_src.xml b/app/src/main/res/drawable/delete_src.xml new file mode 100644 index 0000000..f00054b --- /dev/null +++ b/app/src/main/res/drawable/delete_src.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/dia_bg.xml b/app/src/main/res/drawable/dia_bg.xml new file mode 100644 index 0000000..2ace967 --- /dev/null +++ b/app/src/main/res/drawable/dia_bg.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/dialog_creat.xml b/app/src/main/res/drawable/dialog_creat.xml new file mode 100644 index 0000000..e1225aa --- /dev/null +++ b/app/src/main/res/drawable/dialog_creat.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/dialog_import.xml b/app/src/main/res/drawable/dialog_import.xml new file mode 100644 index 0000000..32cf096 --- /dev/null +++ b/app/src/main/res/drawable/dialog_import.xml @@ -0,0 +1,12 @@ + + + diff --git a/app/src/main/res/drawable/fav_re_image_bg.xml b/app/src/main/res/drawable/fav_re_image_bg.xml new file mode 100644 index 0000000..01fc303 --- /dev/null +++ b/app/src/main/res/drawable/fav_re_image_bg.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/like_bg.xml b/app/src/main/res/drawable/like_bg.xml new file mode 100644 index 0000000..abea2c6 --- /dev/null +++ b/app/src/main/res/drawable/like_bg.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/like_src.xml b/app/src/main/res/drawable/like_src.xml new file mode 100644 index 0000000..51ae3fd --- /dev/null +++ b/app/src/main/res/drawable/like_src.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/no_recycle.xml b/app/src/main/res/drawable/no_recycle.xml new file mode 100644 index 0000000..804c08a --- /dev/null +++ b/app/src/main/res/drawable/no_recycle.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/no_sounds_bg.xml b/app/src/main/res/drawable/no_sounds_bg.xml new file mode 100644 index 0000000..dafef58 --- /dev/null +++ b/app/src/main/res/drawable/no_sounds_bg.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/radio_like_bg.xml b/app/src/main/res/drawable/radio_like_bg.xml new file mode 100644 index 0000000..777d36c --- /dev/null +++ b/app/src/main/res/drawable/radio_like_bg.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/radio_list_bg.xml b/app/src/main/res/drawable/radio_list_bg.xml new file mode 100644 index 0000000..581eb3b --- /dev/null +++ b/app/src/main/res/drawable/radio_list_bg.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/radio_unlike_bg.xml b/app/src/main/res/drawable/radio_unlike_bg.xml new file mode 100644 index 0000000..fc9a9aa --- /dev/null +++ b/app/src/main/res/drawable/radio_unlike_bg.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/radio_view_delete.xml b/app/src/main/res/drawable/radio_view_delete.xml new file mode 100644 index 0000000..4acc523 --- /dev/null +++ b/app/src/main/res/drawable/radio_view_delete.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/record_back_bg.xml b/app/src/main/res/drawable/record_back_bg.xml new file mode 100644 index 0000000..f4918e5 --- /dev/null +++ b/app/src/main/res/drawable/record_back_bg.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/record_back_src.xml b/app/src/main/res/drawable/record_back_src.xml new file mode 100644 index 0000000..1c53713 --- /dev/null +++ b/app/src/main/res/drawable/record_back_src.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/record_midden_src.xml b/app/src/main/res/drawable/record_midden_src.xml new file mode 100644 index 0000000..6ca1edd --- /dev/null +++ b/app/src/main/res/drawable/record_midden_src.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/record_play_src.xml b/app/src/main/res/drawable/record_play_src.xml new file mode 100644 index 0000000..126b571 --- /dev/null +++ b/app/src/main/res/drawable/record_play_src.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/drawable/record_stop_src.xml b/app/src/main/res/drawable/record_stop_src.xml new file mode 100644 index 0000000..d118276 --- /dev/null +++ b/app/src/main/res/drawable/record_stop_src.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/drawable/recycle_bg.xml b/app/src/main/res/drawable/recycle_bg.xml new file mode 100644 index 0000000..53b0328 --- /dev/null +++ b/app/src/main/res/drawable/recycle_bg.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/redio_view_like_bg.xml b/app/src/main/res/drawable/redio_view_like_bg.xml new file mode 100644 index 0000000..3db4811 --- /dev/null +++ b/app/src/main/res/drawable/redio_view_like_bg.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/save_name_bg.xml b/app/src/main/res/drawable/save_name_bg.xml new file mode 100644 index 0000000..f9c9e7e --- /dev/null +++ b/app/src/main/res/drawable/save_name_bg.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/set_go_src.xml b/app/src/main/res/drawable/set_go_src.xml new file mode 100644 index 0000000..01ef769 --- /dev/null +++ b/app/src/main/res/drawable/set_go_src.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/set_grade.xml b/app/src/main/res/drawable/set_grade.xml new file mode 100644 index 0000000..a8e9f49 --- /dev/null +++ b/app/src/main/res/drawable/set_grade.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/set_name_bg.xml b/app/src/main/res/drawable/set_name_bg.xml new file mode 100644 index 0000000..1a96090 --- /dev/null +++ b/app/src/main/res/drawable/set_name_bg.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/set_pravicy_src.xml b/app/src/main/res/drawable/set_pravicy_src.xml new file mode 100644 index 0000000..1641210 --- /dev/null +++ b/app/src/main/res/drawable/set_pravicy_src.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/set_share_src.xml b/app/src/main/res/drawable/set_share_src.xml new file mode 100644 index 0000000..44ef257 --- /dev/null +++ b/app/src/main/res/drawable/set_share_src.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/set_version_src.xml b/app/src/main/res/drawable/set_version_src.xml new file mode 100644 index 0000000..b37c76f --- /dev/null +++ b/app/src/main/res/drawable/set_version_src.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/sett.xml b/app/src/main/res/drawable/sett.xml new file mode 100644 index 0000000..4d7d15f --- /dev/null +++ b/app/src/main/res/drawable/sett.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/sounds_bg.xml b/app/src/main/res/drawable/sounds_bg.xml new file mode 100644 index 0000000..7f0da11 --- /dev/null +++ b/app/src/main/res/drawable/sounds_bg.xml @@ -0,0 +1,28 @@ + + + + + diff --git a/app/src/main/res/drawable/sounds_play_bg.xml b/app/src/main/res/drawable/sounds_play_bg.xml new file mode 100644 index 0000000..b81268e --- /dev/null +++ b/app/src/main/res/drawable/sounds_play_bg.xml @@ -0,0 +1,18 @@ + + + + + diff --git a/app/src/main/res/drawable/sounds_src.xml b/app/src/main/res/drawable/sounds_src.xml new file mode 100644 index 0000000..3fae1fd --- /dev/null +++ b/app/src/main/res/drawable/sounds_src.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/sounds_stop_bg.xml b/app/src/main/res/drawable/sounds_stop_bg.xml new file mode 100644 index 0000000..47a180f --- /dev/null +++ b/app/src/main/res/drawable/sounds_stop_bg.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/app/src/main/res/drawable/table_bg.xml b/app/src/main/res/drawable/table_bg.xml new file mode 100644 index 0000000..fbffa04 --- /dev/null +++ b/app/src/main/res/drawable/table_bg.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/table_select.xml b/app/src/main/res/drawable/table_select.xml new file mode 100644 index 0000000..aed474b --- /dev/null +++ b/app/src/main/res/drawable/table_select.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/unlike_bg.xml b/app/src/main/res/drawable/unlike_bg.xml new file mode 100644 index 0000000..b5f584d --- /dev/null +++ b/app/src/main/res/drawable/unlike_bg.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/win_bottom_bg1.xml b/app/src/main/res/drawable/win_bottom_bg1.xml new file mode 100644 index 0000000..bb512f3 --- /dev/null +++ b/app/src/main/res/drawable/win_bottom_bg1.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/win_like.xml b/app/src/main/res/drawable/win_like.xml new file mode 100644 index 0000000..933324d --- /dev/null +++ b/app/src/main/res/drawable/win_like.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/win_re_image_bg.xml b/app/src/main/res/drawable/win_re_image_bg.xml new file mode 100644 index 0000000..1552c89 --- /dev/null +++ b/app/src/main/res/drawable/win_re_image_bg.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/win_src.xml b/app/src/main/res/drawable/win_src.xml new file mode 100644 index 0000000..7b5f8eb --- /dev/null +++ b/app/src/main/res/drawable/win_src.xml @@ -0,0 +1,37 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/win_three_bottom_bg.xml b/app/src/main/res/drawable/win_three_bottom_bg.xml new file mode 100644 index 0000000..a6aeb9d --- /dev/null +++ b/app/src/main/res/drawable/win_three_bottom_bg.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/win_two_bottom_bg.xml b/app/src/main/res/drawable/win_two_bottom_bg.xml new file mode 100644 index 0000000..30972f9 --- /dev/null +++ b/app/src/main/res/drawable/win_two_bottom_bg.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/win_unlike.xml b/app/src/main/res/drawable/win_unlike.xml new file mode 100644 index 0000000..493376b --- /dev/null +++ b/app/src/main/res/drawable/win_unlike.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_category.xml b/app/src/main/res/layout/activity_category.xml new file mode 100644 index 0000000..8a22936 --- /dev/null +++ b/app/src/main/res/layout/activity_category.xml @@ -0,0 +1,39 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_into.xml b/app/src/main/res/layout/activity_into.xml new file mode 100644 index 0000000..87aef1c --- /dev/null +++ b/app/src/main/res/layout/activity_into.xml @@ -0,0 +1,14 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..cbebfef --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_pracy.xml b/app/src/main/res/layout/activity_pracy.xml new file mode 100644 index 0000000..9448521 --- /dev/null +++ b/app/src/main/res/layout/activity_pracy.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_preview.xml b/app/src/main/res/layout/activity_preview.xml new file mode 100644 index 0000000..fd8358f --- /dev/null +++ b/app/src/main/res/layout/activity_preview.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_record_sound.xml b/app/src/main/res/layout/activity_record_sound.xml new file mode 100644 index 0000000..2dc901a --- /dev/null +++ b/app/src/main/res/layout/activity_record_sound.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_set_name.xml b/app/src/main/res/layout/activity_set_name.xml new file mode 100644 index 0000000..7fd2280 --- /dev/null +++ b/app/src/main/res/layout/activity_set_name.xml @@ -0,0 +1,51 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml new file mode 100644 index 0000000..c2e0892 --- /dev/null +++ b/app/src/main/res/layout/activity_setting.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/add_sounds_dialog.xml b/app/src/main/res/layout/add_sounds_dialog.xml new file mode 100644 index 0000000..db693af --- /dev/null +++ b/app/src/main/res/layout/add_sounds_dialog.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/category_recycle.xml b/app/src/main/res/layout/category_recycle.xml new file mode 100644 index 0000000..eef0e1d --- /dev/null +++ b/app/src/main/res/layout/category_recycle.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fav_recycle.xml b/app/src/main/res/layout/fav_recycle.xml new file mode 100644 index 0000000..a8ffe29 --- /dev/null +++ b/app/src/main/res/layout/fav_recycle.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fra_recycle_sounds.xml b/app/src/main/res/layout/fra_recycle_sounds.xml new file mode 100644 index 0000000..81706de --- /dev/null +++ b/app/src/main/res/layout/fra_recycle_sounds.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_favorite.xml b/app/src/main/res/layout/fragment_favorite.xml new file mode 100644 index 0000000..cd621a8 --- /dev/null +++ b/app/src/main/res/layout/fragment_favorite.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_radio.xml b/app/src/main/res/layout/fragment_radio.xml new file mode 100644 index 0000000..626361e --- /dev/null +++ b/app/src/main/res/layout/fragment_radio.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_sounds.xml b/app/src/main/res/layout/fragment_sounds.xml new file mode 100644 index 0000000..a638ee0 --- /dev/null +++ b/app/src/main/res/layout/fragment_sounds.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_win.xml b/app/src/main/res/layout/fragment_win.xml new file mode 100644 index 0000000..f876d6a --- /dev/null +++ b/app/src/main/res/layout/fragment_win.xml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/radio_recycle.xml b/app/src/main/res/layout/radio_recycle.xml new file mode 100644 index 0000000..849afd2 --- /dev/null +++ b/app/src/main/res/layout/radio_recycle.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/win_recycle.xml b/app/src/main/res/layout/win_recycle.xml new file mode 100644 index 0000000..0a5d8ed --- /dev/null +++ b/app/src/main/res/layout/win_recycle.xml @@ -0,0 +1,46 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/creat_image.png b/app/src/main/res/mipmap-hdpi/creat_image.png new file mode 100644 index 0000000..f7a46cb Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/creat_image.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000..c209e78 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000..b2dfe3d Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-hdpi/into.png b/app/src/main/res/mipmap-hdpi/into.png new file mode 100644 index 0000000..8447b58 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/into.png differ diff --git a/app/src/main/res/mipmap-hdpi/null_fav.png b/app/src/main/res/mipmap-hdpi/null_fav.png new file mode 100644 index 0000000..4313b0f Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/null_fav.png differ diff --git a/app/src/main/res/mipmap-hdpi/set_name_image.png b/app/src/main/res/mipmap-hdpi/set_name_image.png new file mode 100644 index 0000000..4eb454f Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/set_name_image.png differ diff --git a/app/src/main/res/mipmap-hdpi/sounds_green_bg.png b/app/src/main/res/mipmap-hdpi/sounds_green_bg.png new file mode 100644 index 0000000..d8619a4 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/sounds_green_bg.png differ diff --git a/app/src/main/res/mipmap-hdpi/sounds_littlegreen_bg.png b/app/src/main/res/mipmap-hdpi/sounds_littlegreen_bg.png new file mode 100644 index 0000000..6d9c88c Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/sounds_littlegreen_bg.png differ diff --git a/app/src/main/res/mipmap-hdpi/sounds_logo.png b/app/src/main/res/mipmap-hdpi/sounds_logo.png new file mode 100644 index 0000000..a79c4c0 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/sounds_logo.png differ diff --git a/app/src/main/res/mipmap-hdpi/sounds_pink_bg.png b/app/src/main/res/mipmap-hdpi/sounds_pink_bg.png new file mode 100644 index 0000000..9a01380 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/sounds_pink_bg.png differ diff --git a/app/src/main/res/mipmap-hdpi/sounds_popur_bg.png b/app/src/main/res/mipmap-hdpi/sounds_popur_bg.png new file mode 100644 index 0000000..a936fba Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/sounds_popur_bg.png differ diff --git a/app/src/main/res/mipmap-hdpi/sounds_red_bg.png b/app/src/main/res/mipmap-hdpi/sounds_red_bg.png new file mode 100644 index 0000000..4c6dc97 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/sounds_red_bg.png differ diff --git a/app/src/main/res/mipmap-hdpi/sounds_yellow_bg.png b/app/src/main/res/mipmap-hdpi/sounds_yellow_bg.png new file mode 100644 index 0000000..6926c0e Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/sounds_yellow_bg.png differ diff --git a/app/src/main/res/mipmap-hdpi/win_bg.png b/app/src/main/res/mipmap-hdpi/win_bg.png new file mode 100644 index 0000000..bccf108 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/win_bg.png differ diff --git a/app/src/main/res/mipmap-hdpi/win_one_bg.png b/app/src/main/res/mipmap-hdpi/win_one_bg.png new file mode 100644 index 0000000..d3e4bce Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/win_one_bg.png differ diff --git a/app/src/main/res/mipmap-hdpi/win_one_bottom_bg.png b/app/src/main/res/mipmap-hdpi/win_one_bottom_bg.png new file mode 100644 index 0000000..3e20480 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/win_one_bottom_bg.png differ diff --git a/app/src/main/res/mipmap-hdpi/win_three_bg.png b/app/src/main/res/mipmap-hdpi/win_three_bg.png new file mode 100644 index 0000000..2e65ec4 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/win_three_bg.png differ diff --git a/app/src/main/res/mipmap-hdpi/win_two_bg.png b/app/src/main/res/mipmap-hdpi/win_two_bg.png new file mode 100644 index 0000000..78fdaa5 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/win_two_bg.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000..4f0f1d6 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000..62b611d Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000..948a307 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..1b9a695 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000..28d4b77 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9287f50 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000..aa7d642 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9126ae3 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..1756657 --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..1d6fe76 --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,14 @@ + + + #FF000000 + #FFFFFFFF + #FDBB1C + #FFD041 + #918FFF + #10C684 + #FE774B + #FF6396 + #0AD6C9 + #00000000 + #74ABFF + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..ef9300c --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,29 @@ + + Scary Prank + prank sound + Ranking + favorite + Radio + sound + + Hello blank fragment + Create Sound + Favourite Sound + Add Sound + Add sound + Import audio + Record sound + New record + Give your created sound a name + Save sound + Waitting please + The name already exists + Successful! + settings + Privacy and security + share + version number + Set Grade + https://play.google.com/store/apps/details?id=com.sp.myapplication.scary.prank + This app version is + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..eda08a0 --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/backup_rules.xml b/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..fa0f996 --- /dev/null +++ b/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..9ee9997 --- /dev/null +++ b/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/test/java/com/lc/myapplication/security/mysoundstwo/ExampleUnitTest.java b/app/src/test/java/com/lc/myapplication/security/mysoundstwo/ExampleUnitTest.java new file mode 100644 index 0000000..f25d5ae --- /dev/null +++ b/app/src/test/java/com/lc/myapplication/security/mysoundstwo/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package com.lc.myapplication.security.mysoundstwo; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..a04e5ba --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,5 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + alias(libs.plugins.android.application) apply false + id("org.jetbrains.kotlin.android") version "1.9.0" apply false +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..4387edc --- /dev/null +++ b/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. For more details, visit +# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..8705609 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,22 @@ +[versions] +agp = "8.4.0" +junit = "4.13.2" +junitVersion = "1.2.1" +espressoCore = "3.6.1" +appcompat = "1.7.0" +material = "1.12.0" +activity = "1.9.1" +constraintlayout = "2.1.4" + +[libraries] +junit = { group = "junit", name = "junit", version.ref = "junit" } +ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } +espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } +appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } +activity = { group = "androidx.activity", name = "activity", version.ref = "activity" } +constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "agp" } + diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e708b1c Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..e6bc69f --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Jul 30 18:04:55 CST 2024 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/keystore.properties b/keystore.properties new file mode 100644 index 0000000..29de7fd --- /dev/null +++ b/keystore.properties @@ -0,0 +1,6 @@ +app_name=Scary Prank +package_name=com.sp.myapplication.scary.prank +keystoreFile=app/ScaryPrank.jks +key_alias=ScaryPrankkey0 +key_store_password=ScaryPrank +key_password=ScaryPrank \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..ec63778 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,25 @@ +pluginManagement { + repositories { + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + maven("https://jitpack.io") + } +} + +rootProject.name = "MySoundsTwo" +include(":app") + \ No newline at end of file