Skip to content

Commit 5514559

Browse files
committed
Folder organisation
1 parent b736dcd commit 5514559

14 files changed

Lines changed: 244 additions & 124 deletions

app/src/main/java/com/better/nothing/music/vizualizer/ui/FuckingCommunity.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package com.better.nothing.music.vizualizer.ui
33
import androidx.compose.runtime.Composable
44
import androidx.compose.runtime.getValue
55
import androidx.lifecycle.compose.collectAsStateWithLifecycle
6+
import com.better.nothing.music.vizualizer.ui.SecondaryScreens.CommunityPresetsScreen
7+
import com.better.nothing.music.vizualizer.ui.SecondaryScreens.LeaderboardScreen
68
import kotlinx.coroutines.launch
79

810
@Composable
@@ -20,12 +22,12 @@ internal fun CommunityOverlays(
2022
val userId by viewModel.userId.collectAsStateWithLifecycle()
2123
val presets by viewModel.communityRepository.getPresets().collectAsStateWithLifecycle(initialValue = null)
2224
val scope = androidx.compose.runtime.rememberCoroutineScope()
23-
25+
2426
CommunityPresetsScreen(
2527
presets = presets,
2628
currentUserId = userId,
2729
error = null,
28-
onDownload = { preset ->
30+
onDownload = { preset ->
2931
scope.launch {
3032
try {
3133
viewModel.communityRepository.incrementDownloadCount(preset.id)

app/src/main/java/com/better/nothing/music/vizualizer/ui/MainActivity.kt

Lines changed: 59 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,11 @@ import androidx.compose.material3.ExperimentalMaterial3Api
3939
import androidx.compose.material3.MaterialTheme
4040
import androidx.compose.material3.Scaffold
4141
import androidx.compose.runtime.Composable
42-
import androidx.compose.runtime.CompositionLocalProvider
4342
import androidx.compose.runtime.LaunchedEffect
4443
import androidx.compose.runtime.getValue
4544
import androidx.compose.runtime.mutableStateOf
46-
import androidx.compose.runtime.rememberCoroutineScope
4745
import androidx.compose.runtime.setValue
4846
import androidx.compose.ui.Modifier
49-
import androidx.compose.ui.graphics.Color
5047
import androidx.compose.ui.graphics.graphicsLayer
5148
import androidx.compose.ui.hapticfeedback.HapticFeedbackType
5249
import androidx.compose.ui.platform.LocalContext
@@ -66,6 +63,11 @@ import kotlinx.coroutines.launch
6663
import rikka.shizuku.Shizuku
6764
import kotlin.math.absoluteValue
6865
import androidx.core.content.edit
66+
import com.better.nothing.music.vizualizer.ui.PrimaryScreens.AudioScreen
67+
import com.better.nothing.music.vizualizer.ui.PrimaryScreens.FlashlightScreen
68+
import com.better.nothing.music.vizualizer.ui.PrimaryScreens.GlyphsScreen
69+
import com.better.nothing.music.vizualizer.ui.PrimaryScreens.HapticsScreen
70+
import com.better.nothing.music.vizualizer.ui.PrimaryScreens.SettingsScreen
6971

7072
class MainActivity : ComponentActivity() {
7173
private val viewModel: MainViewModel by viewModels()
@@ -719,7 +721,8 @@ internal fun BetterVizApp(
719721
onLatencyPresetsChanged = { viewModel.updateLatencyPresets(it) },
720722
autoDeviceEnabled = autoDeviceEnabled,
721723
onAutoDeviceToggle = { viewModel.setAutoDeviceMemorize(it) },
722-
connectedDeviceName = MainActivity.serviceStatic?.getActiveAudioRouteKey() ?: "Unknown",
724+
connectedDeviceName = MainActivity.serviceStatic?.getActiveAudioRouteKey()
725+
?: "Unknown",
723726
fftData = fftData,
724727
captureSource = captureSource,
725728
onCaptureSourceChanged = { viewModel.setCaptureSource(it) },
@@ -737,7 +740,11 @@ internal fun BetterVizApp(
737740

738741
GlyphsScreen(
739742
gammaValue = gammaValue,
740-
onGammaChanged = { viewModel.setGammaValue(it); viewModel.persistGamma(it) },
743+
onGammaChanged = {
744+
viewModel.setGammaValue(it); viewModel.persistGamma(
745+
it
746+
)
747+
},
741748
maxBrightness = maxBrightness,
742749
onMaxBrightnessChanged = { viewModel.setMaxBrightness(it) },
743750
presets = presets,
@@ -762,20 +769,33 @@ internal fun BetterVizApp(
762769

763770
HapticsScreen(
764771
hapticMotorEnabled = hapticMotorEnabled,
765-
onHapticMotorEnabledChanged = { viewModel.setHapticMotorEnabled(it) },
772+
onHapticMotorEnabledChanged = {
773+
viewModel.setHapticMotorEnabled(
774+
it
775+
)
776+
},
766777
hapticMode = hapticMode,
767778
onHapticModeChanged = { viewModel.setHapticMode(it) },
768779
hapticFreqMin = hapticFreqMin,
769780
hapticFreqMax = hapticFreqMax,
770-
onHapticFreqRangeChanged = { min, max -> viewModel.setHapticFreqRange(min, max) },
781+
onHapticFreqRangeChanged = { min, max ->
782+
viewModel.setHapticFreqRange(
783+
min,
784+
max
785+
)
786+
},
771787
hapticMultiplier = hapticMultiplier,
772788
onHapticMultiplierChanged = { viewModel.setHapticMultiplier(it) },
773789
hapticAudioGain = hapticAudioGain,
774790
onHapticAudioGainChanged = { viewModel.setHapticAudioGain(it) },
775791
hapticGamma = hapticGamma,
776792
onHapticGammaChanged = { viewModel.setHapticGamma(it) },
777793
hapticBeatSensitivity = hapticBeatSensitivity,
778-
onHapticBeatSensitivityChanged = { viewModel.setHapticBeatSensitivity(it) },
794+
onHapticBeatSensitivityChanged = {
795+
viewModel.setHapticBeatSensitivity(
796+
it
797+
)
798+
},
779799
hapticBeatGamma = hapticBeatGamma,
780800
onHapticBeatGammaChanged = { viewModel.setHapticBeatGamma(it) },
781801
hapticAmplitudeProvider = { viewModel.hapticAmplitude.value },
@@ -800,13 +820,26 @@ internal fun BetterVizApp(
800820
onFlashlightModeChanged = { viewModel.setFlashlightMode(it) },
801821
flashlightFreqMin = flashlightFreqMin,
802822
flashlightFreqMax = flashlightFreqMax,
803-
onFlashlightFreqRangeChanged = { min, max -> viewModel.setFlashlightFreqRange(min, max) },
823+
onFlashlightFreqRangeChanged = { min, max ->
824+
viewModel.setFlashlightFreqRange(
825+
min,
826+
max
827+
)
828+
},
804829
flashlightThreshold = flashlightThreshold,
805-
onFlashlightThresholdChanged = { viewModel.setFlashlightThreshold(it) },
830+
onFlashlightThresholdChanged = {
831+
viewModel.setFlashlightThreshold(
832+
it
833+
)
834+
},
806835
flashlightSpeedMs = flashlightSpeedMs,
807836
onFlashlightSpeedMsChanged = { viewModel.setFlashlightSpeedMs(it) },
808837
flashlightBeatSensitivity = flashlightBeatSensitivity,
809-
onFlashlightBeatSensitivityChanged = { viewModel.setFlashlightBeatSensitivity(it) },
838+
onFlashlightBeatSensitivityChanged = {
839+
viewModel.setFlashlightBeatSensitivity(
840+
it
841+
)
842+
},
810843
flashlightIntensityLevels = flashlightIntensityLevels,
811844
flashlightAmplitudeProvider = { viewModel.flashlightAmplitude.value },
812845
isBeatDetectedProvider = { isFlashlightBeatDetected }
@@ -823,15 +856,27 @@ internal fun BetterVizApp(
823856
SettingsScreen(
824857
viewModel = viewModel,
825858
idleBreathingEnabled = idleBreathingEnabled,
826-
onIdleBreathingEnabledChanged = { viewModel.setIdleBreathingEnabled(it) },
859+
onIdleBreathingEnabledChanged = {
860+
viewModel.setIdleBreathingEnabled(
861+
it
862+
)
863+
},
827864
idlePattern = idlePattern,
828865
onIdlePatternChanged = { viewModel.setIdlePattern(it) },
829866
notificationFlashEnabled = notificationFlashEnabled,
830-
onNotificationFlashEnabledChanged = { viewModel.setNotificationFlashEnabled(it) },
867+
onNotificationFlashEnabledChanged = {
868+
viewModel.setNotificationFlashEnabled(
869+
it
870+
)
871+
},
831872
strobeEnabled = strobeEnabled,
832873
onStrobeEnabledChanged = { viewModel.setStrobeEnabled(it) },
833874
disableGlyphsWhenSilent = disableGlyphsWhenSilent,
834-
onDisableGlyphsWhenSilentChanged = { viewModel.setDisableGlyphsWhenSilent(it) },
875+
onDisableGlyphsWhenSilentChanged = {
876+
viewModel.setDisableGlyphsWhenSilent(
877+
it
878+
)
879+
},
835880
overlayEnabled = overlayEnabled,
836881
onOverlayEnabledChanged = { enabled ->
837882
if (enabled && !Settings.canDrawOverlays(context)) {

app/src/main/java/com/better/nothing/music/vizualizer/ui/PrimaryScreens/AudioSetupScreen.kt

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.better.nothing.music.vizualizer.ui.screens
1+
package com.better.nothing.music.vizualizer.ui.PrimaryScreens
22

33
import android.Manifest
44
import android.content.pm.PackageManager
@@ -35,17 +35,21 @@ import androidx.compose.foundation.layout.offset
3535
import androidx.compose.foundation.layout.padding
3636
import androidx.compose.foundation.layout.width
3737
import androidx.compose.foundation.rememberScrollState
38+
import androidx.compose.foundation.shape.RoundedCornerShape
3839
import androidx.compose.foundation.verticalScroll
3940
import androidx.compose.material.icons.Icons
4041
import androidx.compose.material.icons.filled.GraphicEq
4142
import androidx.compose.material.icons.filled.Mic
4243
import androidx.compose.material.icons.filled.PhoneAndroid
4344
import androidx.compose.material.icons.filled.Terminal
45+
import androidx.compose.material3.AlertDialog
46+
import androidx.compose.material3.Button
4447
import androidx.compose.material3.MaterialTheme
4548
import androidx.compose.material3.Surface
4649
import androidx.compose.material3.Switch
4750
import androidx.compose.material3.SwitchDefaults
4851
import androidx.compose.material3.Text
52+
import androidx.compose.material3.TextButton
4953
import androidx.compose.runtime.Composable
5054
import androidx.compose.runtime.LaunchedEffect
5155
import androidx.compose.runtime.getValue
@@ -99,8 +103,6 @@ fun AudioScreen(
99103
captureSource: AudioCaptureService.CaptureSource = AudioCaptureService.CaptureSource.INTERNAL,
100104
onCaptureSourceChanged: (AudioCaptureService.CaptureSource) -> Unit = {},
101105
shizukuUnlocked: Boolean = false,
102-
dynamicGainEnabled: Boolean = false,
103-
onDynamicGainToggle: (Boolean) -> Unit = {}
104106
) {
105107
val context = LocalContext.current
106108
val scrollState = rememberScrollState()
@@ -739,3 +741,25 @@ fun RowScope.FineTuneButton(
739741
}
740742
}
741743
}
744+
745+
@Composable
746+
fun MediaProjectionInfoDialog(onConfirm: () -> Unit, onDismiss: () -> Unit) {
747+
AlertDialog(
748+
onDismissRequest = onDismiss,
749+
title = { Text("Audio Capture") },
750+
text = { Text("To capture internal audio, this app uses MediaProjection. You will see a system prompt asking for permission.") },
751+
confirmButton = {
752+
Button(onClick = onConfirm) {
753+
Text("GOT IT")
754+
}
755+
},
756+
dismissButton = {
757+
TextButton(onClick = onDismiss) {
758+
Text("CANCEL")
759+
}
760+
},
761+
shape = RoundedCornerShape(28.dp),
762+
containerColor = MaterialTheme.colorScheme.surface,
763+
textContentColor = MaterialTheme.colorScheme.onSurface
764+
)
765+
}

app/src/main/java/com/better/nothing/music/vizualizer/ui/PrimaryScreens/FlashlightScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.better.nothing.music.vizualizer.ui.screens
1+
package com.better.nothing.music.vizualizer.ui.PrimaryScreens
22

33
import com.better.nothing.music.vizualizer.R
44
import androidx.compose.animation.AnimatedVisibility

0 commit comments

Comments
 (0)