7 Commits

Author SHA1 Message Date
e26af21f63 ssb: Disambiguate some sqlite errors better. Today I learned there are various cases it doesn't update the error message, and prepare can succeed and not produce a statement.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 31m9s
2025-07-09 12:36:58 -04:00
7e1d738f8d ssb: Don't show the connection buttons in the main bar if there's a sidebar. 2025-07-09 12:09:03 -04:00
199448e11e build: Back to building 0.0.33-wip.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 31m35s
2025-07-07 12:40:32 -04:00
fdaabab807 android: Suppress a setDatabaseEnabled deprecation warning.
Some checks failed
Build Tilde Friends / Build-All (push) Has been cancelled
2025-07-07 12:12:37 -04:00
ca4560c5c9 update: speedscope 1.23.0. 2025-07-07 12:11:59 -04:00
2478f3064d android: Don't draw behind the status bar.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 32m5s
2025-07-06 07:39:09 -04:00
e9b8b43e7c ssb: Minor formatting around the connection sidebar buttons. 2025-07-06 07:27:01 -04:00
13 changed files with 60 additions and 40 deletions

View File

@@ -16,9 +16,9 @@ MAKEFLAGS += --no-builtin-rules
## LD := Linker.
## ANDROID_SDK := Path to the Android SDK.
VERSION_CODE := 39
VERSION_CODE := 40
VERSION_CODE_IOS := 15
VERSION_NUMBER := 0.0.32.1
VERSION_NUMBER := 0.0.33-wip
VERSION_NAME := This program kills fascists.
IPHONEOS_VERSION_MIN=14.0

View File

@@ -1,5 +1,5 @@
{
"type": "tildefriends-app",
"emoji": "🦀",
"previous": "&Ym1vefMN4CV4UIgLuV+zu52qj58WwIScctt4v5YIHmQ=.sha256"
"previous": "&lX0ik2WzwWTPa2xkziPbyRZJHP9far9epKqdVIIqFM8=.sha256"
}

View File

@@ -692,7 +692,7 @@ class TfElement extends LitElement {
class="w3-bar w3-theme-l1"
style="position: static; top: 0; z-index: 10"
>
${this.is_administrator
${this.is_administrator && self.tab != 'news'
? html`
<button
class=${'w3-bar-item w3-button w3-circle w3-ripple' +

View File

@@ -203,7 +203,7 @@ class TfTabNewsElement extends LitElement {
new Event('refresh', {bubbles: true, composed: true})
)}
>
<span style="width: 1.5em; height: 1.5em; padding: 8px">↻</span>
<span style="display: inline-block; width: 1.8em">↻</span>
Sync now
</button>
<button
@@ -216,7 +216,10 @@ class TfTabNewsElement extends LitElement {
})
)}
>
${this.stay_connected ? '🔗 Online mode' : '⛓️‍💥 Passive mode'}
<span style="display: inline-block; width: 1.8em"
>${this.stay_connected ? '🔗' : '⛓️‍💥'}</span
>
${this.stay_connected ? 'Online mode' : 'Passive mode'}
</button>
`
: undefined}

View File

@@ -11,7 +11,7 @@
<link rel="icon" type="image/x-icon" href="favicon-FOKUP5Y5.ico">
</head>
<body>
<script src="speedscope-VHEG2FVF.js"></script>
<script src="speedscope-7YPLLUY2.js"></script>

View File

@@ -1,3 +1,3 @@
speedscope@1.22.2
Sat Feb 15 13:02:38 PST 2025
1c254dcb3e2b4f6d921340d20e972d9d27b788f4
speedscope@1.23.0
Sun Jul 6 20:04:28 PDT 2025
aa9bef50789a2989746b576fff182b6f01dfce6a

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unprompted.tildefriends"
android:versionCode="39"
android:versionName="0.0.32.1">
android:versionCode="40"
android:versionName="0.0.33-wip">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application

View File

@@ -110,9 +110,9 @@ public class TildeFriendsActivity extends Activity {
server_thread.start();
web_view.getSettings().setJavaScriptEnabled(true);
web_view.getSettings().setDatabaseEnabled(true);
web_view.getSettings().setDomStorageEnabled(true);
set_database_enabled();
set_database_path();
web_view.setDownloadListener(new DownloadListener() {
@@ -451,4 +451,10 @@ public class TildeFriendsActivity extends Activity {
web_view.getSettings().setDatabasePath(getDatabasePath("webview").getPath());
}
}
@SuppressWarnings("deprecation")
private void set_database_enabled()
{
web_view.getSettings().setDatabaseEnabled(true);
}
}

View File

@@ -3,7 +3,9 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:orientation="vertical"
android:fitsSystemWindows="true"
android:background="#000">
<com.unprompted.tildefriends.TildeFriendsWebView
android:id="@+id/web"
android:layout_width="match_parent"

View File

@@ -13,7 +13,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.0.32.1</string>
<string>0.0.33</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>iPhoneOS</string>

View File

@@ -1082,7 +1082,7 @@ static void _tf_ssb_sqlAsync_work(tf_ssb_t* ssb, void* user_data)
uv_async_send(&sql_work->async);
sqlite3_stmt* statement = NULL;
sql_work->result = sqlite3_prepare_v2(db, sql_work->query, -1, &statement, NULL);
if (sql_work->result == SQLITE_OK)
if (sql_work->result == SQLITE_OK && statement)
{
const uint8_t* p = sql_work->binds;
int column = 0;
@@ -1162,7 +1162,11 @@ static void _tf_ssb_sqlAsync_work(tf_ssb_t* ssb, void* user_data)
}
}
sql_work->result = r;
if (r != SQLITE_OK && r != SQLITE_DONE)
if (r == SQLITE_MISUSE)
{
sql_work->error = tf_strdup(sqlite3_errstr(sql_work->result));
}
else if (r != SQLITE_OK && r != SQLITE_DONE)
{
if (sqlite3_is_interrupted(db))
{
@@ -1176,10 +1180,15 @@ static void _tf_ssb_sqlAsync_work(tf_ssb_t* ssb, void* user_data)
_tf_ssb_sql_append(&sql_work->rows, &sql_work->rows_count, &(uint8_t[]) { 0 }, 1);
sqlite3_finalize(statement);
}
else
else if (sql_work->result != SQLITE_OK)
{
sql_work->error = tf_strdup(sqlite3_errmsg(db));
}
else
{
sql_work->result = SQLITE_ERROR;
sql_work->error = tf_strdup("Statement not prepared");
}
uv_mutex_lock(&sql_work->lock);
sql_work->db = NULL;
uv_mutex_unlock(&sql_work->lock);

View File

@@ -1,2 +1,2 @@
#define VERSION_NUMBER "0.0.32.1"
#define VERSION_NUMBER "0.0.33-wip"
#define VERSION_NAME "This program kills fascists."