Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
f9b1c5c
- update: clickable files
sherlockwisdom Dec 22, 2024
0eb46e8
- update: auto capitalization included
sherlockwisdom Dec 22, 2024
bf16c3d
- update: positional types looking lots better
sherlockwisdom Dec 23, 2024
4efcf25
- update: fixed broken links
sherlockwisdom Dec 23, 2024
bd84d82
release: making release
sherlockwisdom Dec 25, 2024
dd12e0f
update: url
sherlockwisdom Dec 25, 2024
924a681
update: release url
sherlockwisdom Dec 25, 2024
159a31e
release: making release
sherlockwisdom Dec 25, 2024
cad2239
update: modified gradle
sherlockwisdom Dec 25, 2024
5fcf89a
update: fixed gradle.properties
sherlockwisdom Dec 25, 2024
5438a83
release: making release
sherlockwisdom Dec 25, 2024
0107336
update: fix broken url
sherlockwisdom Dec 25, 2024
85b60be
release: making release
sherlockwisdom Dec 25, 2024
6c58f97
update: I swear this thing should just buld
sherlockwisdom Dec 25, 2024
70f914a
release: making release
sherlockwisdom Dec 25, 2024
da1263b
release: making release
sherlockwisdom Dec 25, 2024
330a139
- update: still haven't cracked making the smart responses show up
sherlockwisdom Dec 27, 2024
28ab6e3
update: removed files
sherlockwisdom Jan 3, 2025
e928e84
update: added workflow to server
sherlockwisdom Jan 3, 2025
6252d57
Merge pull request #284 from dekusms/dev
sherlockwisdom Jan 3, 2025
928c3b3
update: fixed broken script for path
sherlockwisdom Jan 3, 2025
b50fbbf
Merge pull request #285 from dekusms/dev
sherlockwisdom Jan 3, 2025
c373cbc
workflow
sherlockwisdom Jan 3, 2025
ace313c
Merge pull request #286 from dekusms/dev
sherlockwisdom Jan 3, 2025
fff7f5f
update: workflows
sherlockwisdom Jan 3, 2025
de56be8
Merge pull request #287 from dekusms/dev
sherlockwisdom Jan 3, 2025
62cc4f1
update: workflow
sherlockwisdom Jan 3, 2025
c0b3682
Merge pull request #288 from dekusms/dev
sherlockwisdom Jan 3, 2025
2135dc6
update: workflow
sherlockwisdom Jan 3, 2025
a472f0c
Merge pull request #289 from dekusms/dev
sherlockwisdom Jan 3, 2025
b33d206
Update main.yml
sherlockwisdom Jan 4, 2025
436d345
update: fixed bump version
sherlockwisdom Jan 4, 2025
33ce860
update: changes to default bulds
sherlockwisdom Jan 4, 2025
d5e2322
Merge pull request #290 from dekusms/dev
sherlockwisdom Jan 4, 2025
4205cad
Update main.yml
sherlockwisdom Jan 4, 2025
a07f146
Merge pull request #291 from dekusms/dev
sherlockwisdom Jan 4, 2025
ab83db2
update: changed ci
sherlockwisdom Jan 4, 2025
57ccefb
Merge pull request #292 from dekusms/dev
sherlockwisdom Jan 4, 2025
d19bb9e
update: modified ci/cd
sherlockwisdom Jan 5, 2025
68ec27a
Merge pull request #293 from dekusms/dev
sherlockwisdom Jan 5, 2025
048654e
release: making release
sherlockwisdom Jan 5, 2025
e0af65c
update: extract data from intents from other apps
Idadelveloper Jan 10, 2025
1cbefab
Merge pull request #296 from Idadelveloper/fix-app-trigger
sherlockwisdom Jan 10, 2025
60ebd3d
update: ensure themed icons
Idadelveloper Jan 14, 2025
0f482b8
update: adjust adaptive icon
Idadelveloper Jan 15, 2025
7d1ec5e
Merge pull request #297 from Idadelveloper/themed-icons
sherlockwisdom Jan 15, 2025
6fe3377
Revert "update: ensure themed icons"
sherlockwisdom Jan 15, 2025
649ecfd
Merge pull request #298 from dekusms/revert-297-themed-icons
sherlockwisdom Jan 15, 2025
e753a89
Merge pull request #299 from dekusms/dev
sherlockwisdom Jan 16, 2025
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
32 changes: 32 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Run SSH command

