Skip to content

Commit 816f393

Browse files
committed
fix: instant summary remaining recent apps and sometimes showing old summary
1 parent fcdd366 commit 816f393

4 files changed

Lines changed: 59 additions & 30 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.0.2] - 2025-10-08
9+
10+
### Fixed
11+
12+
- Instant summary overlay remaining in recent apps
13+
- Instant summary sometimes showing old summary
14+
815
## [1.0.1] - 2025-10-08
916

1017
### Fixed

app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ android {
1818
applicationId = "me.nanova.summaryexpressive"
1919
minSdk = 33
2020
targetSdk = 36
21-
versionCode = 38
22-
versionName = "1.0.1"
21+
versionCode = 39
22+
versionName = "1.0.2"
2323

2424
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2525
}

app/src/main/AndroidManifest.xml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,23 +41,30 @@
4141
<intent-filter>
4242
<action android:name="android.intent.action.SEND" />
4343
<category android:name="android.intent.category.DEFAULT" />
44+
4445
<data android:mimeType="application/*" />
4546
<data android:mimeType="image/*" />
4647
</intent-filter>
4748
<intent-filter>
4849
<action android:name="android.intent.action.VIEW" />
50+
4951
<category android:name="android.intent.category.DEFAULT" />
5052
<category android:name="android.intent.category.BROWSABLE" />
51-
<data android:scheme="summaryexpressive" android:host="clipboard" />
53+
54+
<data
55+
android:host="clipboard"
56+
android:scheme="summaryexpressive" />
5257
</intent-filter>
5358
</activity>
5459

5560
<activity
5661
android:name=".InstantSummaryActivity"
62+
android:excludeFromRecents="true"
5763
android:exported="true"
58-
android:taskAffinity=""
5964
android:label="@string/instant_summarize"
65+
android:taskAffinity=""
6066
android:theme="@android:style/Theme.Translucent.NoTitleBar">
67+
6168
<intent-filter>
6269
<action android:name="me.nanova.summaryexpressive.action.INSTANT_SUMMARIZE" />
6370
<category android:name="android.intent.category.DEFAULT" />
@@ -75,6 +82,7 @@
7582
<intent-filter>
7683
<action android:name="android.intent.action.SEND" />
7784
<category android:name="android.intent.category.DEFAULT" />
85+
7886
<data android:mimeType="application/*" />
7987
<data android:mimeType="image/*" />
8088
</intent-filter>

app/src/main/kotlin/me/nanova/summaryexpressive/InstantSummaryActivity.kt

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import androidx.compose.ui.unit.dp
4848
import androidx.compose.ui.window.Dialog
4949
import androidx.compose.ui.window.DialogProperties
5050
import dagger.hilt.android.AndroidEntryPoint
51+
import kotlinx.coroutines.flow.MutableStateFlow
5152
import kotlinx.coroutines.launch
5253
import me.nanova.summaryexpressive.ui.theme.SummaryExpressiveTheme
5354
import me.nanova.summaryexpressive.vm.AppViewModel
@@ -57,10 +58,48 @@ import me.nanova.summaryexpressive.vm.SummaryViewModel
5758
class InstantSummaryActivity : ComponentActivity() {
5859
private val appViewModel: AppViewModel by viewModels()
5960
private val summaryViewModel: SummaryViewModel by viewModels()
61+
private val textToSummarizeStateFlow = MutableStateFlow<String?>(null)
6062

6163
override fun onCreate(savedInstanceState: Bundle?) {
6264
super.onCreate(savedInstanceState)
6365

66+
handleIntent(intent)
67+
68+
setContent {
69+
val settings by appViewModel.settingsUiState.collectAsState()
70+
val textToSummarize by textToSummarizeStateFlow.collectAsState()
71+
72+
73+
LaunchedEffect(textToSummarize, settings) {
74+
textToSummarize?.let {
75+
if (it.isNotBlank()) {
76+
summaryViewModel.summarize(it, settings)
77+
}
78+
}
79+
}
80+
81+
SummaryExpressiveTheme(
82+
darkTheme = when (settings.theme) {
83+
1 -> true
84+
2 -> false
85+
else -> isSystemInDarkTheme()
86+
},
87+
dynamicColor = settings.dynamicColor
88+
) {
89+
InstantSummaryDialog(
90+
viewModel = summaryViewModel,
91+
onDismiss = { finish() }
92+
)
93+
}
94+
}
95+
}
96+
97+
override fun onNewIntent(intent: Intent) {
98+
super.onNewIntent(intent)
99+
handleIntent(intent)
100+
}
101+
102+
private fun handleIntent(intent: Intent?) {
64103
val textToSummarize = when (intent?.action) {
65104
Intent.ACTION_PROCESS_TEXT ->
66105
intent.getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT)?.toString()
@@ -86,32 +125,7 @@ class InstantSummaryActivity : ComponentActivity() {
86125
finish()
87126
return
88127
}
89-
90-
setContent {
91-
val settings by appViewModel.settingsUiState.collectAsState()
92-
val summarizationState by summaryViewModel.summarizationState.collectAsState()
93-
94-
95-
LaunchedEffect(settings) {
96-
if (summarizationState.summaryResult == null && !summarizationState.isLoading) {
97-
summaryViewModel.summarize(textToSummarize, settings)
98-
}
99-
}
100-
101-
SummaryExpressiveTheme(
102-
darkTheme = when (settings.theme) {
103-
1 -> true
104-
2 -> false
105-
else -> isSystemInDarkTheme()
106-
},
107-
dynamicColor = settings.dynamicColor
108-
) {
109-
InstantSummaryDialog(
110-
viewModel = summaryViewModel,
111-
onDismiss = { finish() }
112-
)
113-
}
114-
}
128+
textToSummarizeStateFlow.value = textToSummarize
115129
}
116130
}
117131

0 commit comments

Comments
 (0)