Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
d5329a1
New translations strings.xml (French)
sameerasw Mar 3, 2026
41d631e
New translations strings.xml (Chinese Simplified)
sameerasw Mar 4, 2026
7738da5
New translations strings.xml (Chinese Simplified)
sameerasw Mar 4, 2026
f3ab62f
New translations strings.xml (Chinese Simplified)
sameerasw Mar 5, 2026
87b0a7d
New translations strings.xml (Chinese Simplified)
sameerasw Mar 5, 2026
b26706c
New Crowdin updates (#265)
sameerasw Mar 5, 2026
1327976
New translations strings.xml (German)
sameerasw Mar 5, 2026
f241705
New translations strings.xml (Dutch)
sameerasw Mar 5, 2026
699d29e
New translations strings.xml (Portuguese)
sameerasw Mar 5, 2026
01e8efd
New translations strings.xml (Chinese Traditional)
sameerasw Mar 5, 2026
4bad6ae
New translations strings.xml (Portuguese, Brazilian)
sameerasw Mar 5, 2026
c4340cf
New Crowdin updates (#269)
sameerasw Mar 5, 2026
19d8154
feat: Avoid blur on unsupported devices
sameerasw Mar 5, 2026
4c20adb
fix: debug build minify
sameerasw Mar 5, 2026
c08f039
tr: ru and it full translation
sameerasw Mar 5, 2026
e847328
fix: translation fixes
sameerasw Mar 5, 2026
1db31c6
tr: ar cs si
sameerasw Mar 5, 2026
8a71fcc
tr: af fi ko
sameerasw Mar 5, 2026
9fe148d
tr: uka nd fixes
sameerasw Mar 5, 2026
5ae8b4c
feat: No blur in power saving
sameerasw Mar 5, 2026
8433bbe
fix: translations
sameerasw Mar 5, 2026
bff191d
fix: activity crash
sameerasw Mar 5, 2026
a36b64e
feat: Blur toggle represents settings value not current status
sameerasw Mar 5, 2026
3bd36cf
tr: tr (yes the language is tr as well)
sameerasw Mar 5, 2026
defe34c
tr: ro
sameerasw Mar 5, 2026
f604fc9
fix: context menu blur not dimissing
sameerasw Mar 5, 2026
f957014
tr: hu pl
sameerasw Mar 5, 2026
c449b8f
fix: #264 auto freeze app list text color
sameerasw Mar 5, 2026
50fa27a
feat: initial welcome screen impl
sameerasw Mar 5, 2026
f752784
feat: Welcome fidget spinner
sameerasw Mar 5, 2026
a1f3245
feat: I wonder what this does XD
sameerasw Mar 5, 2026
6b47fbc
feat: More setups teps
sameerasw Mar 5, 2026
8b9acff
feat: Make settings FAB open bug report directly
sameerasw Mar 5, 2026
8128ee7
fix: Empty screen buttons fix
sameerasw Mar 5, 2026
d5c76c1
tr: pt
sameerasw Mar 6, 2026
1e8f53a
tr: no
sameerasw Mar 6, 2026
5cb9888
tr: el
sameerasw Mar 6, 2026
0a6b704
tr: ach
sameerasw Mar 6, 2026
83aa795
tr: da
sameerasw Mar 6, 2026
c557db5
tr: sr
sameerasw Mar 6, 2026
b9cf4da
tr: sv vi
sameerasw Mar 6, 2026
5c7faa8
feat: Sentry error reporting
sameerasw Mar 6, 2026
00ec8e6
feat: Updated old bug report and welcome
sameerasw Mar 6, 2026
b3376d9
feat: Updated setup screens
sameerasw Mar 6, 2026
cc01ea9
feat: New configurations during setup
sameerasw Mar 6, 2026
7e26e87
fix: unified toolbar
sameerasw Mar 6, 2026
f53ef59
fix: App themign across batteries features
sameerasw Mar 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ dependencies {
implementation("androidx.biometric:biometric:1.2.0-alpha05")

implementation("io.coil-kt:coil-compose:2.5.0")
implementation("io.coil-kt:coil-gif:2.5.0")
implementation(libs.androidx.compose.foundation.layout)
implementation(libs.androidx.ui)
implementation(libs.androidx.compose.foundation)
Expand Down Expand Up @@ -142,4 +143,5 @@ dependencies {

// GSMArena Parsing
implementation("org.jsoup:jsoup:1.15.3")
implementation(libs.sentry.android)
}
5 changes: 5 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@
android:supportsRtl="true"
android:enableOnBackInvokedCallback="true"
android:theme="@style/Theme.Essentials">

<!-- Disable Sentry auto-init as it's handled manually in EssentialsApp -->
<meta-data android:name="io.sentry.auto-init" android:value="false" />

<activity
android:name=".MainActivity"
android:exported="true"
Expand Down Expand Up @@ -691,6 +695,7 @@
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>


<service
android:name=".services.dreams.AmbientDreamService"
Expand Down
31 changes: 31 additions & 0 deletions app/src/main/java/com/sameerasw/essentials/EssentialsApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,18 @@ import android.app.Application
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.PendingIntent
import android.os.Build
import android.os.Handler
import android.os.Looper
import android.widget.Toast
import com.sameerasw.essentials.data.repository.SettingsRepository
import com.sameerasw.essentials.services.ScreenOffReceiver
import com.sameerasw.essentials.utils.ShizukuUtils
import io.sentry.Sentry
import io.sentry.android.core.SentryAndroid

class EssentialsApp : Application() {
companion object {
Expand Down Expand Up @@ -34,6 +43,8 @@ class EssentialsApp : Application() {
com.sameerasw.essentials.services.automation.AutomationManager.init(this)
com.sameerasw.essentials.services.CalendarSyncManager.init(this)

initSentry()

val intentFilter = IntentFilter(Intent.ACTION_SCREEN_OFF)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
registerReceiver(screenOffReceiver, intentFilter, RECEIVER_EXPORTED)
Expand All @@ -46,5 +57,25 @@ class EssentialsApp : Application() {
super.onTerminate()
unregisterReceiver(screenOffReceiver)
}

private fun initSentry() {
val repository = SettingsRepository(this)
val mode = repository.getString(SettingsRepository.KEY_SENTRY_REPORT_MODE, "auto")

if (mode == "off") return

SentryAndroid.init(this) { options ->
options.dsn = "https://e105699467efe3a43a16bfbad3a63b33@o4510996760887296.ingest.de.sentry.io/4510996763312208"
options.isEnabled = true

options.setBeforeSend { event, _ ->
Handler(Looper.getMainLooper()).post {
Toast.makeText(this@EssentialsApp, R.string.sentry_crash_toast, Toast.LENGTH_LONG).show()
}
event
}
}
}

}

Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import androidx.compose.foundation.layout.statusBars
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.ExtendedFloatingActionButton
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
Expand Down Expand Up @@ -48,7 +49,7 @@ import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.viewmodel.compose.viewModel
import com.sameerasw.essentials.domain.HapticFeedbackType
import com.sameerasw.essentials.domain.registry.FeatureRegistry
import com.sameerasw.essentials.ui.components.SettingsFloatingToolbar
import com.sameerasw.essentials.ui.components.EssentialsFloatingToolbar
import com.sameerasw.essentials.ui.components.cards.FeatureCard
import com.sameerasw.essentials.ui.components.containers.RoundedCardContainer
import com.sameerasw.essentials.ui.components.linkActions.LinkPickerScreen
Expand Down Expand Up @@ -88,6 +89,7 @@ import kotlinx.coroutines.delay
@OptIn(ExperimentalMaterial3Api::class)
class FeatureSettingsActivity : FragmentActivity() {

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge(
Expand Down Expand Up @@ -217,6 +219,7 @@ class FeatureSettingsActivity : FragmentActivity() {

// Help Sheet State
var showHelpSheet by remember { mutableStateOf(false) }
var showInstructionsSheet by remember { mutableStateOf(false) }
var selectedHelpFeature by remember {
mutableStateOf<com.sameerasw.essentials.domain.model.Feature?>(
null
Expand Down Expand Up @@ -308,6 +311,12 @@ class FeatureSettingsActivity : FragmentActivity() {
)
}

if (showInstructionsSheet) {
com.sameerasw.essentials.ui.components.sheets.InstructionsBottomSheet(
onDismissRequest = { showInstructionsSheet = false }
)
}

val pageTitle = if (featureObj != null) stringResource(featureObj.title) else featureId
val hasMenu = featureObj != null && featureObj.aboutDescription != null

Expand Down Expand Up @@ -641,29 +650,20 @@ class FeatureSettingsActivity : FragmentActivity() {
}
}

SettingsFloatingToolbar(
EssentialsFloatingToolbar(
title = pageTitle,
onBackClick = { finish() },
modifier = Modifier
.align(Alignment.BottomCenter)
.zIndex(1f),
menuContent = if (hasMenu) {
{
MenuItem(
text = { Text(stringResource(R.string.action_what_is_this)) },
onClick = {
selectedHelpFeature = featureObj
showHelpSheet = true
},
leadingIcon = {
Icon(
painter = painterResource(id = R.drawable.rounded_help_24),
contentDescription = null
)
}
)
onHelpClick = {
if (hasMenu) {
selectedHelpFeature = featureObj
showHelpSheet = true
} else {
showInstructionsSheet = true
}
} else null
}
)
}
}
Expand Down
Loading