on:
workflow_dispatch:
pull_request:
types:
- closed

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Run SSH command
uses: appleboy/ssh-action@master
timeout-minutes: 60
with:
command_timeout: "60m"
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: |
if [[ "${{ github.event_name }}" == "pull_request" && "${{ github.event.pull_request.merged }}" == true ]]; then
if [[ "${{ github.event.pull_request.base.ref }}" == "staging" ]]; then
cd /root/digitalocean_ci_cd_app_releases && ./start.sh
elif [[ "${{ github.event.pull_request.base.ref }}" == "master" ]]; then
cd /root/digitalocean_ci_cd_app_releases && ./start.sh cp && ./start.sh build
fi
else
echo "PR is not merged into '${{ github.event.pull_request.base.ref }}'. Workflow will not run."
exit 1
fi
1 change: 0 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

59 changes: 59 additions & 0 deletions .kotlin/errors/errors-1734691941995.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
kotlin version: 2.0.0
error message: Daemon compilation failed: Connection to the Kotlin daemon has been unexpectedly lost. This might be caused by the daemon being killed by another process or the operating system, or by JVM crash.
org.jetbrains.kotlin.gradle.tasks.DaemonCrashedException: Connection to the Kotlin daemon has been unexpectedly lost. This might be caused by the daemon being killed by another process or the operating system, or by JVM crash.
at org.jetbrains.kotlin.gradle.tasks.TasksUtilsKt.wrapAndRethrowCompilationException(tasksUtils.kt:55)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:243)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemonOrFallbackImpl(GradleKotlinCompilerWork.kt:159)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.run(GradleKotlinCompilerWork.kt:111)
at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction.execute(GradleCompilerRunnerWithWorkers.kt:76)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)
at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:174)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:194)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:127)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:169)
at org.gradle.internal.Factories$1.create(Factories.java:31)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:263)
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:127)
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:132)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:133)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.io.EOFException
at java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:255)
at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:165)
at java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:215)
at java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:160)
at jdk.proxy4/jdk.proxy4.$Proxy152.compile(Unknown Source)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.incrementalCompilationWithDaemon(GradleKotlinCompilerWork.kt:331)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:235)
... 37 more
Caused by: java.io.EOFException
at java.base/java.io.DataInputStream.readUnsignedByte(DataInputStream.java:290)
at java.base/java.io.DataInputStream.readByte(DataInputStream.java:268)
at java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:241)
... 43 more


2 changes: 2 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -296,5 +296,7 @@ dependencies {
// Needed to use lifecycleScope to collect the WindowLayoutInfo flow
implementation libs.androidx.lifecycle.runtime.ktx

implementation(libs.autolinktext)

}

10 changes: 10 additions & 0 deletions app/src/main/java/com/afkanerd/deku/DefaultSMS/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
package com.afkanerd.deku.DefaultSMS

import android.Manifest
import android.annotation.SuppressLint
import android.app.Activity
import android.app.ComponentCaller
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Bundle
import android.os.ParcelFileDescriptor
import android.provider.Telephony
import android.text.Layout
import android.util.Log
import android.widget.Toast
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
Expand Down Expand Up @@ -64,6 +67,7 @@ import java.io.InputStreamReader
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.input.key.type
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.style.LineHeightStyle
Expand Down Expand Up @@ -107,6 +111,12 @@ class MainActivity : AppCompatActivity(){
}
}

override fun onNewIntent(intent: Intent, caller: ComponentCaller) {
super.onNewIntent(intent, caller)
this.intent = intent
navController.navigate(HomeScreen)
}

