mirror of
https://github.com/kavishdevar/librepods.git
synced 2026-09-02 09:19:12 +02:00
Compare commits
11 Commits
e6ebbed674
...
v1.0.0-rc2
| Author | SHA1 | Date | |
|---|---|---|---|
| 53679cc902 | |||
| b4cacb89f1 | |||
| cf6d226fca | |||
| 4c7a3cb203 | |||
| 1783bb742e | |||
| 3cc4d92d62 | |||
| 95ecc0eb3d | |||
| a7537f2361 | |||
| 21babd819f | |||
| b5a3eaee8f | |||
| c3f537b0e9 |
@@ -224,11 +224,11 @@ A huge thank you to everyone supporting the project!
|
|||||||
|
|
||||||
# Star History
|
# Star History
|
||||||
|
|
||||||
<a href="https://www.star-history.com/#kavishdevar/librepods&type=date&legend=top-left">
|
<a href="https://www.star-history.com/?repos=librepods-org%2Flibrepods&type=date&legend=top-left">
|
||||||
<picture>
|
<picture>
|
||||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=kavishdevar/librepods&type=date&theme=dark&legend=top-left" />
|
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=librepods-org/librepods&type=date&theme=dark&legend=top-left&sealed_token=CS9QF2Wcx-_EN6M7lBhwvTa2WBd5eB8FbQa5FWt3SV14v1OcQdy2aCGsXxHoytVaoylP_pTxj1h2U-odoXDV_EwTqMxM-MQwG_WpvV_1g_yH-Jh3ux2BuWCmS98LxLqfox2ibLOlFDHu_-geTLFsTmqTc1SjX6-NYxVHXF5DaqnxFOAyjLPL5_WtXVew" />
|
||||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=kavishdevar/librepods&type=date&legend=top-left" />
|
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=librepods-org/librepods&type=date&legend=top-left&sealed_token=CS9QF2Wcx-_EN6M7lBhwvTa2WBd5eB8FbQa5FWt3SV14v1OcQdy2aCGsXxHoytVaoylP_pTxj1h2U-odoXDV_EwTqMxM-MQwG_WpvV_1g_yH-Jh3ux2BuWCmS98LxLqfox2ibLOlFDHu_-geTLFsTmqTc1SjX6-NYxVHXF5DaqnxFOAyjLPL5_WtXVew" />
|
||||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=kavishdevar/librepods&type=date&legend=top-left" />
|
<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=librepods-org/librepods&type=date&legend=top-left&sealed_token=CS9QF2Wcx-_EN6M7lBhwvTa2WBd5eB8FbQa5FWt3SV14v1OcQdy2aCGsXxHoytVaoylP_pTxj1h2U-odoXDV_EwTqMxM-MQwG_WpvV_1g_yH-Jh3ux2BuWCmS98LxLqfox2ibLOlFDHu_-geTLFsTmqTc1SjX6-NYxVHXF5DaqnxFOAyjLPL5_WtXVew" />
|
||||||
</picture>
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|||||||
+21
-1
@@ -736,6 +736,7 @@ fun AirPodsSettingsScreen(
|
|||||||
|
|
||||||
val animatedShapeColor by animateColorAsState(if (reconnecting) primaryContainerColor else secondaryContainerColor)
|
val animatedShapeColor by animateColorAsState(if (reconnecting) primaryContainerColor else secondaryContainerColor)
|
||||||
|
|
||||||
|
if (state.connectionSuccessful) {
|
||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(240.dp)
|
.size(240.dp)
|
||||||
@@ -792,7 +793,10 @@ fun AirPodsSettingsScreen(
|
|||||||
|
|
||||||
val bounds = shapePath.getBounds()
|
val bounds = shapePath.getBounds()
|
||||||
|
|
||||||
val scale = min(size.width/bounds.width, size.height/bounds.height) * 0.8f
|
val scale = min(
|
||||||
|
size.width / bounds.width,
|
||||||
|
size.height / bounds.height
|
||||||
|
) * 0.8f
|
||||||
|
|
||||||
scaleMatrix.reset()
|
scaleMatrix.reset()
|
||||||
|
|
||||||
@@ -826,6 +830,22 @@ fun AirPodsSettingsScreen(
|
|||||||
style = MaterialTheme.typography.labelSmallEmphasized,
|
style = MaterialTheme.typography.labelSmallEmphasized,
|
||||||
color = MaterialTheme.colorScheme.primary
|
color = MaterialTheme.colorScheme.primary
|
||||||
)
|
)
|
||||||
|
} else {
|
||||||
|
Text(
|
||||||
|
text = stringResource(R.string.airpods_not_connected),
|
||||||
|
style = MaterialTheme.typography.headlineMedium,
|
||||||
|
color = MaterialTheme.colorScheme.primary
|
||||||
|
)
|
||||||
|
if (sharedPreferences.getBoolean("bypass_device_check.v2", false)) {
|
||||||
|
Spacer(modifier = Modifier.height(16.dp))
|
||||||
|
Text(
|
||||||
|
text = stringResource(R.string.compatibility_check_bypassed),
|
||||||
|
style = MaterialTheme.typography.bodyMedium,
|
||||||
|
color = MaterialTheme.colorScheme.onSurface,
|
||||||
|
textAlign = TextAlign.Center
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!BuildConfig.PLAY_BUILD) {
|
if (!BuildConfig.PLAY_BUILD) {
|
||||||
|
|||||||
+7
@@ -47,6 +47,7 @@ import me.kavishdevar.librepods.presentation.theme.LibrePodsTheme
|
|||||||
import me.kavishdevar.librepods.utils.XposedState
|
import me.kavishdevar.librepods.utils.XposedState
|
||||||
import me.kavishdevar.librepods.utils.bypassDeviceCheck
|
import me.kavishdevar.librepods.utils.bypassDeviceCheck
|
||||||
import me.kavishdevar.librepods.utils.isSupported
|
import me.kavishdevar.librepods.utils.isSupported
|
||||||
|
import me.kavishdevar.librepods.utils.removeDeviceCheckBypass
|
||||||
|
|
||||||
@OptIn(ExperimentalPermissionsApi::class, ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalPermissionsApi::class, ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
@@ -191,6 +192,9 @@ fun OnboardingScreen(
|
|||||||
NotSupportedPage(
|
NotSupportedPage(
|
||||||
bypassCompatibilityCheck = {
|
bypassCompatibilityCheck = {
|
||||||
bypassDeviceCheck(sharedPreferences)
|
bypassDeviceCheck(sharedPreferences)
|
||||||
|
animationScope.launch {
|
||||||
|
state.animateScrollToItem(3)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -199,6 +203,9 @@ fun OnboardingScreen(
|
|||||||
onBackward = {
|
onBackward = {
|
||||||
animationScope.launch {
|
animationScope.launch {
|
||||||
if (state.canScrollBackward) state.animateScrollToItem(if (isSupported) 1 else 2)
|
if (state.canScrollBackward) state.animateScrollToItem(if (isSupported) 1 else 2)
|
||||||
|
if (!isSupported) {
|
||||||
|
removeDeviceCheckBypass(sharedPreferences)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onForward = onOnboardingComplete
|
onForward = onOnboardingComplete
|
||||||
|
|||||||
+1
-3
@@ -105,7 +105,7 @@ data class AirPodsUiState(
|
|||||||
)
|
)
|
||||||
|
|
||||||
val demoInstance = AirPodsInstance(
|
val demoInstance = AirPodsInstance(
|
||||||
name = "AirPods Pro",
|
name = "[DEMO] AirPods Pro",
|
||||||
model = AirPodsModels.getModelByModelNumber("A3064")!!,
|
model = AirPodsModels.getModelByModelNumber("A3064")!!,
|
||||||
actualModelNumber = "A3064",
|
actualModelNumber = "A3064",
|
||||||
serialNumber = "JXF9Q94A40",
|
serialNumber = "JXF9Q94A40",
|
||||||
@@ -160,8 +160,6 @@ val demoState = AirPodsUiState(
|
|||||||
|
|
||||||
dynamicEndOfCharge = true,
|
dynamicEndOfCharge = true,
|
||||||
|
|
||||||
connectionSuccessful = true,
|
|
||||||
|
|
||||||
customEq = CustomEq(state = 2, low = 65, mid = 50, high = 70),
|
customEq = CustomEq(state = 2, low = 65, mid = 50, high = 70),
|
||||||
|
|
||||||
controlStates = mapOf(
|
controlStates = mapOf(
|
||||||
|
|||||||
@@ -42,3 +42,7 @@ fun isSupported(sharedPreferences: SharedPreferences): Boolean {
|
|||||||
fun bypassDeviceCheck(sharedPreferences: SharedPreferences) {
|
fun bypassDeviceCheck(sharedPreferences: SharedPreferences) {
|
||||||
sharedPreferences.edit{ putBoolean("bypass_device_check.v2", true) }
|
sharedPreferences.edit{ putBoolean("bypass_device_check.v2", true) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun removeDeviceCheckBypass(sharedPreferences: SharedPreferences) {
|
||||||
|
sharedPreferences.edit{ putBoolean("bypass_device_check.v2", false) }
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<background android:drawable="@drawable/ic_launcher_background" />
|
<background android:drawable="@drawable/ic_launcher_background" />
|
||||||
<foreground android:drawable="@drawable/ic_launcher_monochrome" />
|
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||||
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
|
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
|
||||||
</adaptive-icon>
|
</adaptive-icon>
|
||||||
|
|||||||
@@ -290,4 +290,5 @@
|
|||||||
<string name="permissions">Permissions</string>
|
<string name="permissions">Permissions</string>
|
||||||
<string name="privacy_policy">Privacy Policy</string>
|
<string name="privacy_policy">Privacy Policy</string>
|
||||||
<string name="i_agree">I agree</string>
|
<string name="i_agree">I agree</string>
|
||||||
|
<string name="compatibility_check_bypassed">Compatibility check bypassed. Are you sure your device is compatible?</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user