Skip to content

Commit cd7ac55

Browse files
Xyndrajmattheis
andauthored
feat: add automatic intent URL display option (#416)
Co-authored-by: Jannis Mattheis <[email protected]>
1 parent 6ac5f69 commit cd7ac55

File tree

4 files changed

+27
-5
lines changed

4 files changed

+27
-5
lines changed

app/src/main/kotlin/com/github/gotify/service/WebSocketService.kt

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import androidx.annotation.RequiresApi
1616
import androidx.core.app.NotificationCompat
1717
import androidx.core.content.ContextCompat
1818
import androidx.core.net.toUri
19+
import androidx.preference.PreferenceManager
1920
import com.github.gotify.BuildConfig
2021
import com.github.gotify.CoilInstance
2122
import com.github.gotify.MarkwonFactory
@@ -314,11 +315,22 @@ internal class WebSocketService : Service() {
314315
)
315316

316317
if (intentUrl != null) {
317-
intent = Intent(this, IntentUrlDialogActivity::class.java).apply {
318-
putExtra(IntentUrlDialogActivity.EXTRA_KEY_URL, intentUrl)
319-
flags = Intent.FLAG_ACTIVITY_NEW_TASK
318+
val prompt = PreferenceManager.getDefaultSharedPreferences(this).getBoolean(
319+
getString(R.string.setting_key_prompt_onreceive_intent),
320+
resources.getBoolean(R.bool.prompt_onreceive_intent)
321+
)
322+
val onReceiveIntent = if (prompt) {
323+
Intent(this, IntentUrlDialogActivity::class.java).apply {
324+
putExtra(IntentUrlDialogActivity.EXTRA_KEY_URL, intentUrl)
325+
flags = Intent.FLAG_ACTIVITY_NEW_TASK
326+
}
327+
} else {
328+
Intent(Intent.ACTION_VIEW).apply {
329+
data = intentUrl.toUri()
330+
flags = Intent.FLAG_ACTIVITY_NEW_TASK
331+
}
320332
}
321-
startActivity(intent)
333+
startActivity(onReceiveIntent)
322334
}
323335

324336
val url = Extras.getNestedValue(

app/src/main/res/values/arrays.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,5 @@
3636
<string name="time_format_value_relative">time_format_relative</string>
3737
<bool name="notification_channels">false</bool>
3838
<bool name="exclude_from_recent">false</bool>
39+
<bool name="prompt_onreceive_intent">true</bool>
3940
</resources>

app/src/main/res/values/strings.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@
9696
<string name="setting_key_intent_dialog_permission">intent_dialog_permission</string>
9797
<string name="setting_summary_intent_dialog_permission">To always show incoming intent URLs, give permission to show this app on top of other apps.</string>
9898
<string name="setting_summary_intent_dialog_permission_granted">Permission granted.</string>
99+
<string name="setting_prompt_onreceive_intent">Confirm onReceive intents</string>
100+
<string name="setting_key_prompt_onreceive_intent">prompt_onreceive_intent</string>
101+
<string name="setting_summary_prompt_onreceive_intent">If enabled, a dialog is shown before onReceive.intentUrl is executed.</string>
99102
<string name="push_message">Push message</string>
100103
<string name="appListDescription">App:</string>
101104
<string name="priorityDescription">Priority:</string>

app/src/main/res/xml/root_preferences.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,13 @@
4242
<SwitchPreferenceCompat
4343
android:key="@string/setting_key_intent_dialog_permission"
4444
android:title="@string/setting_intent_dialog_permission"
45-
tools:summary="@string/setting_summary_intent_dialog_permission" />
45+
android:summary="@string/setting_summary_intent_dialog_permission" />
46+
47+
<SwitchPreferenceCompat
48+
android:key="@string/setting_key_prompt_onreceive_intent"
49+
android:title="@string/setting_prompt_onreceive_intent"
50+
android:defaultValue="@bool/prompt_onreceive_intent"
51+
android:summary="@string/setting_summary_prompt_onreceive_intent" />
4652
</PreferenceCategory>
4753

4854
</PreferenceScreen>

0 commit comments

Comments
 (0)