private fun checkLoadNatives() {
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext)
if(sharedPreferences.getBoolean(getString(R.string.configs_load_natives), false)){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,15 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.asImageBitmap
import androidx.compose.ui.unit.dp
import androidx.core.app.ActivityCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.app.Person
import androidx.core.app.RemoteInput
import androidx.core.content.ContextCompat
import androidx.core.content.ContextCompat.getString
import androidx.core.content.LocusIdCompat
import androidx.core.content.pm.ShortcutInfoCompat
Expand All @@ -40,6 +42,7 @@ import coil3.compose.AsyncImage
import com.afkanerd.deku.DefaultSMS.Commons.Helpers
import com.afkanerd.deku.DefaultSMS.R
import com.afkanerd.deku.DefaultSMS.ui.Components.ConvenientMethods
import com.google.android.material.color.MaterialColors

object Notifications {
const val KEY_TEXT_REPLY = "KEY_TEXT_REPLY"
Expand Down Expand Up @@ -103,11 +106,15 @@ object Notifications {
getString(context, R.string.notifications_reply_label),
replyPendingIntent
)
.addRemoteInput(remoteInput)
.setAllowGeneratedReplies(true)
.addRemoteInput(RemoteInput.Builder("extra_remote_reply").setLabel("").build())
.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_REPLY)
.setShowsUserInterface(false)
.build()
// .addRemoteInput(remoteInput)
// .setAllowGeneratedReplies(true)
// .setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_REPLY)
// .setShowsUserInterface(false)
// .build()

var muteAction: NotificationCompat.Action? = if(mutePendingIntent == null) null else
NotificationCompat.Action.Builder(
Expand Down Expand Up @@ -168,6 +175,7 @@ object Notifications {

return NotificationCompat.Builder(context, channelId)
.setSmallIcon(R.drawable.ic_stat_name)
.setColor(context.getColor(R.color.md_theme_primary))
.setContentTitle(title)
.setContentIntent(pendingIntent)
.setPriority(NotificationCompat.PRIORITY_MAX)
Expand All @@ -176,9 +184,9 @@ object Notifications {
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true)
.setAllowSystemGeneratedContextualActions(true)
.addAction(replyAction)
.addAction(muteAction)
.addAction(markAsReadAction)
.addAction(replyAction)
.setShortcutId(address)
.setBubbleMetadata(bubbleMetadata)
.setLocusId(
Expand All @@ -191,9 +199,15 @@ object Notifications {
NotificationCompat.MessagingStyle(title)
.addMessage(text, System.currentTimeMillis(), address)
} else {
NotificationCompat.MessagingStyle(user)
// .setConversationTitle(title)
.addMessage(text, System.currentTimeMillis(), user)
// NotificationCompat.MessagingStyle(user)
// .addMessage(text, System.currentTimeMillis(), user)
NotificationCompat.MessagingStyle(user).addMessage(
NotificationCompat.MessagingStyle.Message(
text,
System.currentTimeMillis(),
user
)
)
}
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,18 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.TextLinkStyles
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import sh.calvin.autolinktext.rememberAutoLinkText

enum class ConversationPositionTypes(val value: Int) {
NORMAL(0),
Expand Down Expand Up @@ -134,7 +141,14 @@ private fun ConversationReceived(
)
) {
Text(
text=text,
text= AnnotatedString.rememberAutoLinkText(
text,
defaultLinkStyles = TextLinkStyles(
SpanStyle(
textDecoration = TextDecoration.Underline
)
)
),
style = MaterialTheme.typography.bodyMedium,
modifier = Modifier.padding(16.dp),
color = colorResource(R.color.md_theme_onBackground)
Expand Down Expand Up @@ -210,7 +224,14 @@ private fun ConversationSent(
)
) {
Text(
text=text,
text= AnnotatedString.rememberAutoLinkText(
text,
defaultLinkStyles = TextLinkStyles(
SpanStyle(
textDecoration = TextDecoration.Underline
)
)
),
style = MaterialTheme.typography.bodyMedium,
modifier = Modifier.padding(16.dp),
color = if(isSelected) MaterialTheme.colorScheme.onPrimaryContainer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.AlertDialog
import androidx.compose.material.Divider
Expand Down Expand Up @@ -71,6 +72,7 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.datasource.LoremIpsum
Expand Down Expand Up @@ -242,6 +244,7 @@ fun ChatCompose(
cursorBrush = SolidColor(MaterialTheme.colorScheme.onBackground),
modifier = Modifier
.fillMaxWidth(),
keyboardOptions = KeyboardOptions(capitalization = KeyboardCapitalization.Sentences)
) {
TextFieldDefaults.DecorationBox(
value = value,
Expand Down
Loading
Loading