android.json (720797B)
1 [ 2 { 3 "issue": { 4 "url": "https://api.github.com/repos/damus-io/android/issues/100", 5 "repository_url": "https://api.github.com/repos/damus-io/android", 6 "labels_url": "https://api.github.com/repos/damus-io/android/issues/100/labels{/name}", 7 "comments_url": "https://api.github.com/repos/damus-io/android/issues/100/comments", 8 "events_url": "https://api.github.com/repos/damus-io/android/issues/100/events", 9 "html_url": "https://github.com/damus-io/android/issues/100", 10 "id": 2234209562, 11 "node_id": "I_kwDOKzWMZs6FK1Ua", 12 "number": 100, 13 "title": "Profile view: show if someone \"Follows You\"", 14 "user": { 15 "login": "alltheseas", 16 "id": 64376233, 17 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 18 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 19 "gravatar_id": "", 20 "url": "https://api.github.com/users/alltheseas", 21 "html_url": "https://github.com/alltheseas", 22 "followers_url": "https://api.github.com/users/alltheseas/followers", 23 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 24 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 25 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 26 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 27 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 28 "repos_url": "https://api.github.com/users/alltheseas/repos", 29 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 30 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 31 "type": "User", 32 "site_admin": false 33 }, 34 "labels": [ 35 { 36 "id": 6264778307, 37 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 38 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 39 "name": "enhancement", 40 "color": "a2eeef", 41 "default": true, 42 "description": "New feature or request" 43 }, 44 { 45 "id": 6752517308, 46 "node_id": "LA_kwDOKzWMZs8AAAABkns8vA", 47 "url": "https://api.github.com/repos/damus-io/android/labels/ui", 48 "name": "ui", 49 "color": "f9d0c4", 50 "default": false, 51 "description": "ui" 52 } 53 ], 54 "state": "open", 55 "locked": false, 56 "assignee": null, 57 "assignees": [], 58 "milestone": null, 59 "comments": 0, 60 "created_at": "2024-04-09T20:02:57Z", 61 "updated_at": "2024-04-09T20:02:57Z", 62 "closed_at": null, 63 "author_association": "CONTRIBUTOR", 64 "active_lock_reason": null, 65 "body": "![follows you (1)](https://github.com/damus-io/android/assets/64376233/93e8ea1b-d1b2-4110-8613-29d0834070b3)\r\n", 66 "reactions": { 67 "url": "https://api.github.com/repos/damus-io/android/issues/100/reactions", 68 "total_count": 0, 69 "+1": 0, 70 "-1": 0, 71 "laugh": 0, 72 "hooray": 0, 73 "confused": 0, 74 "heart": 0, 75 "rocket": 0, 76 "eyes": 0 77 }, 78 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/100/timeline", 79 "performed_via_github_app": null, 80 "state_reason": null 81 } 82 }, 83 { 84 "issue": { 85 "url": "https://api.github.com/repos/damus-io/android/issues/99", 86 "repository_url": "https://api.github.com/repos/damus-io/android", 87 "labels_url": "https://api.github.com/repos/damus-io/android/issues/99/labels{/name}", 88 "comments_url": "https://api.github.com/repos/damus-io/android/issues/99/comments", 89 "events_url": "https://api.github.com/repos/damus-io/android/issues/99/events", 90 "html_url": "https://github.com/damus-io/android/issues/99", 91 "id": 2234207513, 92 "node_id": "I_kwDOKzWMZs6FK00Z", 93 "number": 99, 94 "title": "Profile view: show if someone \"Follows You", 95 "user": { 96 "login": "alltheseas", 97 "id": 64376233, 98 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 99 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 100 "gravatar_id": "", 101 "url": "https://api.github.com/users/alltheseas", 102 "html_url": "https://github.com/alltheseas", 103 "followers_url": "https://api.github.com/users/alltheseas/followers", 104 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 105 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 106 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 107 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 108 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 109 "repos_url": "https://api.github.com/users/alltheseas/repos", 110 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 111 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 112 "type": "User", 113 "site_admin": false 114 }, 115 "labels": [ 116 { 117 "id": 6264778306, 118 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQg", 119 "url": "https://api.github.com/repos/damus-io/android/labels/duplicate", 120 "name": "duplicate", 121 "color": "cfd3d7", 122 "default": true, 123 "description": "This issue or pull request already exists" 124 } 125 ], 126 "state": "closed", 127 "locked": false, 128 "assignee": null, 129 "assignees": [], 130 "milestone": null, 131 "comments": 1, 132 "created_at": "2024-04-09T20:01:30Z", 133 "updated_at": "2024-04-09T20:03:37Z", 134 "closed_at": "2024-04-09T20:03:32Z", 135 "author_association": "CONTRIBUTOR", 136 "active_lock_reason": null, 137 "body": null, 138 "reactions": { 139 "url": "https://api.github.com/repos/damus-io/android/issues/99/reactions", 140 "total_count": 0, 141 "+1": 0, 142 "-1": 0, 143 "laugh": 0, 144 "hooray": 0, 145 "confused": 0, 146 "heart": 0, 147 "rocket": 0, 148 "eyes": 0 149 }, 150 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/99/timeline", 151 "performed_via_github_app": null, 152 "state_reason": "not_planned" 153 } 154 }, 155 { 156 "issue": { 157 "url": "https://api.github.com/repos/damus-io/android/issues/99", 158 "repository_url": "https://api.github.com/repos/damus-io/android", 159 "labels_url": "https://api.github.com/repos/damus-io/android/issues/99/labels{/name}", 160 "comments_url": "https://api.github.com/repos/damus-io/android/issues/99/comments", 161 "events_url": "https://api.github.com/repos/damus-io/android/issues/99/events", 162 "html_url": "https://github.com/damus-io/android/issues/99", 163 "id": 2234207513, 164 "node_id": "I_kwDOKzWMZs6FK00Z", 165 "number": 99, 166 "title": "Profile view: show if someone \"Follows You", 167 "user": { 168 "login": "alltheseas", 169 "id": 64376233, 170 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 171 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 172 "gravatar_id": "", 173 "url": "https://api.github.com/users/alltheseas", 174 "html_url": "https://github.com/alltheseas", 175 "followers_url": "https://api.github.com/users/alltheseas/followers", 176 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 177 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 178 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 179 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 180 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 181 "repos_url": "https://api.github.com/users/alltheseas/repos", 182 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 183 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 184 "type": "User", 185 "site_admin": false 186 }, 187 "labels": [ 188 { 189 "id": 6264778306, 190 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQg", 191 "url": "https://api.github.com/repos/damus-io/android/labels/duplicate", 192 "name": "duplicate", 193 "color": "cfd3d7", 194 "default": true, 195 "description": "This issue or pull request already exists" 196 } 197 ], 198 "state": "closed", 199 "locked": false, 200 "assignee": null, 201 "assignees": [], 202 "milestone": null, 203 "comments": 1, 204 "created_at": "2024-04-09T20:01:30Z", 205 "updated_at": "2024-04-09T20:03:37Z", 206 "closed_at": "2024-04-09T20:03:32Z", 207 "author_association": "CONTRIBUTOR", 208 "active_lock_reason": null, 209 "body": null, 210 "reactions": { 211 "url": "https://api.github.com/repos/damus-io/android/issues/99/reactions", 212 "total_count": 0, 213 "+1": 0, 214 "-1": 0, 215 "laugh": 0, 216 "hooray": 0, 217 "confused": 0, 218 "heart": 0, 219 "rocket": 0, 220 "eyes": 0 221 }, 222 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/99/timeline", 223 "performed_via_github_app": null, 224 "state_reason": "not_planned" 225 }, 226 "comment": { 227 "user": "alltheseas", 228 "created_at": "2024-04-09T20:03:32Z", 229 "updated_at": "2024-04-09T20:03:32Z", 230 "body": "duplicate" 231 } 232 }, 233 { 234 "issue": { 235 "url": "https://api.github.com/repos/damus-io/android/issues/98", 236 "repository_url": "https://api.github.com/repos/damus-io/android", 237 "labels_url": "https://api.github.com/repos/damus-io/android/issues/98/labels{/name}", 238 "comments_url": "https://api.github.com/repos/damus-io/android/issues/98/comments", 239 "events_url": "https://api.github.com/repos/damus-io/android/issues/98/events", 240 "html_url": "https://github.com/damus-io/android/issues/98", 241 "id": 2234194280, 242 "node_id": "I_kwDOKzWMZs6FKxlo", 243 "number": 98, 244 "title": "Onboarding flow", 245 "user": { 246 "login": "alltheseas", 247 "id": 64376233, 248 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 249 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 250 "gravatar_id": "", 251 "url": "https://api.github.com/users/alltheseas", 252 "html_url": "https://github.com/alltheseas", 253 "followers_url": "https://api.github.com/users/alltheseas/followers", 254 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 255 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 256 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 257 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 258 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 259 "repos_url": "https://api.github.com/users/alltheseas/repos", 260 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 261 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 262 "type": "User", 263 "site_admin": false 264 }, 265 "labels": [ 266 { 267 "id": 6778671627, 268 "node_id": "LA_kwDOKzWMZs8AAAABlApSCw", 269 "url": "https://api.github.com/repos/damus-io/android/labels/onboarding", 270 "name": "onboarding", 271 "color": "1A6B24", 272 "default": false, 273 "description": "" 274 } 275 ], 276 "state": "open", 277 "locked": false, 278 "assignee": null, 279 "assignees": [], 280 "milestone": null, 281 "comments": 0, 282 "created_at": "2024-04-09T19:51:36Z", 283 "updated_at": "2024-04-09T19:51:36Z", 284 "closed_at": null, 285 "author_association": "CONTRIBUTOR", 286 "active_lock_reason": null, 287 "body": "## related\r\n\r\n#70 \r\n#69 \r\n#3 \r\n#61 \r\n#2 ", 288 "reactions": { 289 "url": "https://api.github.com/repos/damus-io/android/issues/98/reactions", 290 "total_count": 0, 291 "+1": 0, 292 "-1": 0, 293 "laugh": 0, 294 "hooray": 0, 295 "confused": 0, 296 "heart": 0, 297 "rocket": 0, 298 "eyes": 0 299 }, 300 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/98/timeline", 301 "performed_via_github_app": null, 302 "state_reason": null 303 } 304 }, 305 { 306 "issue": { 307 "url": "https://api.github.com/repos/damus-io/android/issues/97", 308 "repository_url": "https://api.github.com/repos/damus-io/android", 309 "labels_url": "https://api.github.com/repos/damus-io/android/issues/97/labels{/name}", 310 "comments_url": "https://api.github.com/repos/damus-io/android/issues/97/comments", 311 "events_url": "https://api.github.com/repos/damus-io/android/issues/97/events", 312 "html_url": "https://github.com/damus-io/android/issues/97", 313 "id": 2234040687, 314 "node_id": "I_kwDOKzWMZs6FKMFv", 315 "number": 97, 316 "title": "wallet", 317 "user": { 318 "login": "alltheseas", 319 "id": 64376233, 320 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 321 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 322 "gravatar_id": "", 323 "url": "https://api.github.com/users/alltheseas", 324 "html_url": "https://github.com/alltheseas", 325 "followers_url": "https://api.github.com/users/alltheseas/followers", 326 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 327 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 328 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 329 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 330 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 331 "repos_url": "https://api.github.com/users/alltheseas/repos", 332 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 333 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 334 "type": "User", 335 "site_admin": false 336 }, 337 "labels": [ 338 { 339 "id": 6271232904, 340 "node_id": "LA_kwDOKzWMZs8AAAABdctriA", 341 "url": "https://api.github.com/repos/damus-io/android/labels/zaps", 342 "name": "zaps", 343 "color": "fef2c0", 344 "default": false, 345 "description": "" 346 }, 347 { 348 "id": 6271233688, 349 "node_id": "LA_kwDOKzWMZs8AAAABdctumA", 350 "url": "https://api.github.com/repos/damus-io/android/labels/commercialization", 351 "name": "commercialization", 352 "color": "DDD29F", 353 "default": false, 354 "description": "" 355 } 356 ], 357 "state": "open", 358 "locked": false, 359 "assignee": null, 360 "assignees": [], 361 "milestone": null, 362 "comments": 0, 363 "created_at": "2024-04-09T17:58:43Z", 364 "updated_at": "2024-04-09T17:58:43Z", 365 "closed_at": null, 366 "author_association": "CONTRIBUTOR", 367 "active_lock_reason": null, 368 "body": "TBC\r\n\r\n### related\r\n\r\nfedimint #59 \r\nNWC #21 \r\nnote zaps #13 \r\n", 369 "reactions": { 370 "url": "https://api.github.com/repos/damus-io/android/issues/97/reactions", 371 "total_count": 0, 372 "+1": 0, 373 "-1": 0, 374 "laugh": 0, 375 "hooray": 0, 376 "confused": 0, 377 "heart": 0, 378 "rocket": 0, 379 "eyes": 0 380 }, 381 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/97/timeline", 382 "performed_via_github_app": null, 383 "state_reason": null 384 } 385 }, 386 { 387 "issue": { 388 "url": "https://api.github.com/repos/damus-io/android/issues/96", 389 "repository_url": "https://api.github.com/repos/damus-io/android", 390 "labels_url": "https://api.github.com/repos/damus-io/android/issues/96/labels{/name}", 391 "comments_url": "https://api.github.com/repos/damus-io/android/issues/96/comments", 392 "events_url": "https://api.github.com/repos/damus-io/android/issues/96/events", 393 "html_url": "https://github.com/damus-io/android/issues/96", 394 "id": 2233917017, 395 "node_id": "I_kwDOKzWMZs6FJt5Z", 396 "number": 96, 397 "title": "Set up localization system for translation of strings to non-english languages", 398 "user": { 399 "login": "alltheseas", 400 "id": 64376233, 401 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 402 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 403 "gravatar_id": "", 404 "url": "https://api.github.com/users/alltheseas", 405 "html_url": "https://github.com/alltheseas", 406 "followers_url": "https://api.github.com/users/alltheseas/followers", 407 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 408 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 409 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 410 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 411 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 412 "repos_url": "https://api.github.com/users/alltheseas/repos", 413 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 414 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 415 "type": "User", 416 "site_admin": false 417 }, 418 "labels": [ 419 { 420 "id": 6774995244, 421 "node_id": "LA_kwDOKzWMZs8AAAABk9I5LA", 422 "url": "https://api.github.com/repos/damus-io/android/labels/localization", 423 "name": "localization", 424 "color": "0F8978", 425 "default": false, 426 "description": "" 427 } 428 ], 429 "state": "open", 430 "locked": false, 431 "assignee": null, 432 "assignees": [], 433 "milestone": null, 434 "comments": 0, 435 "created_at": "2024-04-09T17:06:21Z", 436 "updated_at": "2024-04-09T17:06:21Z", 437 "closed_at": null, 438 "author_association": "CONTRIBUTOR", 439 "active_lock_reason": null, 440 "body": null, 441 "reactions": { 442 "url": "https://api.github.com/repos/damus-io/android/issues/96/reactions", 443 "total_count": 0, 444 "+1": 0, 445 "-1": 0, 446 "laugh": 0, 447 "hooray": 0, 448 "confused": 0, 449 "heart": 0, 450 "rocket": 0, 451 "eyes": 0 452 }, 453 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/96/timeline", 454 "performed_via_github_app": null, 455 "state_reason": null 456 } 457 }, 458 { 459 "issue": { 460 "url": "https://api.github.com/repos/damus-io/android/issues/95", 461 "repository_url": "https://api.github.com/repos/damus-io/android", 462 "labels_url": "https://api.github.com/repos/damus-io/android/issues/95/labels{/name}", 463 "comments_url": "https://api.github.com/repos/damus-io/android/issues/95/comments", 464 "events_url": "https://api.github.com/repos/damus-io/android/issues/95/events", 465 "html_url": "https://github.com/damus-io/android/issues/95", 466 "id": 2233915584, 467 "node_id": "I_kwDOKzWMZs6FJtjA", 468 "number": 95, 469 "title": "DeepL auto-translate for purple subscribers", 470 "user": { 471 "login": "alltheseas", 472 "id": 64376233, 473 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 474 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 475 "gravatar_id": "", 476 "url": "https://api.github.com/users/alltheseas", 477 "html_url": "https://github.com/alltheseas", 478 "followers_url": "https://api.github.com/users/alltheseas/followers", 479 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 480 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 481 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 482 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 483 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 484 "repos_url": "https://api.github.com/users/alltheseas/repos", 485 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 486 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 487 "type": "User", 488 "site_admin": false 489 }, 490 "labels": [ 491 { 492 "id": 6530754378, 493 "node_id": "LA_kwDOKzWMZs8AAAABhUNnSg", 494 "url": "https://api.github.com/repos/damus-io/android/labels/purple", 495 "name": "purple", 496 "color": "5319E7", 497 "default": false, 498 "description": "" 499 } 500 ], 501 "state": "open", 502 "locked": false, 503 "assignee": null, 504 "assignees": [], 505 "milestone": null, 506 "comments": 0, 507 "created_at": "2024-04-09T17:05:51Z", 508 "updated_at": "2024-04-09T17:05:51Z", 509 "closed_at": null, 510 "author_association": "CONTRIBUTOR", 511 "active_lock_reason": null, 512 "body": "in app subscription #17 \r\nrecurring subscription #66 \r\nwebsite sub #56 ", 513 "reactions": { 514 "url": "https://api.github.com/repos/damus-io/android/issues/95/reactions", 515 "total_count": 0, 516 "+1": 0, 517 "-1": 0, 518 "laugh": 0, 519 "hooray": 0, 520 "confused": 0, 521 "heart": 0, 522 "rocket": 0, 523 "eyes": 0 524 }, 525 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/95/timeline", 526 "performed_via_github_app": null, 527 "state_reason": null 528 } 529 }, 530 { 531 "issue": { 532 "url": "https://api.github.com/repos/damus-io/android/issues/94", 533 "repository_url": "https://api.github.com/repos/damus-io/android", 534 "labels_url": "https://api.github.com/repos/damus-io/android/issues/94/labels{/name}", 535 "comments_url": "https://api.github.com/repos/damus-io/android/issues/94/comments", 536 "events_url": "https://api.github.com/repos/damus-io/android/issues/94/events", 537 "html_url": "https://github.com/damus-io/android/issues/94", 538 "id": 2233912406, 539 "node_id": "I_kwDOKzWMZs6FJsxW", 540 "number": 94, 541 "title": "log in with npub / demo mode / viewer mode", 542 "user": { 543 "login": "alltheseas", 544 "id": 64376233, 545 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 546 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 547 "gravatar_id": "", 548 "url": "https://api.github.com/users/alltheseas", 549 "html_url": "https://github.com/alltheseas", 550 "followers_url": "https://api.github.com/users/alltheseas/followers", 551 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 552 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 553 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 554 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 555 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 556 "repos_url": "https://api.github.com/users/alltheseas/repos", 557 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 558 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 559 "type": "User", 560 "site_admin": false 561 }, 562 "labels": [ 563 { 564 "id": 6264778307, 565 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 566 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 567 "name": "enhancement", 568 "color": "a2eeef", 569 "default": true, 570 "description": "New feature or request" 571 } 572 ], 573 "state": "open", 574 "locked": false, 575 "assignee": null, 576 "assignees": [], 577 "milestone": null, 578 "comments": 0, 579 "created_at": "2024-04-09T17:04:35Z", 580 "updated_at": "2024-04-09T17:04:35Z", 581 "closed_at": null, 582 "author_association": "CONTRIBUTOR", 583 "active_lock_reason": null, 584 "body": "See https://github.com/damus-io/damus/issues/1153", 585 "reactions": { 586 "url": "https://api.github.com/repos/damus-io/android/issues/94/reactions", 587 "total_count": 0, 588 "+1": 0, 589 "-1": 0, 590 "laugh": 0, 591 "hooray": 0, 592 "confused": 0, 593 "heart": 0, 594 "rocket": 0, 595 "eyes": 0 596 }, 597 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/94/timeline", 598 "performed_via_github_app": null, 599 "state_reason": null 600 } 601 }, 602 { 603 "issue": { 604 "url": "https://api.github.com/repos/damus-io/android/issues/93", 605 "repository_url": "https://api.github.com/repos/damus-io/android", 606 "labels_url": "https://api.github.com/repos/damus-io/android/issues/93/labels{/name}", 607 "comments_url": "https://api.github.com/repos/damus-io/android/issues/93/comments", 608 "events_url": "https://api.github.com/repos/damus-io/android/issues/93/events", 609 "html_url": "https://github.com/damus-io/android/issues/93", 610 "id": 2233909841, 611 "node_id": "I_kwDOKzWMZs6FJsJR", 612 "number": 93, 613 "title": "Show me my nsec ", 614 "user": { 615 "login": "alltheseas", 616 "id": 64376233, 617 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 618 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 619 "gravatar_id": "", 620 "url": "https://api.github.com/users/alltheseas", 621 "html_url": "https://github.com/alltheseas", 622 "followers_url": "https://api.github.com/users/alltheseas/followers", 623 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 624 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 625 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 626 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 627 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 628 "repos_url": "https://api.github.com/users/alltheseas/repos", 629 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 630 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 631 "type": "User", 632 "site_admin": false 633 }, 634 "labels": [ 635 { 636 "id": 6264778307, 637 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 638 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 639 "name": "enhancement", 640 "color": "a2eeef", 641 "default": true, 642 "description": "New feature or request" 643 } 644 ], 645 "state": "open", 646 "locked": false, 647 "assignee": null, 648 "assignees": [], 649 "milestone": { 650 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 651 "html_url": "https://github.com/damus-io/android/milestone/1", 652 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 653 "id": 10252427, 654 "node_id": "MI_kwDOKzWMZs4AnHCL", 655 "number": 1, 656 "title": "0.1 Android PRAGUE", 657 "description": "", 658 "creator": { 659 "login": "alltheseas", 660 "id": 64376233, 661 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 662 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 663 "gravatar_id": "", 664 "url": "https://api.github.com/users/alltheseas", 665 "html_url": "https://github.com/alltheseas", 666 "followers_url": "https://api.github.com/users/alltheseas/followers", 667 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 668 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 669 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 670 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 671 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 672 "repos_url": "https://api.github.com/users/alltheseas/repos", 673 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 674 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 675 "type": "User", 676 "site_admin": false 677 }, 678 "open_issues": 22, 679 "closed_issues": 3, 680 "state": "open", 681 "created_at": "2023-11-30T19:39:43Z", 682 "updated_at": "2024-04-09T19:49:56Z", 683 "due_on": "2024-06-12T07:00:00Z", 684 "closed_at": null 685 }, 686 "comments": 0, 687 "created_at": "2024-04-09T17:03:36Z", 688 "updated_at": "2024-04-09T17:03:36Z", 689 "closed_at": null, 690 "author_association": "CONTRIBUTOR", 691 "active_lock_reason": null, 692 "body": "### related\r\n\r\nsettings menu #92 ", 693 "reactions": { 694 "url": "https://api.github.com/repos/damus-io/android/issues/93/reactions", 695 "total_count": 0, 696 "+1": 0, 697 "-1": 0, 698 "laugh": 0, 699 "hooray": 0, 700 "confused": 0, 701 "heart": 0, 702 "rocket": 0, 703 "eyes": 0 704 }, 705 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/93/timeline", 706 "performed_via_github_app": null, 707 "state_reason": null 708 } 709 }, 710 { 711 "issue": { 712 "url": "https://api.github.com/repos/damus-io/android/issues/92", 713 "repository_url": "https://api.github.com/repos/damus-io/android", 714 "labels_url": "https://api.github.com/repos/damus-io/android/issues/92/labels{/name}", 715 "comments_url": "https://api.github.com/repos/damus-io/android/issues/92/comments", 716 "events_url": "https://api.github.com/repos/damus-io/android/issues/92/events", 717 "html_url": "https://github.com/damus-io/android/issues/92", 718 "id": 2233908470, 719 "node_id": "I_kwDOKzWMZs6FJrz2", 720 "number": 92, 721 "title": "settings menu", 722 "user": { 723 "login": "alltheseas", 724 "id": 64376233, 725 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 726 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 727 "gravatar_id": "", 728 "url": "https://api.github.com/users/alltheseas", 729 "html_url": "https://github.com/alltheseas", 730 "followers_url": "https://api.github.com/users/alltheseas/followers", 731 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 732 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 733 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 734 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 735 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 736 "repos_url": "https://api.github.com/users/alltheseas/repos", 737 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 738 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 739 "type": "User", 740 "site_admin": false 741 }, 742 "labels": [ 743 { 744 "id": 6264778307, 745 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 746 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 747 "name": "enhancement", 748 "color": "a2eeef", 749 "default": true, 750 "description": "New feature or request" 751 } 752 ], 753 "state": "open", 754 "locked": false, 755 "assignee": null, 756 "assignees": [], 757 "milestone": { 758 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 759 "html_url": "https://github.com/damus-io/android/milestone/1", 760 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 761 "id": 10252427, 762 "node_id": "MI_kwDOKzWMZs4AnHCL", 763 "number": 1, 764 "title": "0.1 Android PRAGUE", 765 "description": "", 766 "creator": { 767 "login": "alltheseas", 768 "id": 64376233, 769 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 770 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 771 "gravatar_id": "", 772 "url": "https://api.github.com/users/alltheseas", 773 "html_url": "https://github.com/alltheseas", 774 "followers_url": "https://api.github.com/users/alltheseas/followers", 775 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 776 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 777 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 778 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 779 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 780 "repos_url": "https://api.github.com/users/alltheseas/repos", 781 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 782 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 783 "type": "User", 784 "site_admin": false 785 }, 786 "open_issues": 22, 787 "closed_issues": 3, 788 "state": "open", 789 "created_at": "2023-11-30T19:39:43Z", 790 "updated_at": "2024-04-09T19:49:56Z", 791 "due_on": "2024-06-12T07:00:00Z", 792 "closed_at": null 793 }, 794 "comments": 0, 795 "created_at": "2024-04-09T17:03:07Z", 796 "updated_at": "2024-04-09T17:03:08Z", 797 "closed_at": null, 798 "author_association": "CONTRIBUTOR", 799 "active_lock_reason": null, 800 "body": "### related to\r\n\r\nnav #81 \r\nlocal notification settings #40 \r\n", 801 "reactions": { 802 "url": "https://api.github.com/repos/damus-io/android/issues/92/reactions", 803 "total_count": 0, 804 "+1": 0, 805 "-1": 0, 806 "laugh": 0, 807 "hooray": 0, 808 "confused": 0, 809 "heart": 0, 810 "rocket": 0, 811 "eyes": 0 812 }, 813 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/92/timeline", 814 "performed_via_github_app": null, 815 "state_reason": null 816 } 817 }, 818 { 819 "issue": { 820 "url": "https://api.github.com/repos/damus-io/android/issues/91", 821 "repository_url": "https://api.github.com/repos/damus-io/android", 822 "labels_url": "https://api.github.com/repos/damus-io/android/issues/91/labels{/name}", 823 "comments_url": "https://api.github.com/repos/damus-io/android/issues/91/comments", 824 "events_url": "https://api.github.com/repos/damus-io/android/issues/91/events", 825 "html_url": "https://github.com/damus-io/android/issues/91", 826 "id": 2233900184, 827 "node_id": "I_kwDOKzWMZs6FJpyY", 828 "number": 91, 829 "title": "onlyzaps", 830 "user": { 831 "login": "alltheseas", 832 "id": 64376233, 833 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 834 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 835 "gravatar_id": "", 836 "url": "https://api.github.com/users/alltheseas", 837 "html_url": "https://github.com/alltheseas", 838 "followers_url": "https://api.github.com/users/alltheseas/followers", 839 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 840 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 841 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 842 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 843 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 844 "repos_url": "https://api.github.com/users/alltheseas/repos", 845 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 846 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 847 "type": "User", 848 "site_admin": false 849 }, 850 "labels": [ 851 { 852 "id": 6264778307, 853 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 854 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 855 "name": "enhancement", 856 "color": "a2eeef", 857 "default": true, 858 "description": "New feature or request" 859 }, 860 { 861 "id": 6271232904, 862 "node_id": "LA_kwDOKzWMZs8AAAABdctriA", 863 "url": "https://api.github.com/repos/damus-io/android/labels/zaps", 864 "name": "zaps", 865 "color": "fef2c0", 866 "default": false, 867 "description": "" 868 } 869 ], 870 "state": "open", 871 "locked": false, 872 "assignee": null, 873 "assignees": [], 874 "milestone": null, 875 "comments": 0, 876 "created_at": "2024-04-09T17:00:20Z", 877 "updated_at": "2024-04-09T17:00:38Z", 878 "closed_at": null, 879 "author_association": "CONTRIBUTOR", 880 "active_lock_reason": null, 881 "body": "onlyzaps disables ability to react, and see reactions\r\n\r\n### related\r\n\r\n#90 ", 882 "reactions": { 883 "url": "https://api.github.com/repos/damus-io/android/issues/91/reactions", 884 "total_count": 0, 885 "+1": 0, 886 "-1": 0, 887 "laugh": 0, 888 "hooray": 0, 889 "confused": 0, 890 "heart": 0, 891 "rocket": 0, 892 "eyes": 0 893 }, 894 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/91/timeline", 895 "performed_via_github_app": null, 896 "state_reason": null 897 } 898 }, 899 { 900 "issue": { 901 "url": "https://api.github.com/repos/damus-io/android/issues/90", 902 "repository_url": "https://api.github.com/repos/damus-io/android", 903 "labels_url": "https://api.github.com/repos/damus-io/android/issues/90/labels{/name}", 904 "comments_url": "https://api.github.com/repos/damus-io/android/issues/90/comments", 905 "events_url": "https://api.github.com/repos/damus-io/android/issues/90/events", 906 "html_url": "https://github.com/damus-io/android/issues/90", 907 "id": 2233898842, 908 "node_id": "I_kwDOKzWMZs6FJpda", 909 "number": 90, 910 "title": "reaction / heart / shaka / like", 911 "user": { 912 "login": "alltheseas", 913 "id": 64376233, 914 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 915 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 916 "gravatar_id": "", 917 "url": "https://api.github.com/users/alltheseas", 918 "html_url": "https://github.com/alltheseas", 919 "followers_url": "https://api.github.com/users/alltheseas/followers", 920 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 921 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 922 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 923 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 924 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 925 "repos_url": "https://api.github.com/users/alltheseas/repos", 926 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 927 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 928 "type": "User", 929 "site_admin": false 930 }, 931 "labels": [ 932 { 933 "id": 6264778307, 934 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 935 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 936 "name": "enhancement", 937 "color": "a2eeef", 938 "default": true, 939 "description": "New feature or request" 940 } 941 ], 942 "state": "open", 943 "locked": false, 944 "assignee": null, 945 "assignees": [], 946 "milestone": null, 947 "comments": 0, 948 "created_at": "2024-04-09T16:59:49Z", 949 "updated_at": "2024-04-09T16:59:49Z", 950 "closed_at": null, 951 "author_association": "CONTRIBUTOR", 952 "active_lock_reason": null, 953 "body": null, 954 "reactions": { 955 "url": "https://api.github.com/repos/damus-io/android/issues/90/reactions", 956 "total_count": 0, 957 "+1": 0, 958 "-1": 0, 959 "laugh": 0, 960 "hooray": 0, 961 "confused": 0, 962 "heart": 0, 963 "rocket": 0, 964 "eyes": 0 965 }, 966 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/90/timeline", 967 "performed_via_github_app": null, 968 "state_reason": null 969 } 970 }, 971 { 972 "issue": { 973 "url": "https://api.github.com/repos/damus-io/android/issues/89", 974 "repository_url": "https://api.github.com/repos/damus-io/android", 975 "labels_url": "https://api.github.com/repos/damus-io/android/issues/89/labels{/name}", 976 "comments_url": "https://api.github.com/repos/damus-io/android/issues/89/comments", 977 "events_url": "https://api.github.com/repos/damus-io/android/issues/89/events", 978 "html_url": "https://github.com/damus-io/android/issues/89", 979 "id": 2233892910, 980 "node_id": "I_kwDOKzWMZs6FJoAu", 981 "number": 89, 982 "title": "dev mode", 983 "user": { 984 "login": "alltheseas", 985 "id": 64376233, 986 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 987 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 988 "gravatar_id": "", 989 "url": "https://api.github.com/users/alltheseas", 990 "html_url": "https://github.com/alltheseas", 991 "followers_url": "https://api.github.com/users/alltheseas/followers", 992 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 993 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 994 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 995 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 996 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 997 "repos_url": "https://api.github.com/users/alltheseas/repos", 998 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 999 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1000 "type": "User", 1001 "site_admin": false 1002 }, 1003 "labels": [ 1004 { 1005 "id": 6339173748, 1006 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 1007 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 1008 "name": "technical", 1009 "color": "e99695", 1010 "default": false, 1011 "description": "" 1012 } 1013 ], 1014 "state": "open", 1015 "locked": false, 1016 "assignee": null, 1017 "assignees": [], 1018 "milestone": null, 1019 "comments": 0, 1020 "created_at": "2024-04-09T16:56:47Z", 1021 "updated_at": "2024-04-09T16:57:02Z", 1022 "closed_at": null, 1023 "author_association": "CONTRIBUTOR", 1024 "active_lock_reason": null, 1025 "body": "-dev mode hides nerdy, and technical things such as: relay logs, always trigger onboarding on startup, and other obscure settings\r\n-off by default", 1026 "reactions": { 1027 "url": "https://api.github.com/repos/damus-io/android/issues/89/reactions", 1028 "total_count": 0, 1029 "+1": 0, 1030 "-1": 0, 1031 "laugh": 0, 1032 "hooray": 0, 1033 "confused": 0, 1034 "heart": 0, 1035 "rocket": 0, 1036 "eyes": 0 1037 }, 1038 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/89/timeline", 1039 "performed_via_github_app": null, 1040 "state_reason": null 1041 } 1042 }, 1043 { 1044 "issue": { 1045 "url": "https://api.github.com/repos/damus-io/android/issues/88", 1046 "repository_url": "https://api.github.com/repos/damus-io/android", 1047 "labels_url": "https://api.github.com/repos/damus-io/android/issues/88/labels{/name}", 1048 "comments_url": "https://api.github.com/repos/damus-io/android/issues/88/comments", 1049 "events_url": "https://api.github.com/repos/damus-io/android/issues/88/events", 1050 "html_url": "https://github.com/damus-io/android/issues/88", 1051 "id": 2233889999, 1052 "node_id": "I_kwDOKzWMZs6FJnTP", 1053 "number": 88, 1054 "title": "share profile", 1055 "user": { 1056 "login": "alltheseas", 1057 "id": 64376233, 1058 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 1059 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 1060 "gravatar_id": "", 1061 "url": "https://api.github.com/users/alltheseas", 1062 "html_url": "https://github.com/alltheseas", 1063 "followers_url": "https://api.github.com/users/alltheseas/followers", 1064 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 1065 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 1066 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 1067 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 1068 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 1069 "repos_url": "https://api.github.com/users/alltheseas/repos", 1070 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 1071 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1072 "type": "User", 1073 "site_admin": false 1074 }, 1075 "labels": [ 1076 { 1077 "id": 6802506069, 1078 "node_id": "LA_kwDOKzWMZs8AAAABlXYBVQ", 1079 "url": "https://api.github.com/repos/damus-io/android/labels/search", 1080 "name": "search", 1081 "color": "B9301C", 1082 "default": false, 1083 "description": "" 1084 } 1085 ], 1086 "state": "open", 1087 "locked": false, 1088 "assignee": null, 1089 "assignees": [], 1090 "milestone": null, 1091 "comments": 0, 1092 "created_at": "2024-04-09T16:55:04Z", 1093 "updated_at": "2024-04-09T16:55:04Z", 1094 "closed_at": null, 1095 "author_association": "CONTRIBUTOR", 1096 "active_lock_reason": null, 1097 "body": "### related to\r\n\r\n#25 ", 1098 "reactions": { 1099 "url": "https://api.github.com/repos/damus-io/android/issues/88/reactions", 1100 "total_count": 0, 1101 "+1": 0, 1102 "-1": 0, 1103 "laugh": 0, 1104 "hooray": 0, 1105 "confused": 0, 1106 "heart": 0, 1107 "rocket": 0, 1108 "eyes": 0 1109 }, 1110 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/88/timeline", 1111 "performed_via_github_app": null, 1112 "state_reason": null 1113 } 1114 }, 1115 { 1116 "issue": { 1117 "url": "https://api.github.com/repos/damus-io/android/issues/87", 1118 "repository_url": "https://api.github.com/repos/damus-io/android", 1119 "labels_url": "https://api.github.com/repos/damus-io/android/issues/87/labels{/name}", 1120 "comments_url": "https://api.github.com/repos/damus-io/android/issues/87/comments", 1121 "events_url": "https://api.github.com/repos/damus-io/android/issues/87/events", 1122 "html_url": "https://github.com/damus-io/android/issues/87", 1123 "id": 2233885968, 1124 "node_id": "I_kwDOKzWMZs6FJmUQ", 1125 "number": 87, 1126 "title": "prevent public paste of nsec", 1127 "user": { 1128 "login": "alltheseas", 1129 "id": 64376233, 1130 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 1131 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 1132 "gravatar_id": "", 1133 "url": "https://api.github.com/users/alltheseas", 1134 "html_url": "https://github.com/alltheseas", 1135 "followers_url": "https://api.github.com/users/alltheseas/followers", 1136 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 1137 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 1138 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 1139 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 1140 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 1141 "repos_url": "https://api.github.com/users/alltheseas/repos", 1142 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 1143 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1144 "type": "User", 1145 "site_admin": false 1146 }, 1147 "labels": [ 1148 { 1149 "id": 6264778307, 1150 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 1151 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 1152 "name": "enhancement", 1153 "color": "a2eeef", 1154 "default": true, 1155 "description": "New feature or request" 1156 } 1157 ], 1158 "state": "open", 1159 "locked": false, 1160 "assignee": null, 1161 "assignees": [], 1162 "milestone": null, 1163 "comments": 0, 1164 "created_at": "2024-04-09T16:52:39Z", 1165 "updated_at": "2024-04-09T16:52:45Z", 1166 "closed_at": null, 1167 "author_association": "CONTRIBUTOR", 1168 "active_lock_reason": null, 1169 "body": "## user story\r\n\r\nAs a Damus android user, I would like Damus to guardrail me from pasting my nsec (instead of my npub) by accident, so that I don't inadvertently share my keys with everyone on nostr. \r\n\r\n### acceptance criteria\r\n\r\n1. Damus detects if user pastes nsec123 in their note\r\n2. If nsec is detected, replace instead with npub", 1170 "reactions": { 1171 "url": "https://api.github.com/repos/damus-io/android/issues/87/reactions", 1172 "total_count": 0, 1173 "+1": 0, 1174 "-1": 0, 1175 "laugh": 0, 1176 "hooray": 0, 1177 "confused": 0, 1178 "heart": 0, 1179 "rocket": 0, 1180 "eyes": 0 1181 }, 1182 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/87/timeline", 1183 "performed_via_github_app": null, 1184 "state_reason": null 1185 } 1186 }, 1187 { 1188 "issue": { 1189 "url": "https://api.github.com/repos/damus-io/android/issues/86", 1190 "repository_url": "https://api.github.com/repos/damus-io/android", 1191 "labels_url": "https://api.github.com/repos/damus-io/android/issues/86/labels{/name}", 1192 "comments_url": "https://api.github.com/repos/damus-io/android/issues/86/comments", 1193 "events_url": "https://api.github.com/repos/damus-io/android/issues/86/events", 1194 "html_url": "https://github.com/damus-io/android/issues/86", 1195 "id": 2233880991, 1196 "node_id": "I_kwDOKzWMZs6FJlGf", 1197 "number": 86, 1198 "title": "search for noteID", 1199 "user": { 1200 "login": "alltheseas", 1201 "id": 64376233, 1202 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 1203 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 1204 "gravatar_id": "", 1205 "url": "https://api.github.com/users/alltheseas", 1206 "html_url": "https://github.com/alltheseas", 1207 "followers_url": "https://api.github.com/users/alltheseas/followers", 1208 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 1209 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 1210 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 1211 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 1212 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 1213 "repos_url": "https://api.github.com/users/alltheseas/repos", 1214 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 1215 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1216 "type": "User", 1217 "site_admin": false 1218 }, 1219 "labels": [ 1220 { 1221 "id": 6802506069, 1222 "node_id": "LA_kwDOKzWMZs8AAAABlXYBVQ", 1223 "url": "https://api.github.com/repos/damus-io/android/labels/search", 1224 "name": "search", 1225 "color": "B9301C", 1226 "default": false, 1227 "description": "" 1228 } 1229 ], 1230 "state": "open", 1231 "locked": false, 1232 "assignee": null, 1233 "assignees": [], 1234 "milestone": { 1235 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 1236 "html_url": "https://github.com/damus-io/android/milestone/1", 1237 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 1238 "id": 10252427, 1239 "node_id": "MI_kwDOKzWMZs4AnHCL", 1240 "number": 1, 1241 "title": "0.1 Android PRAGUE", 1242 "description": "", 1243 "creator": { 1244 "login": "alltheseas", 1245 "id": 64376233, 1246 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 1247 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 1248 "gravatar_id": "", 1249 "url": "https://api.github.com/users/alltheseas", 1250 "html_url": "https://github.com/alltheseas", 1251 "followers_url": "https://api.github.com/users/alltheseas/followers", 1252 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 1253 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 1254 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 1255 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 1256 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 1257 "repos_url": "https://api.github.com/users/alltheseas/repos", 1258 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 1259 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1260 "type": "User", 1261 "site_admin": false 1262 }, 1263 "open_issues": 22, 1264 "closed_issues": 3, 1265 "state": "open", 1266 "created_at": "2023-11-30T19:39:43Z", 1267 "updated_at": "2024-04-09T19:49:56Z", 1268 "due_on": "2024-06-12T07:00:00Z", 1269 "closed_at": null 1270 }, 1271 "comments": 0, 1272 "created_at": "2024-04-09T16:49:32Z", 1273 "updated_at": "2024-04-09T16:51:02Z", 1274 "closed_at": null, 1275 "author_association": "CONTRIBUTOR", 1276 "active_lock_reason": null, 1277 "body": null, 1278 "reactions": { 1279 "url": "https://api.github.com/repos/damus-io/android/issues/86/reactions", 1280 "total_count": 0, 1281 "+1": 0, 1282 "-1": 0, 1283 "laugh": 0, 1284 "hooray": 0, 1285 "confused": 0, 1286 "heart": 0, 1287 "rocket": 0, 1288 "eyes": 0 1289 }, 1290 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/86/timeline", 1291 "performed_via_github_app": null, 1292 "state_reason": null 1293 } 1294 }, 1295 { 1296 "issue": { 1297 "url": "https://api.github.com/repos/damus-io/android/issues/85", 1298 "repository_url": "https://api.github.com/repos/damus-io/android", 1299 "labels_url": "https://api.github.com/repos/damus-io/android/issues/85/labels{/name}", 1300 "comments_url": "https://api.github.com/repos/damus-io/android/issues/85/comments", 1301 "events_url": "https://api.github.com/repos/damus-io/android/issues/85/events", 1302 "html_url": "https://github.com/damus-io/android/issues/85", 1303 "id": 2233865233, 1304 "node_id": "I_kwDOKzWMZs6FJhQR", 1305 "number": 85, 1306 "title": "search for hashtag", 1307 "user": { 1308 "login": "alltheseas", 1309 "id": 64376233, 1310 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 1311 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 1312 "gravatar_id": "", 1313 "url": "https://api.github.com/users/alltheseas", 1314 "html_url": "https://github.com/alltheseas", 1315 "followers_url": "https://api.github.com/users/alltheseas/followers", 1316 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 1317 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 1318 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 1319 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 1320 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 1321 "repos_url": "https://api.github.com/users/alltheseas/repos", 1322 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 1323 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1324 "type": "User", 1325 "site_admin": false 1326 }, 1327 "labels": [ 1328 { 1329 "id": 6802506069, 1330 "node_id": "LA_kwDOKzWMZs8AAAABlXYBVQ", 1331 "url": "https://api.github.com/repos/damus-io/android/labels/search", 1332 "name": "search", 1333 "color": "B9301C", 1334 "default": false, 1335 "description": "" 1336 }, 1337 { 1338 "id": 6802511553, 1339 "node_id": "LA_kwDOKzWMZs8AAAABlXYWwQ", 1340 "url": "https://api.github.com/repos/damus-io/android/labels/hashtag", 1341 "name": "hashtag", 1342 "color": "F9662C", 1343 "default": false, 1344 "description": "" 1345 } 1346 ], 1347 "state": "open", 1348 "locked": false, 1349 "assignee": null, 1350 "assignees": [], 1351 "milestone": null, 1352 "comments": 0, 1353 "created_at": "2024-04-09T16:41:22Z", 1354 "updated_at": "2024-04-09T16:41:22Z", 1355 "closed_at": null, 1356 "author_association": "CONTRIBUTOR", 1357 "active_lock_reason": null, 1358 "body": null, 1359 "reactions": { 1360 "url": "https://api.github.com/repos/damus-io/android/issues/85/reactions", 1361 "total_count": 0, 1362 "+1": 0, 1363 "-1": 0, 1364 "laugh": 0, 1365 "hooray": 0, 1366 "confused": 0, 1367 "heart": 0, 1368 "rocket": 0, 1369 "eyes": 0 1370 }, 1371 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/85/timeline", 1372 "performed_via_github_app": null, 1373 "state_reason": null 1374 } 1375 }, 1376 { 1377 "issue": { 1378 "url": "https://api.github.com/repos/damus-io/android/issues/84", 1379 "repository_url": "https://api.github.com/repos/damus-io/android", 1380 "labels_url": "https://api.github.com/repos/damus-io/android/issues/84/labels{/name}", 1381 "comments_url": "https://api.github.com/repos/damus-io/android/issues/84/comments", 1382 "events_url": "https://api.github.com/repos/damus-io/android/issues/84/events", 1383 "html_url": "https://github.com/damus-io/android/issues/84", 1384 "id": 2233864403, 1385 "node_id": "I_kwDOKzWMZs6FJhDT", 1386 "number": 84, 1387 "title": "search for phrase (more than one keyword)", 1388 "user": { 1389 "login": "alltheseas", 1390 "id": 64376233, 1391 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 1392 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 1393 "gravatar_id": "", 1394 "url": "https://api.github.com/users/alltheseas", 1395 "html_url": "https://github.com/alltheseas", 1396 "followers_url": "https://api.github.com/users/alltheseas/followers", 1397 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 1398 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 1399 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 1400 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 1401 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 1402 "repos_url": "https://api.github.com/users/alltheseas/repos", 1403 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 1404 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1405 "type": "User", 1406 "site_admin": false 1407 }, 1408 "labels": [ 1409 { 1410 "id": 6802506069, 1411 "node_id": "LA_kwDOKzWMZs8AAAABlXYBVQ", 1412 "url": "https://api.github.com/repos/damus-io/android/labels/search", 1413 "name": "search", 1414 "color": "B9301C", 1415 "default": false, 1416 "description": "" 1417 } 1418 ], 1419 "state": "open", 1420 "locked": false, 1421 "assignee": null, 1422 "assignees": [], 1423 "milestone": null, 1424 "comments": 0, 1425 "created_at": "2024-04-09T16:40:49Z", 1426 "updated_at": "2024-04-09T16:40:49Z", 1427 "closed_at": null, 1428 "author_association": "CONTRIBUTOR", 1429 "active_lock_reason": null, 1430 "body": null, 1431 "reactions": { 1432 "url": "https://api.github.com/repos/damus-io/android/issues/84/reactions", 1433 "total_count": 0, 1434 "+1": 0, 1435 "-1": 0, 1436 "laugh": 0, 1437 "hooray": 0, 1438 "confused": 0, 1439 "heart": 0, 1440 "rocket": 0, 1441 "eyes": 0 1442 }, 1443 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/84/timeline", 1444 "performed_via_github_app": null, 1445 "state_reason": null 1446 } 1447 }, 1448 { 1449 "issue": { 1450 "url": "https://api.github.com/repos/damus-io/android/issues/83", 1451 "repository_url": "https://api.github.com/repos/damus-io/android", 1452 "labels_url": "https://api.github.com/repos/damus-io/android/issues/83/labels{/name}", 1453 "comments_url": "https://api.github.com/repos/damus-io/android/issues/83/comments", 1454 "events_url": "https://api.github.com/repos/damus-io/android/issues/83/events", 1455 "html_url": "https://github.com/damus-io/android/issues/83", 1456 "id": 2233863783, 1457 "node_id": "I_kwDOKzWMZs6FJg5n", 1458 "number": 83, 1459 "title": "search for single keyword", 1460 "user": { 1461 "login": "alltheseas", 1462 "id": 64376233, 1463 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 1464 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 1465 "gravatar_id": "", 1466 "url": "https://api.github.com/users/alltheseas", 1467 "html_url": "https://github.com/alltheseas", 1468 "followers_url": "https://api.github.com/users/alltheseas/followers", 1469 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 1470 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 1471 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 1472 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 1473 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 1474 "repos_url": "https://api.github.com/users/alltheseas/repos", 1475 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 1476 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1477 "type": "User", 1478 "site_admin": false 1479 }, 1480 "labels": [ 1481 { 1482 "id": 6802506069, 1483 "node_id": "LA_kwDOKzWMZs8AAAABlXYBVQ", 1484 "url": "https://api.github.com/repos/damus-io/android/labels/search", 1485 "name": "search", 1486 "color": "B9301C", 1487 "default": false, 1488 "description": "" 1489 } 1490 ], 1491 "state": "open", 1492 "locked": false, 1493 "assignee": null, 1494 "assignees": [], 1495 "milestone": null, 1496 "comments": 0, 1497 "created_at": "2024-04-09T16:40:26Z", 1498 "updated_at": "2024-04-09T16:40:27Z", 1499 "closed_at": null, 1500 "author_association": "CONTRIBUTOR", 1501 "active_lock_reason": null, 1502 "body": null, 1503 "reactions": { 1504 "url": "https://api.github.com/repos/damus-io/android/issues/83/reactions", 1505 "total_count": 0, 1506 "+1": 0, 1507 "-1": 0, 1508 "laugh": 0, 1509 "hooray": 0, 1510 "confused": 0, 1511 "heart": 0, 1512 "rocket": 0, 1513 "eyes": 0 1514 }, 1515 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/83/timeline", 1516 "performed_via_github_app": null, 1517 "state_reason": null 1518 } 1519 }, 1520 { 1521 "issue": { 1522 "url": "https://api.github.com/repos/damus-io/android/issues/82", 1523 "repository_url": "https://api.github.com/repos/damus-io/android", 1524 "labels_url": "https://api.github.com/repos/damus-io/android/issues/82/labels{/name}", 1525 "comments_url": "https://api.github.com/repos/damus-io/android/issues/82/comments", 1526 "events_url": "https://api.github.com/repos/damus-io/android/issues/82/events", 1527 "html_url": "https://github.com/damus-io/android/issues/82", 1528 "id": 2233863408, 1529 "node_id": "I_kwDOKzWMZs6FJgzw", 1530 "number": 82, 1531 "title": "search for nevent", 1532 "user": { 1533 "login": "alltheseas", 1534 "id": 64376233, 1535 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 1536 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 1537 "gravatar_id": "", 1538 "url": "https://api.github.com/users/alltheseas", 1539 "html_url": "https://github.com/alltheseas", 1540 "followers_url": "https://api.github.com/users/alltheseas/followers", 1541 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 1542 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 1543 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 1544 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 1545 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 1546 "repos_url": "https://api.github.com/users/alltheseas/repos", 1547 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 1548 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1549 "type": "User", 1550 "site_admin": false 1551 }, 1552 "labels": [ 1553 { 1554 "id": 6802506069, 1555 "node_id": "LA_kwDOKzWMZs8AAAABlXYBVQ", 1556 "url": "https://api.github.com/repos/damus-io/android/labels/search", 1557 "name": "search", 1558 "color": "B9301C", 1559 "default": false, 1560 "description": "" 1561 } 1562 ], 1563 "state": "open", 1564 "locked": false, 1565 "assignee": null, 1566 "assignees": [], 1567 "milestone": null, 1568 "comments": 0, 1569 "created_at": "2024-04-09T16:40:12Z", 1570 "updated_at": "2024-04-09T16:40:12Z", 1571 "closed_at": null, 1572 "author_association": "CONTRIBUTOR", 1573 "active_lock_reason": null, 1574 "body": null, 1575 "reactions": { 1576 "url": "https://api.github.com/repos/damus-io/android/issues/82/reactions", 1577 "total_count": 0, 1578 "+1": 0, 1579 "-1": 0, 1580 "laugh": 0, 1581 "hooray": 0, 1582 "confused": 0, 1583 "heart": 0, 1584 "rocket": 0, 1585 "eyes": 0 1586 }, 1587 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/82/timeline", 1588 "performed_via_github_app": null, 1589 "state_reason": null 1590 } 1591 }, 1592 { 1593 "issue": { 1594 "url": "https://api.github.com/repos/damus-io/android/issues/81", 1595 "repository_url": "https://api.github.com/repos/damus-io/android", 1596 "labels_url": "https://api.github.com/repos/damus-io/android/issues/81/labels{/name}", 1597 "comments_url": "https://api.github.com/repos/damus-io/android/issues/81/comments", 1598 "events_url": "https://api.github.com/repos/damus-io/android/issues/81/events", 1599 "html_url": "https://github.com/damus-io/android/issues/81", 1600 "id": 2232135986, 1601 "node_id": "I_kwDOKzWMZs6FC7Ey", 1602 "number": 81, 1603 "title": "Navigation", 1604 "user": { 1605 "login": "jb55", 1606 "id": 45598, 1607 "node_id": "MDQ6VXNlcjQ1NTk4", 1608 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 1609 "gravatar_id": "", 1610 "url": "https://api.github.com/users/jb55", 1611 "html_url": "https://github.com/jb55", 1612 "followers_url": "https://api.github.com/users/jb55/followers", 1613 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 1614 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 1615 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 1616 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 1617 "organizations_url": "https://api.github.com/users/jb55/orgs", 1618 "repos_url": "https://api.github.com/users/jb55/repos", 1619 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 1620 "received_events_url": "https://api.github.com/users/jb55/received_events", 1621 "type": "User", 1622 "site_admin": false 1623 }, 1624 "labels": [ 1625 { 1626 "id": 6752517308, 1627 "node_id": "LA_kwDOKzWMZs8AAAABkns8vA", 1628 "url": "https://api.github.com/repos/damus-io/android/labels/ui", 1629 "name": "ui", 1630 "color": "f9d0c4", 1631 "default": false, 1632 "description": "ui" 1633 } 1634 ], 1635 "state": "open", 1636 "locked": false, 1637 "assignee": null, 1638 "assignees": [], 1639 "milestone": { 1640 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 1641 "html_url": "https://github.com/damus-io/android/milestone/1", 1642 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 1643 "id": 10252427, 1644 "node_id": "MI_kwDOKzWMZs4AnHCL", 1645 "number": 1, 1646 "title": "0.1 Android PRAGUE", 1647 "description": "", 1648 "creator": { 1649 "login": "alltheseas", 1650 "id": 64376233, 1651 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 1652 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 1653 "gravatar_id": "", 1654 "url": "https://api.github.com/users/alltheseas", 1655 "html_url": "https://github.com/alltheseas", 1656 "followers_url": "https://api.github.com/users/alltheseas/followers", 1657 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 1658 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 1659 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 1660 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 1661 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 1662 "repos_url": "https://api.github.com/users/alltheseas/repos", 1663 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 1664 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1665 "type": "User", 1666 "site_admin": false 1667 }, 1668 "open_issues": 22, 1669 "closed_issues": 3, 1670 "state": "open", 1671 "created_at": "2023-11-30T19:39:43Z", 1672 "updated_at": "2024-04-09T19:49:56Z", 1673 "due_on": "2024-06-12T07:00:00Z", 1674 "closed_at": null 1675 }, 1676 "comments": 0, 1677 "created_at": "2024-04-08T21:46:42Z", 1678 "updated_at": "2024-04-09T16:00:12Z", 1679 "closed_at": null, 1680 "author_association": "CONTRIBUTOR", 1681 "active_lock_reason": null, 1682 "body": "We need some way to do navigation on mobile", 1683 "reactions": { 1684 "url": "https://api.github.com/repos/damus-io/android/issues/81/reactions", 1685 "total_count": 0, 1686 "+1": 0, 1687 "-1": 0, 1688 "laugh": 0, 1689 "hooray": 0, 1690 "confused": 0, 1691 "heart": 0, 1692 "rocket": 0, 1693 "eyes": 0 1694 }, 1695 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/81/timeline", 1696 "performed_via_github_app": null, 1697 "state_reason": null 1698 } 1699 }, 1700 { 1701 "issue": { 1702 "url": "https://api.github.com/repos/damus-io/android/issues/80", 1703 "repository_url": "https://api.github.com/repos/damus-io/android", 1704 "labels_url": "https://api.github.com/repos/damus-io/android/issues/80/labels{/name}", 1705 "comments_url": "https://api.github.com/repos/damus-io/android/issues/80/comments", 1706 "events_url": "https://api.github.com/repos/damus-io/android/issues/80/events", 1707 "html_url": "https://github.com/damus-io/android/issues/80", 1708 "id": 2231926906, 1709 "node_id": "I_kwDOKzWMZs6FCIB6", 1710 "number": 80, 1711 "title": "Update IME/soft keyboard braches for more recent versions of egui/winit", 1712 "user": { 1713 "login": "jb55", 1714 "id": 45598, 1715 "node_id": "MDQ6VXNlcjQ1NTk4", 1716 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 1717 "gravatar_id": "", 1718 "url": "https://api.github.com/users/jb55", 1719 "html_url": "https://github.com/jb55", 1720 "followers_url": "https://api.github.com/users/jb55/followers", 1721 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 1722 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 1723 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 1724 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 1725 "organizations_url": "https://api.github.com/users/jb55/orgs", 1726 "repos_url": "https://api.github.com/users/jb55/repos", 1727 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 1728 "received_events_url": "https://api.github.com/users/jb55/received_events", 1729 "type": "User", 1730 "site_admin": false 1731 }, 1732 "labels": [ 1733 { 1734 "id": 6339173748, 1735 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 1736 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 1737 "name": "technical", 1738 "color": "e99695", 1739 "default": false, 1740 "description": "" 1741 }, 1742 { 1743 "id": 6752517308, 1744 "node_id": "LA_kwDOKzWMZs8AAAABkns8vA", 1745 "url": "https://api.github.com/repos/damus-io/android/labels/ui", 1746 "name": "ui", 1747 "color": "f9d0c4", 1748 "default": false, 1749 "description": "ui" 1750 } 1751 ], 1752 "state": "open", 1753 "locked": false, 1754 "assignee": null, 1755 "assignees": [], 1756 "milestone": { 1757 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 1758 "html_url": "https://github.com/damus-io/android/milestone/1", 1759 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 1760 "id": 10252427, 1761 "node_id": "MI_kwDOKzWMZs4AnHCL", 1762 "number": 1, 1763 "title": "0.1 Android PRAGUE", 1764 "description": "", 1765 "creator": { 1766 "login": "alltheseas", 1767 "id": 64376233, 1768 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 1769 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 1770 "gravatar_id": "", 1771 "url": "https://api.github.com/users/alltheseas", 1772 "html_url": "https://github.com/alltheseas", 1773 "followers_url": "https://api.github.com/users/alltheseas/followers", 1774 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 1775 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 1776 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 1777 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 1778 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 1779 "repos_url": "https://api.github.com/users/alltheseas/repos", 1780 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 1781 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1782 "type": "User", 1783 "site_admin": false 1784 }, 1785 "open_issues": 22, 1786 "closed_issues": 3, 1787 "state": "open", 1788 "created_at": "2023-11-30T19:39:43Z", 1789 "updated_at": "2024-04-09T19:49:56Z", 1790 "due_on": "2024-06-12T07:00:00Z", 1791 "closed_at": null 1792 }, 1793 "comments": 0, 1794 "created_at": "2024-04-08T19:21:09Z", 1795 "updated_at": "2024-04-09T19:49:24Z", 1796 "closed_at": null, 1797 "author_association": "CONTRIBUTOR", 1798 "active_lock_reason": null, 1799 "body": "In \r\n\r\n- https://github.com/damus-io/android/issues/74\r\n\r\nWe are using a fairly old builds of egui/winit (v0.22)\r\n\r\nLucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's first try to update agdk-eframe demo to latest IME branches from lucas:\r\n\r\n- [ ] https://github.com/damus-io/android/issues/77\r\n\r\nAfter that, we should really try to update the ime branches for 0.27 or master:\r\n\r\n- [ ] https://github.com/damus-io/android/issues/78\r\n\r\nwhen we get here, we should try to get those working on the demo again:\r\n\r\n- [ ] https://github.com/damus-io/android/issues/79\r\n\r\nOnce this is done we can look into using them in damus-android", 1800 "reactions": { 1801 "url": "https://api.github.com/repos/damus-io/android/issues/80/reactions", 1802 "total_count": 0, 1803 "+1": 0, 1804 "-1": 0, 1805 "laugh": 0, 1806 "hooray": 0, 1807 "confused": 0, 1808 "heart": 0, 1809 "rocket": 0, 1810 "eyes": 0 1811 }, 1812 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/80/timeline", 1813 "performed_via_github_app": null, 1814 "state_reason": null 1815 } 1816 }, 1817 { 1818 "issue": { 1819 "url": "https://api.github.com/repos/damus-io/android/issues/79", 1820 "repository_url": "https://api.github.com/repos/damus-io/android", 1821 "labels_url": "https://api.github.com/repos/damus-io/android/issues/79/labels{/name}", 1822 "comments_url": "https://api.github.com/repos/damus-io/android/issues/79/comments", 1823 "events_url": "https://api.github.com/repos/damus-io/android/issues/79/events", 1824 "html_url": "https://github.com/damus-io/android/issues/79", 1825 "id": 2231925503, 1826 "node_id": "I_kwDOKzWMZs6FCHr_", 1827 "number": 79, 1828 "title": "Get rebased IME/keyboard branches working on agdk-eframe", 1829 "user": { 1830 "login": "jb55", 1831 "id": 45598, 1832 "node_id": "MDQ6VXNlcjQ1NTk4", 1833 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 1834 "gravatar_id": "", 1835 "url": "https://api.github.com/users/jb55", 1836 "html_url": "https://github.com/jb55", 1837 "followers_url": "https://api.github.com/users/jb55/followers", 1838 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 1839 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 1840 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 1841 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 1842 "organizations_url": "https://api.github.com/users/jb55/orgs", 1843 "repos_url": "https://api.github.com/users/jb55/repos", 1844 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 1845 "received_events_url": "https://api.github.com/users/jb55/received_events", 1846 "type": "User", 1847 "site_admin": false 1848 }, 1849 "labels": [ 1850 { 1851 "id": 6339173748, 1852 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 1853 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 1854 "name": "technical", 1855 "color": "e99695", 1856 "default": false, 1857 "description": "" 1858 } 1859 ], 1860 "state": "open", 1861 "locked": false, 1862 "assignee": null, 1863 "assignees": [], 1864 "milestone": { 1865 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 1866 "html_url": "https://github.com/damus-io/android/milestone/1", 1867 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 1868 "id": 10252427, 1869 "node_id": "MI_kwDOKzWMZs4AnHCL", 1870 "number": 1, 1871 "title": "0.1 Android PRAGUE", 1872 "description": "", 1873 "creator": { 1874 "login": "alltheseas", 1875 "id": 64376233, 1876 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 1877 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 1878 "gravatar_id": "", 1879 "url": "https://api.github.com/users/alltheseas", 1880 "html_url": "https://github.com/alltheseas", 1881 "followers_url": "https://api.github.com/users/alltheseas/followers", 1882 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 1883 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 1884 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 1885 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 1886 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 1887 "repos_url": "https://api.github.com/users/alltheseas/repos", 1888 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 1889 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 1890 "type": "User", 1891 "site_admin": false 1892 }, 1893 "open_issues": 22, 1894 "closed_issues": 3, 1895 "state": "open", 1896 "created_at": "2023-11-30T19:39:43Z", 1897 "updated_at": "2024-04-09T19:49:56Z", 1898 "due_on": "2024-06-12T07:00:00Z", 1899 "closed_at": null 1900 }, 1901 "comments": 0, 1902 "created_at": "2024-04-08T19:20:06Z", 1903 "updated_at": "2024-04-09T19:49:45Z", 1904 "closed_at": null, 1905 "author_association": "CONTRIBUTOR", 1906 "active_lock_reason": null, 1907 "body": "See \r\n\r\n- https://github.com/damus-io/android/issues/80\r\n\r\nfor the gameplan here", 1908 "reactions": { 1909 "url": "https://api.github.com/repos/damus-io/android/issues/79/reactions", 1910 "total_count": 0, 1911 "+1": 0, 1912 "-1": 0, 1913 "laugh": 0, 1914 "hooray": 0, 1915 "confused": 0, 1916 "heart": 0, 1917 "rocket": 0, 1918 "eyes": 0 1919 }, 1920 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/79/timeline", 1921 "performed_via_github_app": null, 1922 "state_reason": null 1923 } 1924 }, 1925 { 1926 "issue": { 1927 "url": "https://api.github.com/repos/damus-io/android/issues/78", 1928 "repository_url": "https://api.github.com/repos/damus-io/android", 1929 "labels_url": "https://api.github.com/repos/damus-io/android/issues/78/labels{/name}", 1930 "comments_url": "https://api.github.com/repos/damus-io/android/issues/78/comments", 1931 "events_url": "https://api.github.com/repos/damus-io/android/issues/78/events", 1932 "html_url": "https://github.com/damus-io/android/issues/78", 1933 "id": 2231924484, 1934 "node_id": "I_kwDOKzWMZs6FCHcE", 1935 "number": 78, 1936 "title": "Rebase IME/keyboard egui/winit branches onto master", 1937 "user": { 1938 "login": "jb55", 1939 "id": 45598, 1940 "node_id": "MDQ6VXNlcjQ1NTk4", 1941 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 1942 "gravatar_id": "", 1943 "url": "https://api.github.com/users/jb55", 1944 "html_url": "https://github.com/jb55", 1945 "followers_url": "https://api.github.com/users/jb55/followers", 1946 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 1947 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 1948 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 1949 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 1950 "organizations_url": "https://api.github.com/users/jb55/orgs", 1951 "repos_url": "https://api.github.com/users/jb55/repos", 1952 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 1953 "received_events_url": "https://api.github.com/users/jb55/received_events", 1954 "type": "User", 1955 "site_admin": false 1956 }, 1957 "labels": [], 1958 "state": "open", 1959 "locked": false, 1960 "assignee": { 1961 "login": "jb55", 1962 "id": 45598, 1963 "node_id": "MDQ6VXNlcjQ1NTk4", 1964 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 1965 "gravatar_id": "", 1966 "url": "https://api.github.com/users/jb55", 1967 "html_url": "https://github.com/jb55", 1968 "followers_url": "https://api.github.com/users/jb55/followers", 1969 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 1970 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 1971 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 1972 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 1973 "organizations_url": "https://api.github.com/users/jb55/orgs", 1974 "repos_url": "https://api.github.com/users/jb55/repos", 1975 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 1976 "received_events_url": "https://api.github.com/users/jb55/received_events", 1977 "type": "User", 1978 "site_admin": false 1979 }, 1980 "assignees": [ 1981 { 1982 "login": "jb55", 1983 "id": 45598, 1984 "node_id": "MDQ6VXNlcjQ1NTk4", 1985 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 1986 "gravatar_id": "", 1987 "url": "https://api.github.com/users/jb55", 1988 "html_url": "https://github.com/jb55", 1989 "followers_url": "https://api.github.com/users/jb55/followers", 1990 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 1991 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 1992 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 1993 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 1994 "organizations_url": "https://api.github.com/users/jb55/orgs", 1995 "repos_url": "https://api.github.com/users/jb55/repos", 1996 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 1997 "received_events_url": "https://api.github.com/users/jb55/received_events", 1998 "type": "User", 1999 "site_admin": false 2000 } 2001 ], 2002 "milestone": null, 2003 "comments": 0, 2004 "created_at": "2024-04-08T19:19:18Z", 2005 "updated_at": "2024-04-08T19:56:37Z", 2006 "closed_at": null, 2007 "author_association": "CONTRIBUTOR", 2008 "active_lock_reason": null, 2009 "body": "We need to bring lucas' ime changes from v0.26 up to speed with the version we are currently using (v0.27). let's try to rebase it onto v0.27 and master.\r\n\r\nThese versions of egui are probably using a different version of winit, so we'll need to update that in tandem\r\n\r\nSee\r\n\r\n- https://github.com/damus-io/android/issues/80\r\n\r\nFor the full gameplan here", 2010 "reactions": { 2011 "url": "https://api.github.com/repos/damus-io/android/issues/78/reactions", 2012 "total_count": 0, 2013 "+1": 0, 2014 "-1": 0, 2015 "laugh": 0, 2016 "hooray": 0, 2017 "confused": 0, 2018 "heart": 0, 2019 "rocket": 0, 2020 "eyes": 0 2021 }, 2022 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/78/timeline", 2023 "performed_via_github_app": null, 2024 "state_reason": null 2025 } 2026 }, 2027 { 2028 "issue": { 2029 "url": "https://api.github.com/repos/damus-io/android/issues/77", 2030 "repository_url": "https://api.github.com/repos/damus-io/android", 2031 "labels_url": "https://api.github.com/repos/damus-io/android/issues/77/labels{/name}", 2032 "comments_url": "https://api.github.com/repos/damus-io/android/issues/77/comments", 2033 "events_url": "https://api.github.com/repos/damus-io/android/issues/77/events", 2034 "html_url": "https://github.com/damus-io/android/issues/77", 2035 "id": 2231914563, 2036 "node_id": "I_kwDOKzWMZs6FCFBD", 2037 "number": 77, 2038 "title": "Update agdk-eframe demo to latest IME branches from lucas", 2039 "user": { 2040 "login": "jb55", 2041 "id": 45598, 2042 "node_id": "MDQ6VXNlcjQ1NTk4", 2043 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2044 "gravatar_id": "", 2045 "url": "https://api.github.com/users/jb55", 2046 "html_url": "https://github.com/jb55", 2047 "followers_url": "https://api.github.com/users/jb55/followers", 2048 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2049 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2050 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2051 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2052 "organizations_url": "https://api.github.com/users/jb55/orgs", 2053 "repos_url": "https://api.github.com/users/jb55/repos", 2054 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2055 "received_events_url": "https://api.github.com/users/jb55/received_events", 2056 "type": "User", 2057 "site_admin": false 2058 }, 2059 "labels": [], 2060 "state": "open", 2061 "locked": false, 2062 "assignee": { 2063 "login": "jb55", 2064 "id": 45598, 2065 "node_id": "MDQ6VXNlcjQ1NTk4", 2066 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2067 "gravatar_id": "", 2068 "url": "https://api.github.com/users/jb55", 2069 "html_url": "https://github.com/jb55", 2070 "followers_url": "https://api.github.com/users/jb55/followers", 2071 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2072 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2073 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2074 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2075 "organizations_url": "https://api.github.com/users/jb55/orgs", 2076 "repos_url": "https://api.github.com/users/jb55/repos", 2077 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2078 "received_events_url": "https://api.github.com/users/jb55/received_events", 2079 "type": "User", 2080 "site_admin": false 2081 }, 2082 "assignees": [ 2083 { 2084 "login": "jb55", 2085 "id": 45598, 2086 "node_id": "MDQ6VXNlcjQ1NTk4", 2087 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2088 "gravatar_id": "", 2089 "url": "https://api.github.com/users/jb55", 2090 "html_url": "https://github.com/jb55", 2091 "followers_url": "https://api.github.com/users/jb55/followers", 2092 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2093 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2094 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2095 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2096 "organizations_url": "https://api.github.com/users/jb55/orgs", 2097 "repos_url": "https://api.github.com/users/jb55/repos", 2098 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2099 "received_events_url": "https://api.github.com/users/jb55/received_events", 2100 "type": "User", 2101 "site_admin": false 2102 } 2103 ], 2104 "milestone": null, 2105 "comments": 10, 2106 "created_at": "2024-04-08T19:11:49Z", 2107 "updated_at": "2024-04-09T20:20:38Z", 2108 "closed_at": null, 2109 "author_association": "CONTRIBUTOR", 2110 "active_lock_reason": null, 2111 "body": "Lucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's get these running in the agdk-eframe demo first to confirm it is working", 2112 "reactions": { 2113 "url": "https://api.github.com/repos/damus-io/android/issues/77/reactions", 2114 "total_count": 0, 2115 "+1": 0, 2116 "-1": 0, 2117 "laugh": 0, 2118 "hooray": 0, 2119 "confused": 0, 2120 "heart": 0, 2121 "rocket": 0, 2122 "eyes": 0 2123 }, 2124 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/77/timeline", 2125 "performed_via_github_app": null, 2126 "state_reason": null 2127 } 2128 }, 2129 { 2130 "issue": { 2131 "url": "https://api.github.com/repos/damus-io/android/issues/77", 2132 "repository_url": "https://api.github.com/repos/damus-io/android", 2133 "labels_url": "https://api.github.com/repos/damus-io/android/issues/77/labels{/name}", 2134 "comments_url": "https://api.github.com/repos/damus-io/android/issues/77/comments", 2135 "events_url": "https://api.github.com/repos/damus-io/android/issues/77/events", 2136 "html_url": "https://github.com/damus-io/android/issues/77", 2137 "id": 2231914563, 2138 "node_id": "I_kwDOKzWMZs6FCFBD", 2139 "number": 77, 2140 "title": "Update agdk-eframe demo to latest IME branches from lucas", 2141 "user": { 2142 "login": "jb55", 2143 "id": 45598, 2144 "node_id": "MDQ6VXNlcjQ1NTk4", 2145 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2146 "gravatar_id": "", 2147 "url": "https://api.github.com/users/jb55", 2148 "html_url": "https://github.com/jb55", 2149 "followers_url": "https://api.github.com/users/jb55/followers", 2150 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2151 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2152 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2153 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2154 "organizations_url": "https://api.github.com/users/jb55/orgs", 2155 "repos_url": "https://api.github.com/users/jb55/repos", 2156 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2157 "received_events_url": "https://api.github.com/users/jb55/received_events", 2158 "type": "User", 2159 "site_admin": false 2160 }, 2161 "labels": [], 2162 "state": "open", 2163 "locked": false, 2164 "assignee": { 2165 "login": "jb55", 2166 "id": 45598, 2167 "node_id": "MDQ6VXNlcjQ1NTk4", 2168 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2169 "gravatar_id": "", 2170 "url": "https://api.github.com/users/jb55", 2171 "html_url": "https://github.com/jb55", 2172 "followers_url": "https://api.github.com/users/jb55/followers", 2173 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2174 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2175 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2176 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2177 "organizations_url": "https://api.github.com/users/jb55/orgs", 2178 "repos_url": "https://api.github.com/users/jb55/repos", 2179 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2180 "received_events_url": "https://api.github.com/users/jb55/received_events", 2181 "type": "User", 2182 "site_admin": false 2183 }, 2184 "assignees": [ 2185 { 2186 "login": "jb55", 2187 "id": 45598, 2188 "node_id": "MDQ6VXNlcjQ1NTk4", 2189 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2190 "gravatar_id": "", 2191 "url": "https://api.github.com/users/jb55", 2192 "html_url": "https://github.com/jb55", 2193 "followers_url": "https://api.github.com/users/jb55/followers", 2194 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2195 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2196 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2197 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2198 "organizations_url": "https://api.github.com/users/jb55/orgs", 2199 "repos_url": "https://api.github.com/users/jb55/repos", 2200 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2201 "received_events_url": "https://api.github.com/users/jb55/received_events", 2202 "type": "User", 2203 "site_admin": false 2204 } 2205 ], 2206 "milestone": null, 2207 "comments": 10, 2208 "created_at": "2024-04-08T19:11:49Z", 2209 "updated_at": "2024-04-09T20:20:38Z", 2210 "closed_at": null, 2211 "author_association": "CONTRIBUTOR", 2212 "active_lock_reason": null, 2213 "body": "Lucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's get these running in the agdk-eframe demo first to confirm it is working", 2214 "reactions": { 2215 "url": "https://api.github.com/repos/damus-io/android/issues/77/reactions", 2216 "total_count": 0, 2217 "+1": 0, 2218 "-1": 0, 2219 "laugh": 0, 2220 "hooray": 0, 2221 "confused": 0, 2222 "heart": 0, 2223 "rocket": 0, 2224 "eyes": 0 2225 }, 2226 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/77/timeline", 2227 "performed_via_github_app": null, 2228 "state_reason": null 2229 }, 2230 "comment": { 2231 "user": "jb55", 2232 "created_at": "2024-04-08T23:36:50Z", 2233 "updated_at": "2024-04-08T23:36:50Z", 2234 "body": "Got v0.26.2 to compile here: https://github.com/jb55/rust-android-examples/tree/ime_0.26.2\r\n\r\nbut currently crashes on launch. Need to figure out how to debug before continuing. " 2235 } 2236 }, 2237 { 2238 "issue": { 2239 "url": "https://api.github.com/repos/damus-io/android/issues/77", 2240 "repository_url": "https://api.github.com/repos/damus-io/android", 2241 "labels_url": "https://api.github.com/repos/damus-io/android/issues/77/labels{/name}", 2242 "comments_url": "https://api.github.com/repos/damus-io/android/issues/77/comments", 2243 "events_url": "https://api.github.com/repos/damus-io/android/issues/77/events", 2244 "html_url": "https://github.com/damus-io/android/issues/77", 2245 "id": 2231914563, 2246 "node_id": "I_kwDOKzWMZs6FCFBD", 2247 "number": 77, 2248 "title": "Update agdk-eframe demo to latest IME branches from lucas", 2249 "user": { 2250 "login": "jb55", 2251 "id": 45598, 2252 "node_id": "MDQ6VXNlcjQ1NTk4", 2253 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2254 "gravatar_id": "", 2255 "url": "https://api.github.com/users/jb55", 2256 "html_url": "https://github.com/jb55", 2257 "followers_url": "https://api.github.com/users/jb55/followers", 2258 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2259 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2260 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2261 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2262 "organizations_url": "https://api.github.com/users/jb55/orgs", 2263 "repos_url": "https://api.github.com/users/jb55/repos", 2264 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2265 "received_events_url": "https://api.github.com/users/jb55/received_events", 2266 "type": "User", 2267 "site_admin": false 2268 }, 2269 "labels": [], 2270 "state": "open", 2271 "locked": false, 2272 "assignee": { 2273 "login": "jb55", 2274 "id": 45598, 2275 "node_id": "MDQ6VXNlcjQ1NTk4", 2276 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2277 "gravatar_id": "", 2278 "url": "https://api.github.com/users/jb55", 2279 "html_url": "https://github.com/jb55", 2280 "followers_url": "https://api.github.com/users/jb55/followers", 2281 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2282 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2283 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2284 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2285 "organizations_url": "https://api.github.com/users/jb55/orgs", 2286 "repos_url": "https://api.github.com/users/jb55/repos", 2287 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2288 "received_events_url": "https://api.github.com/users/jb55/received_events", 2289 "type": "User", 2290 "site_admin": false 2291 }, 2292 "assignees": [ 2293 { 2294 "login": "jb55", 2295 "id": 45598, 2296 "node_id": "MDQ6VXNlcjQ1NTk4", 2297 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2298 "gravatar_id": "", 2299 "url": "https://api.github.com/users/jb55", 2300 "html_url": "https://github.com/jb55", 2301 "followers_url": "https://api.github.com/users/jb55/followers", 2302 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2303 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2304 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2305 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2306 "organizations_url": "https://api.github.com/users/jb55/orgs", 2307 "repos_url": "https://api.github.com/users/jb55/repos", 2308 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2309 "received_events_url": "https://api.github.com/users/jb55/received_events", 2310 "type": "User", 2311 "site_admin": false 2312 } 2313 ], 2314 "milestone": null, 2315 "comments": 10, 2316 "created_at": "2024-04-08T19:11:49Z", 2317 "updated_at": "2024-04-09T20:20:38Z", 2318 "closed_at": null, 2319 "author_association": "CONTRIBUTOR", 2320 "active_lock_reason": null, 2321 "body": "Lucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's get these running in the agdk-eframe demo first to confirm it is working", 2322 "reactions": { 2323 "url": "https://api.github.com/repos/damus-io/android/issues/77/reactions", 2324 "total_count": 0, 2325 "+1": 0, 2326 "-1": 0, 2327 "laugh": 0, 2328 "hooray": 0, 2329 "confused": 0, 2330 "heart": 0, 2331 "rocket": 0, 2332 "eyes": 0 2333 }, 2334 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/77/timeline", 2335 "performed_via_github_app": null, 2336 "state_reason": null 2337 }, 2338 "comment": { 2339 "user": "jb55", 2340 "created_at": "2024-04-09T01:05:28Z", 2341 "updated_at": "2024-04-09T01:05:28Z", 2342 "body": "logcat:\r\n\r\n```\r\n04-08 18:03:09.143 11474 11474 E lfit.agdkeframe: No implementation found for long com.google.androidgamesdk.GameActivity.loadNativeCode(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, android.content.res.AssetManager, byte[]) (tried Java_com_google_androidgamesdk_GameActivity_loadNativeCode and Java_com_google_androidgamesdk_GameActivity_loadNativeCode__Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2Landroid_content_res_AssetManager_2_3B) - is the library loaded, e.g. System.loadLibrary?\r\n04-08 18:03:09.143 11474 11474 D AndroidRuntime: Shutting down VM\r\n--------- beginning of crash\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: FATAL EXCEPTION: main\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: Process: co.realfit.agdkeframe, PID: 11474\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: java.lang.UnsatisfiedLinkError: No implementation found for long com.google.androidgamesdk.GameActivity.loadNativeCode(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, android.content.res.AssetManager, byte[]) (tried Java_com_google_androidgamesdk_GameActivity_loadNativeCode and Java_com_google_androidgamesdk_GameActivity_loadNativeCode__Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2Landroid_content_res_AssetManager_2_3B) - is the library loaded, e.g. System.loadLibrary?\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at com.google.androidgamesdk.GameActivity.loadNativeCode(Native Method)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at com.google.androidgamesdk.GameActivity.onCreate(GameActivity.java:265)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at co.realfit.agdkeframe.MainActivity.onCreate(MainActivity.java:63)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:8935)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:8904)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1456)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4146)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4322)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:230)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.os.Looper.loop(Looper.java:319)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8893)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)\r\n04-08 18:03:09.148 11474 11474 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)\r\n04-08 18:03:09.157 1345 11513 I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2\r\n04-08 18:03:09.158 1345 3073 D Debug : low && ship && 3rdparty app crash, do not dump\r\n04-08 18:03:09.159 1345 11514 W ActivityManager: crash : co.realfit.agdkeframe,10236\r\n04-08 18:03:09.159 1345 3073 W ActivityTaskManager: Force finishing activity co.realfit.agdkeframe/.MainActivity\r\n```" 2343 } 2344 }, 2345 { 2346 "issue": { 2347 "url": "https://api.github.com/repos/damus-io/android/issues/77", 2348 "repository_url": "https://api.github.com/repos/damus-io/android", 2349 "labels_url": "https://api.github.com/repos/damus-io/android/issues/77/labels{/name}", 2350 "comments_url": "https://api.github.com/repos/damus-io/android/issues/77/comments", 2351 "events_url": "https://api.github.com/repos/damus-io/android/issues/77/events", 2352 "html_url": "https://github.com/damus-io/android/issues/77", 2353 "id": 2231914563, 2354 "node_id": "I_kwDOKzWMZs6FCFBD", 2355 "number": 77, 2356 "title": "Update agdk-eframe demo to latest IME branches from lucas", 2357 "user": { 2358 "login": "jb55", 2359 "id": 45598, 2360 "node_id": "MDQ6VXNlcjQ1NTk4", 2361 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2362 "gravatar_id": "", 2363 "url": "https://api.github.com/users/jb55", 2364 "html_url": "https://github.com/jb55", 2365 "followers_url": "https://api.github.com/users/jb55/followers", 2366 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2367 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2368 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2369 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2370 "organizations_url": "https://api.github.com/users/jb55/orgs", 2371 "repos_url": "https://api.github.com/users/jb55/repos", 2372 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2373 "received_events_url": "https://api.github.com/users/jb55/received_events", 2374 "type": "User", 2375 "site_admin": false 2376 }, 2377 "labels": [], 2378 "state": "open", 2379 "locked": false, 2380 "assignee": { 2381 "login": "jb55", 2382 "id": 45598, 2383 "node_id": "MDQ6VXNlcjQ1NTk4", 2384 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2385 "gravatar_id": "", 2386 "url": "https://api.github.com/users/jb55", 2387 "html_url": "https://github.com/jb55", 2388 "followers_url": "https://api.github.com/users/jb55/followers", 2389 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2390 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2391 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2392 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2393 "organizations_url": "https://api.github.com/users/jb55/orgs", 2394 "repos_url": "https://api.github.com/users/jb55/repos", 2395 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2396 "received_events_url": "https://api.github.com/users/jb55/received_events", 2397 "type": "User", 2398 "site_admin": false 2399 }, 2400 "assignees": [ 2401 { 2402 "login": "jb55", 2403 "id": 45598, 2404 "node_id": "MDQ6VXNlcjQ1NTk4", 2405 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2406 "gravatar_id": "", 2407 "url": "https://api.github.com/users/jb55", 2408 "html_url": "https://github.com/jb55", 2409 "followers_url": "https://api.github.com/users/jb55/followers", 2410 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2411 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2412 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2413 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2414 "organizations_url": "https://api.github.com/users/jb55/orgs", 2415 "repos_url": "https://api.github.com/users/jb55/repos", 2416 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2417 "received_events_url": "https://api.github.com/users/jb55/received_events", 2418 "type": "User", 2419 "site_admin": false 2420 } 2421 ], 2422 "milestone": null, 2423 "comments": 10, 2424 "created_at": "2024-04-08T19:11:49Z", 2425 "updated_at": "2024-04-09T20:20:38Z", 2426 "closed_at": null, 2427 "author_association": "CONTRIBUTOR", 2428 "active_lock_reason": null, 2429 "body": "Lucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's get these running in the agdk-eframe demo first to confirm it is working", 2430 "reactions": { 2431 "url": "https://api.github.com/repos/damus-io/android/issues/77/reactions", 2432 "total_count": 0, 2433 "+1": 0, 2434 "-1": 0, 2435 "laugh": 0, 2436 "hooray": 0, 2437 "confused": 0, 2438 "heart": 0, 2439 "rocket": 0, 2440 "eyes": 0 2441 }, 2442 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/77/timeline", 2443 "performed_via_github_app": null, 2444 "state_reason": null 2445 }, 2446 "comment": { 2447 "user": "jb55", 2448 "created_at": "2024-04-09T18:08:34Z", 2449 "updated_at": "2024-04-09T18:48:31Z", 2450 "body": "Looks like this is caused by a version mismatch between GameActivity 2.0 (which is expected in the latest version android-activity)." 2451 } 2452 }, 2453 { 2454 "issue": { 2455 "url": "https://api.github.com/repos/damus-io/android/issues/77", 2456 "repository_url": "https://api.github.com/repos/damus-io/android", 2457 "labels_url": "https://api.github.com/repos/damus-io/android/issues/77/labels{/name}", 2458 "comments_url": "https://api.github.com/repos/damus-io/android/issues/77/comments", 2459 "events_url": "https://api.github.com/repos/damus-io/android/issues/77/events", 2460 "html_url": "https://github.com/damus-io/android/issues/77", 2461 "id": 2231914563, 2462 "node_id": "I_kwDOKzWMZs6FCFBD", 2463 "number": 77, 2464 "title": "Update agdk-eframe demo to latest IME branches from lucas", 2465 "user": { 2466 "login": "jb55", 2467 "id": 45598, 2468 "node_id": "MDQ6VXNlcjQ1NTk4", 2469 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2470 "gravatar_id": "", 2471 "url": "https://api.github.com/users/jb55", 2472 "html_url": "https://github.com/jb55", 2473 "followers_url": "https://api.github.com/users/jb55/followers", 2474 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2475 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2476 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2477 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2478 "organizations_url": "https://api.github.com/users/jb55/orgs", 2479 "repos_url": "https://api.github.com/users/jb55/repos", 2480 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2481 "received_events_url": "https://api.github.com/users/jb55/received_events", 2482 "type": "User", 2483 "site_admin": false 2484 }, 2485 "labels": [], 2486 "state": "open", 2487 "locked": false, 2488 "assignee": { 2489 "login": "jb55", 2490 "id": 45598, 2491 "node_id": "MDQ6VXNlcjQ1NTk4", 2492 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2493 "gravatar_id": "", 2494 "url": "https://api.github.com/users/jb55", 2495 "html_url": "https://github.com/jb55", 2496 "followers_url": "https://api.github.com/users/jb55/followers", 2497 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2498 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2499 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2500 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2501 "organizations_url": "https://api.github.com/users/jb55/orgs", 2502 "repos_url": "https://api.github.com/users/jb55/repos", 2503 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2504 "received_events_url": "https://api.github.com/users/jb55/received_events", 2505 "type": "User", 2506 "site_admin": false 2507 }, 2508 "assignees": [ 2509 { 2510 "login": "jb55", 2511 "id": 45598, 2512 "node_id": "MDQ6VXNlcjQ1NTk4", 2513 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2514 "gravatar_id": "", 2515 "url": "https://api.github.com/users/jb55", 2516 "html_url": "https://github.com/jb55", 2517 "followers_url": "https://api.github.com/users/jb55/followers", 2518 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2519 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2520 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2521 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2522 "organizations_url": "https://api.github.com/users/jb55/orgs", 2523 "repos_url": "https://api.github.com/users/jb55/repos", 2524 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2525 "received_events_url": "https://api.github.com/users/jb55/received_events", 2526 "type": "User", 2527 "site_admin": false 2528 } 2529 ], 2530 "milestone": null, 2531 "comments": 10, 2532 "created_at": "2024-04-08T19:11:49Z", 2533 "updated_at": "2024-04-09T20:20:38Z", 2534 "closed_at": null, 2535 "author_association": "CONTRIBUTOR", 2536 "active_lock_reason": null, 2537 "body": "Lucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's get these running in the agdk-eframe demo first to confirm it is working", 2538 "reactions": { 2539 "url": "https://api.github.com/repos/damus-io/android/issues/77/reactions", 2540 "total_count": 0, 2541 "+1": 0, 2542 "-1": 0, 2543 "laugh": 0, 2544 "hooray": 0, 2545 "confused": 0, 2546 "heart": 0, 2547 "rocket": 0, 2548 "eyes": 0 2549 }, 2550 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/77/timeline", 2551 "performed_via_github_app": null, 2552 "state_reason": null 2553 }, 2554 "comment": { 2555 "user": "jb55", 2556 "created_at": "2024-04-09T18:34:05Z", 2557 "updated_at": "2024-04-09T18:45:18Z", 2558 "body": "Looks like that was the issue, updating to game-activity 2.0.2 fixes the crash.\r\n\r\nNow I'm seeing weird behaviours:\r\n\r\n- No words are highlighted, and there is no autocompletion\r\n- Backspace and enter are sent twice\r\n\r\nnot sure if you ran into this on 0.26.2 @lucasmerlin ?\r\n\r\nMy demo tinkering is here:\r\n\r\n```\r\ngit clone -b ime_0.26.2 https://github.com/jb55/rust-android-examples\r\ngit clone -b ime_0.26.2 https://github.com/jb55/egui\r\n```\r\n\r\nI'm also on `winit` @ `hp-fixes-0.29.x` and `android-activity` @ `hp_changes_2`\r\n" 2559 } 2560 }, 2561 { 2562 "issue": { 2563 "url": "https://api.github.com/repos/damus-io/android/issues/77", 2564 "repository_url": "https://api.github.com/repos/damus-io/android", 2565 "labels_url": "https://api.github.com/repos/damus-io/android/issues/77/labels{/name}", 2566 "comments_url": "https://api.github.com/repos/damus-io/android/issues/77/comments", 2567 "events_url": "https://api.github.com/repos/damus-io/android/issues/77/events", 2568 "html_url": "https://github.com/damus-io/android/issues/77", 2569 "id": 2231914563, 2570 "node_id": "I_kwDOKzWMZs6FCFBD", 2571 "number": 77, 2572 "title": "Update agdk-eframe demo to latest IME branches from lucas", 2573 "user": { 2574 "login": "jb55", 2575 "id": 45598, 2576 "node_id": "MDQ6VXNlcjQ1NTk4", 2577 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2578 "gravatar_id": "", 2579 "url": "https://api.github.com/users/jb55", 2580 "html_url": "https://github.com/jb55", 2581 "followers_url": "https://api.github.com/users/jb55/followers", 2582 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2583 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2584 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2585 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2586 "organizations_url": "https://api.github.com/users/jb55/orgs", 2587 "repos_url": "https://api.github.com/users/jb55/repos", 2588 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2589 "received_events_url": "https://api.github.com/users/jb55/received_events", 2590 "type": "User", 2591 "site_admin": false 2592 }, 2593 "labels": [], 2594 "state": "open", 2595 "locked": false, 2596 "assignee": { 2597 "login": "jb55", 2598 "id": 45598, 2599 "node_id": "MDQ6VXNlcjQ1NTk4", 2600 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2601 "gravatar_id": "", 2602 "url": "https://api.github.com/users/jb55", 2603 "html_url": "https://github.com/jb55", 2604 "followers_url": "https://api.github.com/users/jb55/followers", 2605 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2606 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2607 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2608 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2609 "organizations_url": "https://api.github.com/users/jb55/orgs", 2610 "repos_url": "https://api.github.com/users/jb55/repos", 2611 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2612 "received_events_url": "https://api.github.com/users/jb55/received_events", 2613 "type": "User", 2614 "site_admin": false 2615 }, 2616 "assignees": [ 2617 { 2618 "login": "jb55", 2619 "id": 45598, 2620 "node_id": "MDQ6VXNlcjQ1NTk4", 2621 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2622 "gravatar_id": "", 2623 "url": "https://api.github.com/users/jb55", 2624 "html_url": "https://github.com/jb55", 2625 "followers_url": "https://api.github.com/users/jb55/followers", 2626 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2627 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2628 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2629 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2630 "organizations_url": "https://api.github.com/users/jb55/orgs", 2631 "repos_url": "https://api.github.com/users/jb55/repos", 2632 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2633 "received_events_url": "https://api.github.com/users/jb55/received_events", 2634 "type": "User", 2635 "site_admin": false 2636 } 2637 ], 2638 "milestone": null, 2639 "comments": 10, 2640 "created_at": "2024-04-08T19:11:49Z", 2641 "updated_at": "2024-04-09T20:20:38Z", 2642 "closed_at": null, 2643 "author_association": "CONTRIBUTOR", 2644 "active_lock_reason": null, 2645 "body": "Lucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's get these running in the agdk-eframe demo first to confirm it is working", 2646 "reactions": { 2647 "url": "https://api.github.com/repos/damus-io/android/issues/77/reactions", 2648 "total_count": 0, 2649 "+1": 0, 2650 "-1": 0, 2651 "laugh": 0, 2652 "hooray": 0, 2653 "confused": 0, 2654 "heart": 0, 2655 "rocket": 0, 2656 "eyes": 0 2657 }, 2658 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/77/timeline", 2659 "performed_via_github_app": null, 2660 "state_reason": null 2661 }, 2662 "comment": { 2663 "user": "jb55", 2664 "created_at": "2024-04-09T18:43:44Z", 2665 "updated_at": "2024-04-09T18:43:44Z", 2666 "body": "range-diff between hp_improvements_0.26 and ime_0.26.2:\r\n\r\n`git range-diff hp_improvements_0.26...ime_0.26.2`\r\n\r\n```\r\n 1: ee7fb477986b < -: ------------ add with_taskbar to viewport builder (#3958)\r\n 2: b35a7dd7de00 < -: ------------ Add scroll bar visibility option to Table widget (#3981)\r\n 3: 377f86efb523 = 1: 26a87715f275 egui: Fixed window title bar incorrect handling spacing (#3995)\r\n 4: 21f08afcbbef = 2: 826b1ac80d58 egui_glow: Only disable sRGB framebuffer on supported platforms (#3994)\r\n 5: 15370bbea0b4 < -: ------------ Add F21 to F35 key bindings (#4004)\r\n -: ------------ > 3: a829fff19c5b Make `on_disabled_hover_ui` respect `tooltip_delay` (#4012)\r\n -: ------------ > 4: a415aa4bc686 Update to document-features 0.2.8 (#4003)\r\n -: ------------ > 5: 1fe0f2417ab8 Improve panic message in egui-wgpu when failing to create buffers (#3986)\r\n -: ------------ > 6: 820a3baf3017 egui demo: Fix space reserved for source code link (#3983)\r\n -: ------------ > 7: db00dc6ea546 Fix `TextEdit` being too short whenever there is horizontal margin (#4005)\r\n -: ------------ > 8: df7e4a5db64c Fix `Response::interact` and `Ui:interact_with_hovered` (#4013)\r\n -: ------------ > 9: 45154fc1c839 Fix: `Response.interact_pointer_pos` is `Some` on click and drag released (#4014)\r\n -: ------------ > 10: 12749f3b5adb Take clip_rect into account when storing widget rects (#4020)\r\n -: ------------ > 11: 6e4dab97fb50 Revert semver-breaking change, and replace with temporary HACK\r\n -: ------------ > 12: 109c0a86952a Revert renaming a field in `WidgetRect` to avoid semver breakage\r\n -: ------------ > 13: 9aac3ef40692 Revert hello_world example\r\n -: ------------ > 14: 0d17b6748d8c egui: Fix custom `Window` `Frame`s (#4009)\r\n -: ------------ > 15: a8501c963dba Release 0.26.1 - Bug Fixes\r\n -: ------------ > 16: 2f572197efe9 Update memoffset to 0.9.0, arboard to 3.3.1, and remove egui_glow's needless dependency on pure_glow's deps (#4036)\r\n -: ------------ > 17: b64e329cb7a7 `eframe`: Add `winuser` feature to `winapi` to fix unresolved import (#4037)\r\n -: ------------ > 18: ed5fe015359d Add another check to Windows CI (#4038)\r\n -: ------------ > 19: 1ce4f0547226 Avoid interacting twice when not required (#4041)\r\n -: ------------ > 20: 309586b42cc8 Release 0.26.2 - Response.interact/context_menu fix\r\n 6: 6cf77dd0ac05 = 21: a18c816bbe8e Expose center position in MultiTouchInfo\r\n 7: 85dfff9b7e8b = 22: 2c3cb458036f Increase scroll area friction\r\n 8: 8c6479ff9ff5 = 23: f1f6cffc7a80 Add option to specify persistence path\r\n 9: eba2e3f8896d = 24: 04f76de5ae11 Remove WaitUntil fix since it seems to be working now\r\n10: e58b66f36f97 = 25: b4aa3b7e141f Ime support\r\n```\r\n\r\nSeems more likely that winit changes broke something?\r\n\r\n```\r\n 1 monad> g range-diff lucas/v0.28.x_ime_support...lucas/hp-fixes-0.29.x | grep -i android\r\n 30: 305a302a98ae < -: ------------ Add basic android ime support\r\n -: ------------ > 75: 4a36741f9cca On Android, change default implementation to ignore volume keys and let operating system handle them (#2748)\r\n -: ------------ > 95: 7929999c1c9b Android: rework keycode handling (#2890)\r\n -: ------------ > 136: 7a954c7e0898 Android: Implement EventLoopExtPumpEvents and EventLoopExtRunOnDemand\r\n -: ------------ > 172: 7451c4b88c7c Android: Support unicode character mapping + dead keys\r\n -: ------------ > 178: 65c2482d74fd Pin android-activity git dependency\r\n -: ------------ > 181: 80d1e49354cd Use beta versions of android crates\r\n -: ------------ > 218: 709929fcab0c Pass force on touch events on android\r\n -: ------------ > 225: 4385c17cbb3e Make DeviceId contain device id's on Android\r\n -: ------------ > 235: 5788319632b4 Add Occluded and MemoryWarning events for iOS/Android\r\n -: ------------ > 245: f2edd235428e Upgrade to `ndk 0.8`, `ndk-sys 0.5` + `android-activity 0.5` releases\r\n -: ------------ > 285: 7aa202b872a3 Make Android docs build on docs.rs (#3236)\r\n -: ------------ > 337: 9576d91dfe25 Fix stylus input on android\r\n```" 2667 } 2668 }, 2669 { 2670 "issue": { 2671 "url": "https://api.github.com/repos/damus-io/android/issues/77", 2672 "repository_url": "https://api.github.com/repos/damus-io/android", 2673 "labels_url": "https://api.github.com/repos/damus-io/android/issues/77/labels{/name}", 2674 "comments_url": "https://api.github.com/repos/damus-io/android/issues/77/comments", 2675 "events_url": "https://api.github.com/repos/damus-io/android/issues/77/events", 2676 "html_url": "https://github.com/damus-io/android/issues/77", 2677 "id": 2231914563, 2678 "node_id": "I_kwDOKzWMZs6FCFBD", 2679 "number": 77, 2680 "title": "Update agdk-eframe demo to latest IME branches from lucas", 2681 "user": { 2682 "login": "jb55", 2683 "id": 45598, 2684 "node_id": "MDQ6VXNlcjQ1NTk4", 2685 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2686 "gravatar_id": "", 2687 "url": "https://api.github.com/users/jb55", 2688 "html_url": "https://github.com/jb55", 2689 "followers_url": "https://api.github.com/users/jb55/followers", 2690 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2691 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2692 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2693 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2694 "organizations_url": "https://api.github.com/users/jb55/orgs", 2695 "repos_url": "https://api.github.com/users/jb55/repos", 2696 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2697 "received_events_url": "https://api.github.com/users/jb55/received_events", 2698 "type": "User", 2699 "site_admin": false 2700 }, 2701 "labels": [], 2702 "state": "open", 2703 "locked": false, 2704 "assignee": { 2705 "login": "jb55", 2706 "id": 45598, 2707 "node_id": "MDQ6VXNlcjQ1NTk4", 2708 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2709 "gravatar_id": "", 2710 "url": "https://api.github.com/users/jb55", 2711 "html_url": "https://github.com/jb55", 2712 "followers_url": "https://api.github.com/users/jb55/followers", 2713 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2714 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2715 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2716 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2717 "organizations_url": "https://api.github.com/users/jb55/orgs", 2718 "repos_url": "https://api.github.com/users/jb55/repos", 2719 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2720 "received_events_url": "https://api.github.com/users/jb55/received_events", 2721 "type": "User", 2722 "site_admin": false 2723 }, 2724 "assignees": [ 2725 { 2726 "login": "jb55", 2727 "id": 45598, 2728 "node_id": "MDQ6VXNlcjQ1NTk4", 2729 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2730 "gravatar_id": "", 2731 "url": "https://api.github.com/users/jb55", 2732 "html_url": "https://github.com/jb55", 2733 "followers_url": "https://api.github.com/users/jb55/followers", 2734 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2735 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2736 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2737 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2738 "organizations_url": "https://api.github.com/users/jb55/orgs", 2739 "repos_url": "https://api.github.com/users/jb55/repos", 2740 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2741 "received_events_url": "https://api.github.com/users/jb55/received_events", 2742 "type": "User", 2743 "site_admin": false 2744 } 2745 ], 2746 "milestone": null, 2747 "comments": 10, 2748 "created_at": "2024-04-08T19:11:49Z", 2749 "updated_at": "2024-04-09T20:20:38Z", 2750 "closed_at": null, 2751 "author_association": "CONTRIBUTOR", 2752 "active_lock_reason": null, 2753 "body": "Lucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's get these running in the agdk-eframe demo first to confirm it is working", 2754 "reactions": { 2755 "url": "https://api.github.com/repos/damus-io/android/issues/77/reactions", 2756 "total_count": 0, 2757 "+1": 0, 2758 "-1": 0, 2759 "laugh": 0, 2760 "hooray": 0, 2761 "confused": 0, 2762 "heart": 0, 2763 "rocket": 0, 2764 "eyes": 0 2765 }, 2766 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/77/timeline", 2767 "performed_via_github_app": null, 2768 "state_reason": null 2769 }, 2770 "comment": { 2771 "user": "jb55", 2772 "created_at": "2024-04-09T18:52:07Z", 2773 "updated_at": "2024-04-09T18:52:07Z", 2774 "body": "video of the broken input:\r\n\r\nhttps://cdn.jb55.com/s/broken-input.mp4" 2775 } 2776 }, 2777 { 2778 "issue": { 2779 "url": "https://api.github.com/repos/damus-io/android/issues/77", 2780 "repository_url": "https://api.github.com/repos/damus-io/android", 2781 "labels_url": "https://api.github.com/repos/damus-io/android/issues/77/labels{/name}", 2782 "comments_url": "https://api.github.com/repos/damus-io/android/issues/77/comments", 2783 "events_url": "https://api.github.com/repos/damus-io/android/issues/77/events", 2784 "html_url": "https://github.com/damus-io/android/issues/77", 2785 "id": 2231914563, 2786 "node_id": "I_kwDOKzWMZs6FCFBD", 2787 "number": 77, 2788 "title": "Update agdk-eframe demo to latest IME branches from lucas", 2789 "user": { 2790 "login": "jb55", 2791 "id": 45598, 2792 "node_id": "MDQ6VXNlcjQ1NTk4", 2793 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2794 "gravatar_id": "", 2795 "url": "https://api.github.com/users/jb55", 2796 "html_url": "https://github.com/jb55", 2797 "followers_url": "https://api.github.com/users/jb55/followers", 2798 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2799 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2800 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2801 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2802 "organizations_url": "https://api.github.com/users/jb55/orgs", 2803 "repos_url": "https://api.github.com/users/jb55/repos", 2804 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2805 "received_events_url": "https://api.github.com/users/jb55/received_events", 2806 "type": "User", 2807 "site_admin": false 2808 }, 2809 "labels": [], 2810 "state": "open", 2811 "locked": false, 2812 "assignee": { 2813 "login": "jb55", 2814 "id": 45598, 2815 "node_id": "MDQ6VXNlcjQ1NTk4", 2816 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2817 "gravatar_id": "", 2818 "url": "https://api.github.com/users/jb55", 2819 "html_url": "https://github.com/jb55", 2820 "followers_url": "https://api.github.com/users/jb55/followers", 2821 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2822 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2823 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2824 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2825 "organizations_url": "https://api.github.com/users/jb55/orgs", 2826 "repos_url": "https://api.github.com/users/jb55/repos", 2827 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2828 "received_events_url": "https://api.github.com/users/jb55/received_events", 2829 "type": "User", 2830 "site_admin": false 2831 }, 2832 "assignees": [ 2833 { 2834 "login": "jb55", 2835 "id": 45598, 2836 "node_id": "MDQ6VXNlcjQ1NTk4", 2837 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2838 "gravatar_id": "", 2839 "url": "https://api.github.com/users/jb55", 2840 "html_url": "https://github.com/jb55", 2841 "followers_url": "https://api.github.com/users/jb55/followers", 2842 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2843 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2844 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2845 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2846 "organizations_url": "https://api.github.com/users/jb55/orgs", 2847 "repos_url": "https://api.github.com/users/jb55/repos", 2848 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2849 "received_events_url": "https://api.github.com/users/jb55/received_events", 2850 "type": "User", 2851 "site_admin": false 2852 } 2853 ], 2854 "milestone": null, 2855 "comments": 10, 2856 "created_at": "2024-04-08T19:11:49Z", 2857 "updated_at": "2024-04-09T20:20:38Z", 2858 "closed_at": null, 2859 "author_association": "CONTRIBUTOR", 2860 "active_lock_reason": null, 2861 "body": "Lucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's get these running in the agdk-eframe demo first to confirm it is working", 2862 "reactions": { 2863 "url": "https://api.github.com/repos/damus-io/android/issues/77/reactions", 2864 "total_count": 0, 2865 "+1": 0, 2866 "-1": 0, 2867 "laugh": 0, 2868 "hooray": 0, 2869 "confused": 0, 2870 "heart": 0, 2871 "rocket": 0, 2872 "eyes": 0 2873 }, 2874 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/77/timeline", 2875 "performed_via_github_app": null, 2876 "state_reason": null 2877 }, 2878 "comment": { 2879 "user": "lucasmerlin", 2880 "created_at": "2024-04-09T19:57:09Z", 2881 "updated_at": "2024-04-09T19:58:07Z", 2882 "body": "For the autocomple to work you have to set the input type, I do that somewhere in my fork of android Activity (can't check for the specific spot right now, sorry)\r\n\r\nAlso I've recently been having a weird bug where numbers are typed twice, not sure what's the deal there " 2883 } 2884 }, 2885 { 2886 "issue": { 2887 "url": "https://api.github.com/repos/damus-io/android/issues/77", 2888 "repository_url": "https://api.github.com/repos/damus-io/android", 2889 "labels_url": "https://api.github.com/repos/damus-io/android/issues/77/labels{/name}", 2890 "comments_url": "https://api.github.com/repos/damus-io/android/issues/77/comments", 2891 "events_url": "https://api.github.com/repos/damus-io/android/issues/77/events", 2892 "html_url": "https://github.com/damus-io/android/issues/77", 2893 "id": 2231914563, 2894 "node_id": "I_kwDOKzWMZs6FCFBD", 2895 "number": 77, 2896 "title": "Update agdk-eframe demo to latest IME branches from lucas", 2897 "user": { 2898 "login": "jb55", 2899 "id": 45598, 2900 "node_id": "MDQ6VXNlcjQ1NTk4", 2901 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2902 "gravatar_id": "", 2903 "url": "https://api.github.com/users/jb55", 2904 "html_url": "https://github.com/jb55", 2905 "followers_url": "https://api.github.com/users/jb55/followers", 2906 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2907 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2908 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2909 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2910 "organizations_url": "https://api.github.com/users/jb55/orgs", 2911 "repos_url": "https://api.github.com/users/jb55/repos", 2912 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2913 "received_events_url": "https://api.github.com/users/jb55/received_events", 2914 "type": "User", 2915 "site_admin": false 2916 }, 2917 "labels": [], 2918 "state": "open", 2919 "locked": false, 2920 "assignee": { 2921 "login": "jb55", 2922 "id": 45598, 2923 "node_id": "MDQ6VXNlcjQ1NTk4", 2924 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2925 "gravatar_id": "", 2926 "url": "https://api.github.com/users/jb55", 2927 "html_url": "https://github.com/jb55", 2928 "followers_url": "https://api.github.com/users/jb55/followers", 2929 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2930 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2931 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2932 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2933 "organizations_url": "https://api.github.com/users/jb55/orgs", 2934 "repos_url": "https://api.github.com/users/jb55/repos", 2935 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2936 "received_events_url": "https://api.github.com/users/jb55/received_events", 2937 "type": "User", 2938 "site_admin": false 2939 }, 2940 "assignees": [ 2941 { 2942 "login": "jb55", 2943 "id": 45598, 2944 "node_id": "MDQ6VXNlcjQ1NTk4", 2945 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 2946 "gravatar_id": "", 2947 "url": "https://api.github.com/users/jb55", 2948 "html_url": "https://github.com/jb55", 2949 "followers_url": "https://api.github.com/users/jb55/followers", 2950 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 2951 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 2952 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 2953 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 2954 "organizations_url": "https://api.github.com/users/jb55/orgs", 2955 "repos_url": "https://api.github.com/users/jb55/repos", 2956 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 2957 "received_events_url": "https://api.github.com/users/jb55/received_events", 2958 "type": "User", 2959 "site_admin": false 2960 } 2961 ], 2962 "milestone": null, 2963 "comments": 10, 2964 "created_at": "2024-04-08T19:11:49Z", 2965 "updated_at": "2024-04-09T20:20:38Z", 2966 "closed_at": null, 2967 "author_association": "CONTRIBUTOR", 2968 "active_lock_reason": null, 2969 "body": "Lucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's get these running in the agdk-eframe demo first to confirm it is working", 2970 "reactions": { 2971 "url": "https://api.github.com/repos/damus-io/android/issues/77/reactions", 2972 "total_count": 0, 2973 "+1": 0, 2974 "-1": 0, 2975 "laugh": 0, 2976 "hooray": 0, 2977 "confused": 0, 2978 "heart": 0, 2979 "rocket": 0, 2980 "eyes": 0 2981 }, 2982 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/77/timeline", 2983 "performed_via_github_app": null, 2984 "state_reason": null 2985 }, 2986 "comment": { 2987 "user": "jb55", 2988 "created_at": "2024-04-09T20:16:40Z", 2989 "updated_at": "2024-04-09T20:16:40Z", 2990 "body": "I wonder if there are bugs in GameActivity 2.0.2:\r\n\r\nhere's a few fix commits I found in v2..v3\r\n`git log --reverse -p --grep fix --no-merges cf9df6e927bafbc496e160830d378600c53bddc8.. -- game-text-input`\r\n\r\n```\r\n92c7a40427ea fix hardware keyboard support\r\n140cb55df2f4 fix for hardware and software keyboards being out of sync\r\ncd73cee28208 fixed multiline mode\r\nd238783e3497 add physical volume buttons to the ignore list for GameTextInput\r\nb2f598f0ad85 fix GameTextInput editing functions\r\n18fc8e25c509 fix a race condition in GameTextInput\r\ndfca49441b07 refactor GameActivity and GameTextInput interfaces\r\nf1f286b6486e fix text deletion in GameTextInput\r\n094b21ff9b45 fix selection when typing with hardware keyboard\r\n8bee4e62f5c6 fixed state updates propagation\r\n80739abf3623 bump GameActivity and GameTextInput to 3.0.3\r\n```\r\n\r\nlog: https://cdn.jb55.com/s/4f6ef8bbbd88ebfc.txt\r\n\r\nWe may need to update android-activity to gameactivity 3 to see if that's the case.\r\n\r\nLooks like the API changes are in here:\r\n\r\nhttps://cdn.jb55.com/s/be4dbb351d42c4e7.txt\r\n" 2991 } 2992 }, 2993 { 2994 "issue": { 2995 "url": "https://api.github.com/repos/damus-io/android/issues/77", 2996 "repository_url": "https://api.github.com/repos/damus-io/android", 2997 "labels_url": "https://api.github.com/repos/damus-io/android/issues/77/labels{/name}", 2998 "comments_url": "https://api.github.com/repos/damus-io/android/issues/77/comments", 2999 "events_url": "https://api.github.com/repos/damus-io/android/issues/77/events", 3000 "html_url": "https://github.com/damus-io/android/issues/77", 3001 "id": 2231914563, 3002 "node_id": "I_kwDOKzWMZs6FCFBD", 3003 "number": 77, 3004 "title": "Update agdk-eframe demo to latest IME branches from lucas", 3005 "user": { 3006 "login": "jb55", 3007 "id": 45598, 3008 "node_id": "MDQ6VXNlcjQ1NTk4", 3009 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3010 "gravatar_id": "", 3011 "url": "https://api.github.com/users/jb55", 3012 "html_url": "https://github.com/jb55", 3013 "followers_url": "https://api.github.com/users/jb55/followers", 3014 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3015 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3016 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3017 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3018 "organizations_url": "https://api.github.com/users/jb55/orgs", 3019 "repos_url": "https://api.github.com/users/jb55/repos", 3020 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3021 "received_events_url": "https://api.github.com/users/jb55/received_events", 3022 "type": "User", 3023 "site_admin": false 3024 }, 3025 "labels": [], 3026 "state": "open", 3027 "locked": false, 3028 "assignee": { 3029 "login": "jb55", 3030 "id": 45598, 3031 "node_id": "MDQ6VXNlcjQ1NTk4", 3032 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3033 "gravatar_id": "", 3034 "url": "https://api.github.com/users/jb55", 3035 "html_url": "https://github.com/jb55", 3036 "followers_url": "https://api.github.com/users/jb55/followers", 3037 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3038 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3039 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3040 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3041 "organizations_url": "https://api.github.com/users/jb55/orgs", 3042 "repos_url": "https://api.github.com/users/jb55/repos", 3043 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3044 "received_events_url": "https://api.github.com/users/jb55/received_events", 3045 "type": "User", 3046 "site_admin": false 3047 }, 3048 "assignees": [ 3049 { 3050 "login": "jb55", 3051 "id": 45598, 3052 "node_id": "MDQ6VXNlcjQ1NTk4", 3053 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3054 "gravatar_id": "", 3055 "url": "https://api.github.com/users/jb55", 3056 "html_url": "https://github.com/jb55", 3057 "followers_url": "https://api.github.com/users/jb55/followers", 3058 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3059 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3060 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3061 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3062 "organizations_url": "https://api.github.com/users/jb55/orgs", 3063 "repos_url": "https://api.github.com/users/jb55/repos", 3064 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3065 "received_events_url": "https://api.github.com/users/jb55/received_events", 3066 "type": "User", 3067 "site_admin": false 3068 } 3069 ], 3070 "milestone": null, 3071 "comments": 10, 3072 "created_at": "2024-04-08T19:11:49Z", 3073 "updated_at": "2024-04-09T20:20:38Z", 3074 "closed_at": null, 3075 "author_association": "CONTRIBUTOR", 3076 "active_lock_reason": null, 3077 "body": "Lucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's get these running in the agdk-eframe demo first to confirm it is working", 3078 "reactions": { 3079 "url": "https://api.github.com/repos/damus-io/android/issues/77/reactions", 3080 "total_count": 0, 3081 "+1": 0, 3082 "-1": 0, 3083 "laugh": 0, 3084 "hooray": 0, 3085 "confused": 0, 3086 "heart": 0, 3087 "rocket": 0, 3088 "eyes": 0 3089 }, 3090 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/77/timeline", 3091 "performed_via_github_app": null, 3092 "state_reason": null 3093 }, 3094 "comment": { 3095 "user": "jb55", 3096 "created_at": "2024-04-09T20:18:34Z", 3097 "updated_at": "2024-04-09T20:18:34Z", 3098 "body": "not sure if you've looked at GameActivity 3 yet @rib or have any insight here :eyes: " 3099 } 3100 }, 3101 { 3102 "issue": { 3103 "url": "https://api.github.com/repos/damus-io/android/issues/77", 3104 "repository_url": "https://api.github.com/repos/damus-io/android", 3105 "labels_url": "https://api.github.com/repos/damus-io/android/issues/77/labels{/name}", 3106 "comments_url": "https://api.github.com/repos/damus-io/android/issues/77/comments", 3107 "events_url": "https://api.github.com/repos/damus-io/android/issues/77/events", 3108 "html_url": "https://github.com/damus-io/android/issues/77", 3109 "id": 2231914563, 3110 "node_id": "I_kwDOKzWMZs6FCFBD", 3111 "number": 77, 3112 "title": "Update agdk-eframe demo to latest IME branches from lucas", 3113 "user": { 3114 "login": "jb55", 3115 "id": 45598, 3116 "node_id": "MDQ6VXNlcjQ1NTk4", 3117 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3118 "gravatar_id": "", 3119 "url": "https://api.github.com/users/jb55", 3120 "html_url": "https://github.com/jb55", 3121 "followers_url": "https://api.github.com/users/jb55/followers", 3122 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3123 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3124 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3125 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3126 "organizations_url": "https://api.github.com/users/jb55/orgs", 3127 "repos_url": "https://api.github.com/users/jb55/repos", 3128 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3129 "received_events_url": "https://api.github.com/users/jb55/received_events", 3130 "type": "User", 3131 "site_admin": false 3132 }, 3133 "labels": [], 3134 "state": "open", 3135 "locked": false, 3136 "assignee": { 3137 "login": "jb55", 3138 "id": 45598, 3139 "node_id": "MDQ6VXNlcjQ1NTk4", 3140 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3141 "gravatar_id": "", 3142 "url": "https://api.github.com/users/jb55", 3143 "html_url": "https://github.com/jb55", 3144 "followers_url": "https://api.github.com/users/jb55/followers", 3145 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3146 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3147 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3148 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3149 "organizations_url": "https://api.github.com/users/jb55/orgs", 3150 "repos_url": "https://api.github.com/users/jb55/repos", 3151 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3152 "received_events_url": "https://api.github.com/users/jb55/received_events", 3153 "type": "User", 3154 "site_admin": false 3155 }, 3156 "assignees": [ 3157 { 3158 "login": "jb55", 3159 "id": 45598, 3160 "node_id": "MDQ6VXNlcjQ1NTk4", 3161 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3162 "gravatar_id": "", 3163 "url": "https://api.github.com/users/jb55", 3164 "html_url": "https://github.com/jb55", 3165 "followers_url": "https://api.github.com/users/jb55/followers", 3166 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3167 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3168 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3169 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3170 "organizations_url": "https://api.github.com/users/jb55/orgs", 3171 "repos_url": "https://api.github.com/users/jb55/repos", 3172 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3173 "received_events_url": "https://api.github.com/users/jb55/received_events", 3174 "type": "User", 3175 "site_admin": false 3176 } 3177 ], 3178 "milestone": null, 3179 "comments": 10, 3180 "created_at": "2024-04-08T19:11:49Z", 3181 "updated_at": "2024-04-09T20:20:38Z", 3182 "closed_at": null, 3183 "author_association": "CONTRIBUTOR", 3184 "active_lock_reason": null, 3185 "body": "Lucas has a updated branches for v0.26 (see comment here): \r\n\r\n- https://github.com/damus-io/android/issues/60#issuecomment-2022502072\r\n\r\nLet's get these running in the agdk-eframe demo first to confirm it is working", 3186 "reactions": { 3187 "url": "https://api.github.com/repos/damus-io/android/issues/77/reactions", 3188 "total_count": 0, 3189 "+1": 0, 3190 "-1": 0, 3191 "laugh": 0, 3192 "hooray": 0, 3193 "confused": 0, 3194 "heart": 0, 3195 "rocket": 0, 3196 "eyes": 0 3197 }, 3198 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/77/timeline", 3199 "performed_via_github_app": null, 3200 "state_reason": null 3201 }, 3202 "comment": { 3203 "user": "jb55", 3204 "created_at": "2024-04-09T20:20:37Z", 3205 "updated_at": "2024-04-09T20:20:37Z", 3206 "body": "> @lucasmerlin: For the autocomplete to work you have to set the input type\r\n\r\nok I'll try that, thanks!" 3207 } 3208 }, 3209 { 3210 "issue": { 3211 "url": "https://api.github.com/repos/damus-io/android/issues/76", 3212 "repository_url": "https://api.github.com/repos/damus-io/android", 3213 "labels_url": "https://api.github.com/repos/damus-io/android/issues/76/labels{/name}", 3214 "comments_url": "https://api.github.com/repos/damus-io/android/issues/76/comments", 3215 "events_url": "https://api.github.com/repos/damus-io/android/issues/76/events", 3216 "html_url": "https://github.com/damus-io/android/issues/76", 3217 "id": 2231905733, 3218 "node_id": "I_kwDOKzWMZs6FCC3F", 3219 "number": 76, 3220 "title": "Android build files", 3221 "user": { 3222 "login": "jb55", 3223 "id": 45598, 3224 "node_id": "MDQ6VXNlcjQ1NTk4", 3225 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3226 "gravatar_id": "", 3227 "url": "https://api.github.com/users/jb55", 3228 "html_url": "https://github.com/jb55", 3229 "followers_url": "https://api.github.com/users/jb55/followers", 3230 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3231 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3232 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3233 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3234 "organizations_url": "https://api.github.com/users/jb55/orgs", 3235 "repos_url": "https://api.github.com/users/jb55/repos", 3236 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3237 "received_events_url": "https://api.github.com/users/jb55/received_events", 3238 "type": "User", 3239 "site_admin": false 3240 }, 3241 "labels": [], 3242 "state": "open", 3243 "locked": false, 3244 "assignee": { 3245 "login": "jb55", 3246 "id": 45598, 3247 "node_id": "MDQ6VXNlcjQ1NTk4", 3248 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3249 "gravatar_id": "", 3250 "url": "https://api.github.com/users/jb55", 3251 "html_url": "https://github.com/jb55", 3252 "followers_url": "https://api.github.com/users/jb55/followers", 3253 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3254 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3255 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3256 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3257 "organizations_url": "https://api.github.com/users/jb55/orgs", 3258 "repos_url": "https://api.github.com/users/jb55/repos", 3259 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3260 "received_events_url": "https://api.github.com/users/jb55/received_events", 3261 "type": "User", 3262 "site_admin": false 3263 }, 3264 "assignees": [ 3265 { 3266 "login": "jb55", 3267 "id": 45598, 3268 "node_id": "MDQ6VXNlcjQ1NTk4", 3269 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3270 "gravatar_id": "", 3271 "url": "https://api.github.com/users/jb55", 3272 "html_url": "https://github.com/jb55", 3273 "followers_url": "https://api.github.com/users/jb55/followers", 3274 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3275 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3276 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3277 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3278 "organizations_url": "https://api.github.com/users/jb55/orgs", 3279 "repos_url": "https://api.github.com/users/jb55/repos", 3280 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3281 "received_events_url": "https://api.github.com/users/jb55/received_events", 3282 "type": "User", 3283 "site_admin": false 3284 } 3285 ], 3286 "milestone": null, 3287 "comments": 0, 3288 "created_at": "2024-04-08T19:05:24Z", 3289 "updated_at": "2024-04-08T19:56:33Z", 3290 "closed_at": null, 3291 "author_association": "CONTRIBUTOR", 3292 "active_lock_reason": null, 3293 "body": "Instead of using cargo-apk in\r\n\r\n- https://github.com/damus-io/android/issues/74\r\n\r\nWe use a direct android gradle build for building the app. This should give us a bit more flexibility when building our app instead of letting cargo-apk/xbuild handle it.\r\n\r\nIt also allows us to establish a GameActivity build directly for:\r\n\r\n- https://github.com/damus-io/android/issues/75", 3294 "reactions": { 3295 "url": "https://api.github.com/repos/damus-io/android/issues/76/reactions", 3296 "total_count": 0, 3297 "+1": 0, 3298 "-1": 0, 3299 "laugh": 0, 3300 "hooray": 0, 3301 "confused": 0, 3302 "heart": 0, 3303 "rocket": 0, 3304 "eyes": 0 3305 }, 3306 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/76/timeline", 3307 "performed_via_github_app": null, 3308 "state_reason": null 3309 } 3310 }, 3311 { 3312 "issue": { 3313 "url": "https://api.github.com/repos/damus-io/android/issues/75", 3314 "repository_url": "https://api.github.com/repos/damus-io/android", 3315 "labels_url": "https://api.github.com/repos/damus-io/android/issues/75/labels{/name}", 3316 "comments_url": "https://api.github.com/repos/damus-io/android/issues/75/comments", 3317 "events_url": "https://api.github.com/repos/damus-io/android/issues/75/events", 3318 "html_url": "https://github.com/damus-io/android/issues/75", 3319 "id": 2231833486, 3320 "node_id": "I_kwDOKzWMZs6FBxOO", 3321 "number": 75, 3322 "title": "Switch to GameActivity", 3323 "user": { 3324 "login": "jb55", 3325 "id": 45598, 3326 "node_id": "MDQ6VXNlcjQ1NTk4", 3327 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3328 "gravatar_id": "", 3329 "url": "https://api.github.com/users/jb55", 3330 "html_url": "https://github.com/jb55", 3331 "followers_url": "https://api.github.com/users/jb55/followers", 3332 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3333 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3334 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3335 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3336 "organizations_url": "https://api.github.com/users/jb55/orgs", 3337 "repos_url": "https://api.github.com/users/jb55/repos", 3338 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3339 "received_events_url": "https://api.github.com/users/jb55/received_events", 3340 "type": "User", 3341 "site_admin": false 3342 }, 3343 "labels": [ 3344 { 3345 "id": 6339173748, 3346 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 3347 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 3348 "name": "technical", 3349 "color": "e99695", 3350 "default": false, 3351 "description": "" 3352 } 3353 ], 3354 "state": "open", 3355 "locked": false, 3356 "assignee": { 3357 "login": "jb55", 3358 "id": 45598, 3359 "node_id": "MDQ6VXNlcjQ1NTk4", 3360 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3361 "gravatar_id": "", 3362 "url": "https://api.github.com/users/jb55", 3363 "html_url": "https://github.com/jb55", 3364 "followers_url": "https://api.github.com/users/jb55/followers", 3365 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3366 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3367 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3368 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3369 "organizations_url": "https://api.github.com/users/jb55/orgs", 3370 "repos_url": "https://api.github.com/users/jb55/repos", 3371 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3372 "received_events_url": "https://api.github.com/users/jb55/received_events", 3373 "type": "User", 3374 "site_admin": false 3375 }, 3376 "assignees": [ 3377 { 3378 "login": "jb55", 3379 "id": 45598, 3380 "node_id": "MDQ6VXNlcjQ1NTk4", 3381 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3382 "gravatar_id": "", 3383 "url": "https://api.github.com/users/jb55", 3384 "html_url": "https://github.com/jb55", 3385 "followers_url": "https://api.github.com/users/jb55/followers", 3386 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3387 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3388 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3389 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3390 "organizations_url": "https://api.github.com/users/jb55/orgs", 3391 "repos_url": "https://api.github.com/users/jb55/repos", 3392 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3393 "received_events_url": "https://api.github.com/users/jb55/received_events", 3394 "type": "User", 3395 "site_admin": false 3396 } 3397 ], 3398 "milestone": null, 3399 "comments": 0, 3400 "created_at": "2024-04-08T18:21:55Z", 3401 "updated_at": "2024-04-08T19:56:44Z", 3402 "closed_at": null, 3403 "author_association": "CONTRIBUTOR", 3404 "active_lock_reason": null, 3405 "body": "This is needed for \r\n\r\n- #60\r\n\r\nProgress:\r\n\r\n- [x] https://github.com/damus-io/android/issues/74\r\n- [ ] https://github.com/damus-io/android/issues/76", 3406 "reactions": { 3407 "url": "https://api.github.com/repos/damus-io/android/issues/75/reactions", 3408 "total_count": 0, 3409 "+1": 0, 3410 "-1": 0, 3411 "laugh": 0, 3412 "hooray": 0, 3413 "confused": 0, 3414 "heart": 0, 3415 "rocket": 0, 3416 "eyes": 0 3417 }, 3418 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/75/timeline", 3419 "performed_via_github_app": null, 3420 "state_reason": null 3421 } 3422 }, 3423 { 3424 "issue": { 3425 "url": "https://api.github.com/repos/damus-io/android/issues/74", 3426 "repository_url": "https://api.github.com/repos/damus-io/android", 3427 "labels_url": "https://api.github.com/repos/damus-io/android/issues/74/labels{/name}", 3428 "comments_url": "https://api.github.com/repos/damus-io/android/issues/74/comments", 3429 "events_url": "https://api.github.com/repos/damus-io/android/issues/74/events", 3430 "html_url": "https://github.com/damus-io/android/issues/74", 3431 "id": 2231829108, 3432 "node_id": "I_kwDOKzWMZs6FBwJ0", 3433 "number": 74, 3434 "title": "Get agdk-eframe demo working", 3435 "user": { 3436 "login": "jb55", 3437 "id": 45598, 3438 "node_id": "MDQ6VXNlcjQ1NTk4", 3439 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3440 "gravatar_id": "", 3441 "url": "https://api.github.com/users/jb55", 3442 "html_url": "https://github.com/jb55", 3443 "followers_url": "https://api.github.com/users/jb55/followers", 3444 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3445 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3446 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3447 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3448 "organizations_url": "https://api.github.com/users/jb55/orgs", 3449 "repos_url": "https://api.github.com/users/jb55/repos", 3450 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3451 "received_events_url": "https://api.github.com/users/jb55/received_events", 3452 "type": "User", 3453 "site_admin": false 3454 }, 3455 "labels": [ 3456 { 3457 "id": 6339173748, 3458 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 3459 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 3460 "name": "technical", 3461 "color": "e99695", 3462 "default": false, 3463 "description": "" 3464 } 3465 ], 3466 "state": "closed", 3467 "locked": false, 3468 "assignee": null, 3469 "assignees": [], 3470 "milestone": null, 3471 "comments": 1, 3472 "created_at": "2024-04-08T18:18:48Z", 3473 "updated_at": "2024-04-08T18:53:58Z", 3474 "closed_at": "2024-04-08T18:53:57Z", 3475 "author_association": "CONTRIBUTOR", 3476 "active_lock_reason": null, 3477 "body": "This is one of the few working demo of egui + soft keyboard support + gameactivity. Let's get this build working as a starting point for our softkeyboard support.\r\n\r\nIt requires gradle, which I somehow got working with some finagling.", 3478 "reactions": { 3479 "url": "https://api.github.com/repos/damus-io/android/issues/74/reactions", 3480 "total_count": 0, 3481 "+1": 0, 3482 "-1": 0, 3483 "laugh": 0, 3484 "hooray": 0, 3485 "confused": 0, 3486 "heart": 0, 3487 "rocket": 0, 3488 "eyes": 0 3489 }, 3490 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/74/timeline", 3491 "performed_via_github_app": null, 3492 "state_reason": "completed" 3493 } 3494 }, 3495 { 3496 "issue": { 3497 "url": "https://api.github.com/repos/damus-io/android/issues/74", 3498 "repository_url": "https://api.github.com/repos/damus-io/android", 3499 "labels_url": "https://api.github.com/repos/damus-io/android/issues/74/labels{/name}", 3500 "comments_url": "https://api.github.com/repos/damus-io/android/issues/74/comments", 3501 "events_url": "https://api.github.com/repos/damus-io/android/issues/74/events", 3502 "html_url": "https://github.com/damus-io/android/issues/74", 3503 "id": 2231829108, 3504 "node_id": "I_kwDOKzWMZs6FBwJ0", 3505 "number": 74, 3506 "title": "Get agdk-eframe demo working", 3507 "user": { 3508 "login": "jb55", 3509 "id": 45598, 3510 "node_id": "MDQ6VXNlcjQ1NTk4", 3511 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 3512 "gravatar_id": "", 3513 "url": "https://api.github.com/users/jb55", 3514 "html_url": "https://github.com/jb55", 3515 "followers_url": "https://api.github.com/users/jb55/followers", 3516 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 3517 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 3518 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 3519 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 3520 "organizations_url": "https://api.github.com/users/jb55/orgs", 3521 "repos_url": "https://api.github.com/users/jb55/repos", 3522 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 3523 "received_events_url": "https://api.github.com/users/jb55/received_events", 3524 "type": "User", 3525 "site_admin": false 3526 }, 3527 "labels": [ 3528 { 3529 "id": 6339173748, 3530 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 3531 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 3532 "name": "technical", 3533 "color": "e99695", 3534 "default": false, 3535 "description": "" 3536 } 3537 ], 3538 "state": "closed", 3539 "locked": false, 3540 "assignee": null, 3541 "assignees": [], 3542 "milestone": null, 3543 "comments": 1, 3544 "created_at": "2024-04-08T18:18:48Z", 3545 "updated_at": "2024-04-08T18:53:58Z", 3546 "closed_at": "2024-04-08T18:53:57Z", 3547 "author_association": "CONTRIBUTOR", 3548 "active_lock_reason": null, 3549 "body": "This is one of the few working demo of egui + soft keyboard support + gameactivity. Let's get this build working as a starting point for our softkeyboard support.\r\n\r\nIt requires gradle, which I somehow got working with some finagling.", 3550 "reactions": { 3551 "url": "https://api.github.com/repos/damus-io/android/issues/74/reactions", 3552 "total_count": 0, 3553 "+1": 0, 3554 "-1": 0, 3555 "laugh": 0, 3556 "hooray": 0, 3557 "confused": 0, 3558 "heart": 0, 3559 "rocket": 0, 3560 "eyes": 0 3561 }, 3562 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/74/timeline", 3563 "performed_via_github_app": null, 3564 "state_reason": "completed" 3565 }, 3566 "comment": { 3567 "user": "jb55", 3568 "created_at": "2024-04-08T18:53:57Z", 3569 "updated_at": "2024-04-08T18:53:57Z", 3570 "body": "Got it working:\n\nhttps://github.com/jb55/rust-android-examples/commit/87f137d05281718ec20bf124e300658b0cc96133\n\nhttps://cdn.jb55.com/s/keyboard-working.mp4\n\nThe egui/winit version on this demo is quite old though, we will need to update it to support the latest versions" 3571 } 3572 }, 3573 { 3574 "issue": { 3575 "url": "https://api.github.com/repos/damus-io/android/issues/73", 3576 "repository_url": "https://api.github.com/repos/damus-io/android", 3577 "labels_url": "https://api.github.com/repos/damus-io/android/issues/73/labels{/name}", 3578 "comments_url": "https://api.github.com/repos/damus-io/android/issues/73/comments", 3579 "events_url": "https://api.github.com/repos/damus-io/android/issues/73/events", 3580 "html_url": "https://github.com/damus-io/android/issues/73", 3581 "id": 2230262004, 3582 "node_id": "I_kwDOKzWMZs6E7xj0", 3583 "number": 73, 3584 "title": "Embed animations (GIF)", 3585 "user": { 3586 "login": "alltheseas", 3587 "id": 64376233, 3588 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 3589 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 3590 "gravatar_id": "", 3591 "url": "https://api.github.com/users/alltheseas", 3592 "html_url": "https://github.com/alltheseas", 3593 "followers_url": "https://api.github.com/users/alltheseas/followers", 3594 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 3595 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 3596 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 3597 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 3598 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 3599 "repos_url": "https://api.github.com/users/alltheseas/repos", 3600 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 3601 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 3602 "type": "User", 3603 "site_admin": false 3604 }, 3605 "labels": [ 3606 { 3607 "id": 6264778307, 3608 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 3609 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 3610 "name": "enhancement", 3611 "color": "a2eeef", 3612 "default": true, 3613 "description": "New feature or request" 3614 }, 3615 { 3616 "id": 6795254003, 3617 "node_id": "LA_kwDOKzWMZs8AAAABlQdY8w", 3618 "url": "https://api.github.com/repos/damus-io/android/labels/media", 3619 "name": "media", 3620 "color": "4EEE17", 3621 "default": false, 3622 "description": "" 3623 } 3624 ], 3625 "state": "open", 3626 "locked": false, 3627 "assignee": null, 3628 "assignees": [], 3629 "milestone": null, 3630 "comments": 0, 3631 "created_at": "2024-04-08T05:02:44Z", 3632 "updated_at": "2024-04-08T18:28:05Z", 3633 "closed_at": null, 3634 "author_association": "CONTRIBUTOR", 3635 "active_lock_reason": null, 3636 "body": "## user story\r\nAs a Damus animation enjoyer, I want to see GIFs/animations rendered directly on Android/noteck, so that I do not have to click on a link and have a browser render the GIF.\r\n\r\n### acceptance criteria\r\n1. embed animations in note (For instance nostr.build/cat.gif etc)\r\n2,. user has option to disable auto-embed animation (see low data mode#67 )", 3637 "reactions": { 3638 "url": "https://api.github.com/repos/damus-io/android/issues/73/reactions", 3639 "total_count": 0, 3640 "+1": 0, 3641 "-1": 0, 3642 "laugh": 0, 3643 "hooray": 0, 3644 "confused": 0, 3645 "heart": 0, 3646 "rocket": 0, 3647 "eyes": 0 3648 }, 3649 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/73/timeline", 3650 "performed_via_github_app": null, 3651 "state_reason": null 3652 } 3653 }, 3654 { 3655 "issue": { 3656 "url": "https://api.github.com/repos/damus-io/android/issues/72", 3657 "repository_url": "https://api.github.com/repos/damus-io/android", 3658 "labels_url": "https://api.github.com/repos/damus-io/android/issues/72/labels{/name}", 3659 "comments_url": "https://api.github.com/repos/damus-io/android/issues/72/comments", 3660 "events_url": "https://api.github.com/repos/damus-io/android/issues/72/events", 3661 "html_url": "https://github.com/damus-io/android/issues/72", 3662 "id": 2230259038, 3663 "node_id": "I_kwDOKzWMZs6E7w1e", 3664 "number": 72, 3665 "title": "Embed video playback", 3666 "user": { 3667 "login": "alltheseas", 3668 "id": 64376233, 3669 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 3670 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 3671 "gravatar_id": "", 3672 "url": "https://api.github.com/users/alltheseas", 3673 "html_url": "https://github.com/alltheseas", 3674 "followers_url": "https://api.github.com/users/alltheseas/followers", 3675 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 3676 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 3677 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 3678 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 3679 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 3680 "repos_url": "https://api.github.com/users/alltheseas/repos", 3681 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 3682 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 3683 "type": "User", 3684 "site_admin": false 3685 }, 3686 "labels": [ 3687 { 3688 "id": 6795254003, 3689 "node_id": "LA_kwDOKzWMZs8AAAABlQdY8w", 3690 "url": "https://api.github.com/repos/damus-io/android/labels/media", 3691 "name": "media", 3692 "color": "4EEE17", 3693 "default": false, 3694 "description": "" 3695 } 3696 ], 3697 "state": "open", 3698 "locked": false, 3699 "assignee": null, 3700 "assignees": [], 3701 "milestone": null, 3702 "comments": 0, 3703 "created_at": "2024-04-08T05:00:08Z", 3704 "updated_at": "2024-04-08T05:01:18Z", 3705 "closed_at": null, 3706 "author_association": "CONTRIBUTOR", 3707 "active_lock_reason": null, 3708 "body": "## user story\r\n\r\nAs a Damus media enjoyer, I would like to be able to play videos in Damus, so that I do not have to click on a link and view the video in the browser.\r\n\r\n### acceptance criteria\r\n\r\n1. video links area embedded in note (e.g. video.mp4 etc)\r\n2. user has option to disable embed auto loading (see low data mode #67 )", 3709 "reactions": { 3710 "url": "https://api.github.com/repos/damus-io/android/issues/72/reactions", 3711 "total_count": 0, 3712 "+1": 0, 3713 "-1": 0, 3714 "laugh": 0, 3715 "hooray": 0, 3716 "confused": 0, 3717 "heart": 0, 3718 "rocket": 0, 3719 "eyes": 0 3720 }, 3721 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/72/timeline", 3722 "performed_via_github_app": null, 3723 "state_reason": null 3724 } 3725 }, 3726 { 3727 "issue": { 3728 "url": "https://api.github.com/repos/damus-io/android/issues/71", 3729 "repository_url": "https://api.github.com/repos/damus-io/android", 3730 "labels_url": "https://api.github.com/repos/damus-io/android/issues/71/labels{/name}", 3731 "comments_url": "https://api.github.com/repos/damus-io/android/issues/71/comments", 3732 "events_url": "https://api.github.com/repos/damus-io/android/issues/71/events", 3733 "html_url": "https://github.com/damus-io/android/issues/71", 3734 "id": 2230257362, 3735 "node_id": "I_kwDOKzWMZs6E7wbS", 3736 "number": 71, 3737 "title": "Embed static images", 3738 "user": { 3739 "login": "alltheseas", 3740 "id": 64376233, 3741 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 3742 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 3743 "gravatar_id": "", 3744 "url": "https://api.github.com/users/alltheseas", 3745 "html_url": "https://github.com/alltheseas", 3746 "followers_url": "https://api.github.com/users/alltheseas/followers", 3747 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 3748 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 3749 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 3750 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 3751 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 3752 "repos_url": "https://api.github.com/users/alltheseas/repos", 3753 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 3754 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 3755 "type": "User", 3756 "site_admin": false 3757 }, 3758 "labels": [ 3759 { 3760 "id": 6264778307, 3761 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 3762 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 3763 "name": "enhancement", 3764 "color": "a2eeef", 3765 "default": true, 3766 "description": "New feature or request" 3767 }, 3768 { 3769 "id": 6795254003, 3770 "node_id": "LA_kwDOKzWMZs8AAAABlQdY8w", 3771 "url": "https://api.github.com/repos/damus-io/android/labels/media", 3772 "name": "media", 3773 "color": "4EEE17", 3774 "default": false, 3775 "description": "" 3776 } 3777 ], 3778 "state": "open", 3779 "locked": false, 3780 "assignee": null, 3781 "assignees": [], 3782 "milestone": null, 3783 "comments": 1, 3784 "created_at": "2024-04-08T04:58:27Z", 3785 "updated_at": "2024-04-08T17:53:19Z", 3786 "closed_at": null, 3787 "author_association": "CONTRIBUTOR", 3788 "active_lock_reason": null, 3789 "body": "## user story\r\n\r\nAs a Damus media enjoyer, I want to see images rendered directly on Android/noteck, so that I do not have to click on a link and have a browser render the image.\r\n\r\n### acceptance criteria\r\n\r\n1. embed images in note (For instance nostr.build/cat.jpeg; .png; .jpg etc)\r\n2. user has options to disable auto-embed image (see low data mode#67 )\r\n", 3790 "reactions": { 3791 "url": "https://api.github.com/repos/damus-io/android/issues/71/reactions", 3792 "total_count": 0, 3793 "+1": 0, 3794 "-1": 0, 3795 "laugh": 0, 3796 "hooray": 0, 3797 "confused": 0, 3798 "heart": 0, 3799 "rocket": 0, 3800 "eyes": 0 3801 }, 3802 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/71/timeline", 3803 "performed_via_github_app": null, 3804 "state_reason": null 3805 } 3806 }, 3807 { 3808 "issue": { 3809 "url": "https://api.github.com/repos/damus-io/android/issues/71", 3810 "repository_url": "https://api.github.com/repos/damus-io/android", 3811 "labels_url": "https://api.github.com/repos/damus-io/android/issues/71/labels{/name}", 3812 "comments_url": "https://api.github.com/repos/damus-io/android/issues/71/comments", 3813 "events_url": "https://api.github.com/repos/damus-io/android/issues/71/events", 3814 "html_url": "https://github.com/damus-io/android/issues/71", 3815 "id": 2230257362, 3816 "node_id": "I_kwDOKzWMZs6E7wbS", 3817 "number": 71, 3818 "title": "Embed static images", 3819 "user": { 3820 "login": "alltheseas", 3821 "id": 64376233, 3822 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 3823 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 3824 "gravatar_id": "", 3825 "url": "https://api.github.com/users/alltheseas", 3826 "html_url": "https://github.com/alltheseas", 3827 "followers_url": "https://api.github.com/users/alltheseas/followers", 3828 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 3829 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 3830 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 3831 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 3832 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 3833 "repos_url": "https://api.github.com/users/alltheseas/repos", 3834 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 3835 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 3836 "type": "User", 3837 "site_admin": false 3838 }, 3839 "labels": [ 3840 { 3841 "id": 6264778307, 3842 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 3843 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 3844 "name": "enhancement", 3845 "color": "a2eeef", 3846 "default": true, 3847 "description": "New feature or request" 3848 }, 3849 { 3850 "id": 6795254003, 3851 "node_id": "LA_kwDOKzWMZs8AAAABlQdY8w", 3852 "url": "https://api.github.com/repos/damus-io/android/labels/media", 3853 "name": "media", 3854 "color": "4EEE17", 3855 "default": false, 3856 "description": "" 3857 } 3858 ], 3859 "state": "open", 3860 "locked": false, 3861 "assignee": null, 3862 "assignees": [], 3863 "milestone": null, 3864 "comments": 1, 3865 "created_at": "2024-04-08T04:58:27Z", 3866 "updated_at": "2024-04-08T17:53:19Z", 3867 "closed_at": null, 3868 "author_association": "CONTRIBUTOR", 3869 "active_lock_reason": null, 3870 "body": "## user story\r\n\r\nAs a Damus media enjoyer, I want to see images rendered directly on Android/noteck, so that I do not have to click on a link and have a browser render the image.\r\n\r\n### acceptance criteria\r\n\r\n1. embed images in note (For instance nostr.build/cat.jpeg; .png; .jpg etc)\r\n2. user has options to disable auto-embed image (see low data mode#67 )\r\n", 3871 "reactions": { 3872 "url": "https://api.github.com/repos/damus-io/android/issues/71/reactions", 3873 "total_count": 0, 3874 "+1": 0, 3875 "-1": 0, 3876 "laugh": 0, 3877 "hooray": 0, 3878 "confused": 0, 3879 "heart": 0, 3880 "rocket": 0, 3881 "eyes": 0 3882 }, 3883 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/71/timeline", 3884 "performed_via_github_app": null, 3885 "state_reason": null 3886 }, 3887 "comment": { 3888 "user": "jb55", 3889 "created_at": "2024-04-08T17:53:18Z", 3890 "updated_at": "2024-04-08T17:53:18Z", 3891 "body": "On Sun, Apr 07, 2024 at 09:58:48PM GMT, alltheseas wrote:\n>## user story\n>\n>As a Damus media enjoyer, I want to see images rendered directly on Android/noteck, so that I do not have to click on a link and have a browser render the image.\n>\n>### acceptance criteria\n>\n>1. embed images in note (For instance nostr.build/cat.jpeg; .png; .jpg etc)\n>2. user has options to disable auto-embed image (see low data mode#67 )\n\nThis is done but I've disabled it for now since its a bit buggy. Will\nenable to soon once I fix the remaining bugs.\n" 3892 } 3893 }, 3894 { 3895 "issue": { 3896 "url": "https://api.github.com/repos/damus-io/android/issues/70", 3897 "repository_url": "https://api.github.com/repos/damus-io/android", 3898 "labels_url": "https://api.github.com/repos/damus-io/android/issues/70/labels{/name}", 3899 "comments_url": "https://api.github.com/repos/damus-io/android/issues/70/comments", 3900 "events_url": "https://api.github.com/repos/damus-io/android/issues/70/events", 3901 "html_url": "https://github.com/damus-io/android/issues/70", 3902 "id": 2224004915, 3903 "node_id": "I_kwDOKzWMZs6Ej58z", 3904 "number": 70, 3905 "title": "Onboarding: suggest follows list", 3906 "user": { 3907 "login": "alltheseas", 3908 "id": 64376233, 3909 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 3910 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 3911 "gravatar_id": "", 3912 "url": "https://api.github.com/users/alltheseas", 3913 "html_url": "https://github.com/alltheseas", 3914 "followers_url": "https://api.github.com/users/alltheseas/followers", 3915 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 3916 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 3917 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 3918 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 3919 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 3920 "repos_url": "https://api.github.com/users/alltheseas/repos", 3921 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 3922 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 3923 "type": "User", 3924 "site_admin": false 3925 }, 3926 "labels": [ 3927 { 3928 "id": 6778671627, 3929 "node_id": "LA_kwDOKzWMZs8AAAABlApSCw", 3930 "url": "https://api.github.com/repos/damus-io/android/labels/onboarding", 3931 "name": "onboarding", 3932 "color": "1A6B24", 3933 "default": false, 3934 "description": "" 3935 } 3936 ], 3937 "state": "open", 3938 "locked": false, 3939 "assignee": null, 3940 "assignees": [], 3941 "milestone": null, 3942 "comments": 0, 3943 "created_at": "2024-04-03T21:57:24Z", 3944 "updated_at": "2024-04-03T21:57:24Z", 3945 "closed_at": null, 3946 "author_association": "CONTRIBUTOR", 3947 "active_lock_reason": null, 3948 "body": "Use suggested follows list from iOS\r\n\r\nimplemented in iOS: https://github.com/damus-io/damus/issues/1272\r\nupdates (not yet implemented; not up to date): https://github.com/damus-io/damus/issues/1429", 3949 "reactions": { 3950 "url": "https://api.github.com/repos/damus-io/android/issues/70/reactions", 3951 "total_count": 0, 3952 "+1": 0, 3953 "-1": 0, 3954 "laugh": 0, 3955 "hooray": 0, 3956 "confused": 0, 3957 "heart": 0, 3958 "rocket": 0, 3959 "eyes": 0 3960 }, 3961 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/70/timeline", 3962 "performed_via_github_app": null, 3963 "state_reason": null 3964 } 3965 }, 3966 { 3967 "issue": { 3968 "url": "https://api.github.com/repos/damus-io/android/issues/69", 3969 "repository_url": "https://api.github.com/repos/damus-io/android", 3970 "labels_url": "https://api.github.com/repos/damus-io/android/issues/69/labels{/name}", 3971 "comments_url": "https://api.github.com/repos/damus-io/android/issues/69/comments", 3972 "events_url": "https://api.github.com/repos/damus-io/android/issues/69/events", 3973 "html_url": "https://github.com/damus-io/android/issues/69", 3974 "id": 2223992009, 3975 "node_id": "I_kwDOKzWMZs6Ej2zJ", 3976 "number": 69, 3977 "title": "Onboarding: Auto create bootstrap relay list", 3978 "user": { 3979 "login": "alltheseas", 3980 "id": 64376233, 3981 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 3982 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 3983 "gravatar_id": "", 3984 "url": "https://api.github.com/users/alltheseas", 3985 "html_url": "https://github.com/alltheseas", 3986 "followers_url": "https://api.github.com/users/alltheseas/followers", 3987 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 3988 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 3989 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 3990 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 3991 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 3992 "repos_url": "https://api.github.com/users/alltheseas/repos", 3993 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 3994 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 3995 "type": "User", 3996 "site_admin": false 3997 }, 3998 "labels": [ 3999 { 4000 "id": 6272198361, 4001 "node_id": "LA_kwDOKzWMZs8AAAABddom2Q", 4002 "url": "https://api.github.com/repos/damus-io/android/labels/relays", 4003 "name": "relays", 4004 "color": "2ACD20", 4005 "default": false, 4006 "description": "" 4007 }, 4008 { 4009 "id": 6778671627, 4010 "node_id": "LA_kwDOKzWMZs8AAAABlApSCw", 4011 "url": "https://api.github.com/repos/damus-io/android/labels/onboarding", 4012 "name": "onboarding", 4013 "color": "1A6B24", 4014 "default": false, 4015 "description": "" 4016 } 4017 ], 4018 "state": "open", 4019 "locked": false, 4020 "assignee": null, 4021 "assignees": [], 4022 "milestone": { 4023 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 4024 "html_url": "https://github.com/damus-io/android/milestone/1", 4025 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 4026 "id": 10252427, 4027 "node_id": "MI_kwDOKzWMZs4AnHCL", 4028 "number": 1, 4029 "title": "0.1 Android PRAGUE", 4030 "description": "", 4031 "creator": { 4032 "login": "alltheseas", 4033 "id": 64376233, 4034 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 4035 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 4036 "gravatar_id": "", 4037 "url": "https://api.github.com/users/alltheseas", 4038 "html_url": "https://github.com/alltheseas", 4039 "followers_url": "https://api.github.com/users/alltheseas/followers", 4040 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 4041 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 4042 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 4043 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 4044 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 4045 "repos_url": "https://api.github.com/users/alltheseas/repos", 4046 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 4047 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 4048 "type": "User", 4049 "site_admin": false 4050 }, 4051 "open_issues": 22, 4052 "closed_issues": 3, 4053 "state": "open", 4054 "created_at": "2023-11-30T19:39:43Z", 4055 "updated_at": "2024-04-09T19:49:56Z", 4056 "due_on": "2024-06-12T07:00:00Z", 4057 "closed_at": null 4058 }, 4059 "comments": 0, 4060 "created_at": "2024-04-03T21:47:31Z", 4061 "updated_at": "2024-04-09T16:55:21Z", 4062 "closed_at": null, 4063 "author_association": "CONTRIBUTOR", 4064 "active_lock_reason": null, 4065 "body": "### related\r\n\r\ncreate keypair https://github.com/damus-io/android/issues/2", 4066 "reactions": { 4067 "url": "https://api.github.com/repos/damus-io/android/issues/69/reactions", 4068 "total_count": 0, 4069 "+1": 0, 4070 "-1": 0, 4071 "laugh": 0, 4072 "hooray": 0, 4073 "confused": 0, 4074 "heart": 0, 4075 "rocket": 0, 4076 "eyes": 0 4077 }, 4078 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/69/timeline", 4079 "performed_via_github_app": null, 4080 "state_reason": null 4081 } 4082 }, 4083 { 4084 "issue": { 4085 "url": "https://api.github.com/repos/damus-io/android/issues/68", 4086 "repository_url": "https://api.github.com/repos/damus-io/android", 4087 "labels_url": "https://api.github.com/repos/damus-io/android/issues/68/labels{/name}", 4088 "comments_url": "https://api.github.com/repos/damus-io/android/issues/68/comments", 4089 "events_url": "https://api.github.com/repos/damus-io/android/issues/68/events", 4090 "html_url": "https://github.com/damus-io/android/issues/68", 4091 "id": 2221991008, 4092 "node_id": "I_kwDOKzWMZs6EcORg", 4093 "number": 68, 4094 "title": "label fediverse notes ", 4095 "user": { 4096 "login": "alltheseas", 4097 "id": 64376233, 4098 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 4099 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 4100 "gravatar_id": "", 4101 "url": "https://api.github.com/users/alltheseas", 4102 "html_url": "https://github.com/alltheseas", 4103 "followers_url": "https://api.github.com/users/alltheseas/followers", 4104 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 4105 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 4106 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 4107 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 4108 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 4109 "repos_url": "https://api.github.com/users/alltheseas/repos", 4110 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 4111 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 4112 "type": "User", 4113 "site_admin": false 4114 }, 4115 "labels": [ 4116 { 4117 "id": 6264778307, 4118 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 4119 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 4120 "name": "enhancement", 4121 "color": "a2eeef", 4122 "default": true, 4123 "description": "New feature or request" 4124 } 4125 ], 4126 "state": "open", 4127 "locked": false, 4128 "assignee": null, 4129 "assignees": [], 4130 "milestone": null, 4131 "comments": 0, 4132 "created_at": "2024-04-03T06:08:52Z", 4133 "updated_at": "2024-04-03T06:08:52Z", 4134 "closed_at": null, 4135 "author_association": "CONTRIBUTOR", 4136 "active_lock_reason": null, 4137 "body": "## user story\r\n\r\nAs a Damus user who interacts with the fediverse, I would like to see which notes come from the fediverse, so that I know what corner of the distributed social network world I am interacting with.\r\n\r\n### acceptance criteria\r\n\r\n1. notes from fediverse are labeled as such in timeline\r\n2. 1. notes from fediverse are labeled as such in note view", 4138 "reactions": { 4139 "url": "https://api.github.com/repos/damus-io/android/issues/68/reactions", 4140 "total_count": 0, 4141 "+1": 0, 4142 "-1": 0, 4143 "laugh": 0, 4144 "hooray": 0, 4145 "confused": 0, 4146 "heart": 0, 4147 "rocket": 0, 4148 "eyes": 0 4149 }, 4150 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/68/timeline", 4151 "performed_via_github_app": null, 4152 "state_reason": null 4153 } 4154 }, 4155 { 4156 "issue": { 4157 "url": "https://api.github.com/repos/damus-io/android/issues/67", 4158 "repository_url": "https://api.github.com/repos/damus-io/android", 4159 "labels_url": "https://api.github.com/repos/damus-io/android/issues/67/labels{/name}", 4160 "comments_url": "https://api.github.com/repos/damus-io/android/issues/67/comments", 4161 "events_url": "https://api.github.com/repos/damus-io/android/issues/67/events", 4162 "html_url": "https://github.com/damus-io/android/issues/67", 4163 "id": 2221988870, 4164 "node_id": "I_kwDOKzWMZs6EcNwG", 4165 "number": 67, 4166 "title": "low data mode", 4167 "user": { 4168 "login": "alltheseas", 4169 "id": 64376233, 4170 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 4171 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 4172 "gravatar_id": "", 4173 "url": "https://api.github.com/users/alltheseas", 4174 "html_url": "https://github.com/alltheseas", 4175 "followers_url": "https://api.github.com/users/alltheseas/followers", 4176 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 4177 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 4178 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 4179 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 4180 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 4181 "repos_url": "https://api.github.com/users/alltheseas/repos", 4182 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 4183 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 4184 "type": "User", 4185 "site_admin": false 4186 }, 4187 "labels": [ 4188 { 4189 "id": 6264778307, 4190 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 4191 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 4192 "name": "enhancement", 4193 "color": "a2eeef", 4194 "default": true, 4195 "description": "New feature or request" 4196 } 4197 ], 4198 "state": "open", 4199 "locked": false, 4200 "assignee": null, 4201 "assignees": [], 4202 "milestone": null, 4203 "comments": 0, 4204 "created_at": "2024-04-03T06:07:09Z", 4205 "updated_at": "2024-04-03T06:07:09Z", 4206 "closed_at": null, 4207 "author_association": "CONTRIBUTOR", 4208 "active_lock_reason": null, 4209 "body": "## user story\r\n\r\nAs a Damus pleb who uses app on the go (cellular), I want to have a setting where I can turn down Damus data needs (data saver mode), so that I don't surpass my celullar carrier's data throttling threshold, AND so that my events post thereby avoiding poor Damus experience(s).\r\n\r\n### Acceptance Criteria\r\n1. In settings Damus user can set cellular mode on\r\n2. By setting cellular mode, Damus automagically detects when Damus is not on wi-fi, and reduces data demands\r\n3. User can clearly see that Damus is performing in low data mode\r\n4. in low data mode:\r\n-damus does not auto-load new images\r\n-damus does not auto-load new videos\r\n-damus does not auto-load new link previews (does this use significant data?)\r\n-damus does not load new profile banners\r\n-damus does not load new pfps\r\n\r\n### questions\r\n-design: does the new note / feed refresh mechanism change in low data mode?\r\n-design: @robagreda what does \"low data mode\" status look like? how might we display low data mode to the user when it is on? should low data mode icon be displayed all the time?\r\n-design: @robagreda how might we allow user to change low data mode setting (when not on wi-fi) without having to send user deep in the settings menus?\r\n-design: does user have a mechanism to manually load an image as a one off, video while in low data mode?", 4210 "reactions": { 4211 "url": "https://api.github.com/repos/damus-io/android/issues/67/reactions", 4212 "total_count": 0, 4213 "+1": 0, 4214 "-1": 0, 4215 "laugh": 0, 4216 "hooray": 0, 4217 "confused": 0, 4218 "heart": 0, 4219 "rocket": 0, 4220 "eyes": 0 4221 }, 4222 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/67/timeline", 4223 "performed_via_github_app": null, 4224 "state_reason": null 4225 } 4226 }, 4227 { 4228 "issue": { 4229 "url": "https://api.github.com/repos/damus-io/android/issues/66", 4230 "repository_url": "https://api.github.com/repos/damus-io/android", 4231 "labels_url": "https://api.github.com/repos/damus-io/android/issues/66/labels{/name}", 4232 "comments_url": "https://api.github.com/repos/damus-io/android/issues/66/comments", 4233 "events_url": "https://api.github.com/repos/damus-io/android/issues/66/events", 4234 "html_url": "https://github.com/damus-io/android/issues/66", 4235 "id": 2221947055, 4236 "node_id": "I_kwDOKzWMZs6EcDiv", 4237 "number": 66, 4238 "title": "Recurring purple subscription", 4239 "user": { 4240 "login": "alltheseas", 4241 "id": 64376233, 4242 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 4243 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 4244 "gravatar_id": "", 4245 "url": "https://api.github.com/users/alltheseas", 4246 "html_url": "https://github.com/alltheseas", 4247 "followers_url": "https://api.github.com/users/alltheseas/followers", 4248 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 4249 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 4250 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 4251 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 4252 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 4253 "repos_url": "https://api.github.com/users/alltheseas/repos", 4254 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 4255 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 4256 "type": "User", 4257 "site_admin": false 4258 }, 4259 "labels": [ 4260 { 4261 "id": 6530754378, 4262 "node_id": "LA_kwDOKzWMZs8AAAABhUNnSg", 4263 "url": "https://api.github.com/repos/damus-io/android/labels/purple", 4264 "name": "purple", 4265 "color": "5319E7", 4266 "default": false, 4267 "description": "" 4268 } 4269 ], 4270 "state": "open", 4271 "locked": false, 4272 "assignee": null, 4273 "assignees": [], 4274 "milestone": null, 4275 "comments": 1, 4276 "created_at": "2024-04-03T05:42:47Z", 4277 "updated_at": "2024-04-03T05:43:17Z", 4278 "closed_at": null, 4279 "author_association": "CONTRIBUTOR", 4280 "active_lock_reason": null, 4281 "body": "## user story\r\n\r\nAs a Damus supporter, I would like a way to subscribe to Damus purple in a recurring manner, so that I don't have to remember to renew my subscription in order to support Damus devs.\r\n\r\n### acceptance criteria\r\n\r\n1. There is a method to set up a recurring subscription using LN / sats / NWC / NWA etc\r\n\r\n### builds on\r\n\r\nDamus Purple Android https://github.com/damus-io/android/issues/55", 4282 "reactions": { 4283 "url": "https://api.github.com/repos/damus-io/android/issues/66/reactions", 4284 "total_count": 0, 4285 "+1": 0, 4286 "-1": 0, 4287 "laugh": 0, 4288 "hooray": 0, 4289 "confused": 0, 4290 "heart": 0, 4291 "rocket": 0, 4292 "eyes": 0 4293 }, 4294 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/66/timeline", 4295 "performed_via_github_app": null, 4296 "state_reason": null 4297 } 4298 }, 4299 { 4300 "issue": { 4301 "url": "https://api.github.com/repos/damus-io/android/issues/66", 4302 "repository_url": "https://api.github.com/repos/damus-io/android", 4303 "labels_url": "https://api.github.com/repos/damus-io/android/issues/66/labels{/name}", 4304 "comments_url": "https://api.github.com/repos/damus-io/android/issues/66/comments", 4305 "events_url": "https://api.github.com/repos/damus-io/android/issues/66/events", 4306 "html_url": "https://github.com/damus-io/android/issues/66", 4307 "id": 2221947055, 4308 "node_id": "I_kwDOKzWMZs6EcDiv", 4309 "number": 66, 4310 "title": "Recurring purple subscription", 4311 "user": { 4312 "login": "alltheseas", 4313 "id": 64376233, 4314 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 4315 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 4316 "gravatar_id": "", 4317 "url": "https://api.github.com/users/alltheseas", 4318 "html_url": "https://github.com/alltheseas", 4319 "followers_url": "https://api.github.com/users/alltheseas/followers", 4320 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 4321 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 4322 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 4323 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 4324 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 4325 "repos_url": "https://api.github.com/users/alltheseas/repos", 4326 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 4327 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 4328 "type": "User", 4329 "site_admin": false 4330 }, 4331 "labels": [ 4332 { 4333 "id": 6530754378, 4334 "node_id": "LA_kwDOKzWMZs8AAAABhUNnSg", 4335 "url": "https://api.github.com/repos/damus-io/android/labels/purple", 4336 "name": "purple", 4337 "color": "5319E7", 4338 "default": false, 4339 "description": "" 4340 } 4341 ], 4342 "state": "open", 4343 "locked": false, 4344 "assignee": null, 4345 "assignees": [], 4346 "milestone": null, 4347 "comments": 1, 4348 "created_at": "2024-04-03T05:42:47Z", 4349 "updated_at": "2024-04-03T05:43:17Z", 4350 "closed_at": null, 4351 "author_association": "CONTRIBUTOR", 4352 "active_lock_reason": null, 4353 "body": "## user story\r\n\r\nAs a Damus supporter, I would like a way to subscribe to Damus purple in a recurring manner, so that I don't have to remember to renew my subscription in order to support Damus devs.\r\n\r\n### acceptance criteria\r\n\r\n1. There is a method to set up a recurring subscription using LN / sats / NWC / NWA etc\r\n\r\n### builds on\r\n\r\nDamus Purple Android https://github.com/damus-io/android/issues/55", 4354 "reactions": { 4355 "url": "https://api.github.com/repos/damus-io/android/issues/66/reactions", 4356 "total_count": 0, 4357 "+1": 0, 4358 "-1": 0, 4359 "laugh": 0, 4360 "hooray": 0, 4361 "confused": 0, 4362 "heart": 0, 4363 "rocket": 0, 4364 "eyes": 0 4365 }, 4366 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/66/timeline", 4367 "performed_via_github_app": null, 4368 "state_reason": null 4369 }, 4370 "comment": { 4371 "user": "alltheseas", 4372 "created_at": "2024-04-03T05:43:16Z", 4373 "updated_at": "2024-04-03T05:43:16Z", 4374 "body": "![image](https://github.com/damus-io/android/assets/64376233/889742d3-ba0f-45e2-af18-d945623338b4)\r\n" 4375 } 4376 }, 4377 { 4378 "issue": { 4379 "url": "https://api.github.com/repos/damus-io/android/issues/65", 4380 "repository_url": "https://api.github.com/repos/damus-io/android", 4381 "labels_url": "https://api.github.com/repos/damus-io/android/issues/65/labels{/name}", 4382 "comments_url": "https://api.github.com/repos/damus-io/android/issues/65/comments", 4383 "events_url": "https://api.github.com/repos/damus-io/android/issues/65/events", 4384 "html_url": "https://github.com/damus-io/android/issues/65", 4385 "id": 2221940779, 4386 "node_id": "I_kwDOKzWMZs6EcCAr", 4387 "number": 65, 4388 "title": "Follow hashtag", 4389 "user": { 4390 "login": "alltheseas", 4391 "id": 64376233, 4392 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 4393 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 4394 "gravatar_id": "", 4395 "url": "https://api.github.com/users/alltheseas", 4396 "html_url": "https://github.com/alltheseas", 4397 "followers_url": "https://api.github.com/users/alltheseas/followers", 4398 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 4399 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 4400 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 4401 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 4402 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 4403 "repos_url": "https://api.github.com/users/alltheseas/repos", 4404 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 4405 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 4406 "type": "User", 4407 "site_admin": false 4408 }, 4409 "labels": [ 4410 { 4411 "id": 6264778307, 4412 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 4413 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 4414 "name": "enhancement", 4415 "color": "a2eeef", 4416 "default": true, 4417 "description": "New feature or request" 4418 } 4419 ], 4420 "state": "open", 4421 "locked": false, 4422 "assignee": null, 4423 "assignees": [], 4424 "milestone": null, 4425 "comments": 0, 4426 "created_at": "2024-04-03T05:37:22Z", 4427 "updated_at": "2024-04-03T05:37:22Z", 4428 "closed_at": null, 4429 "author_association": "CONTRIBUTOR", 4430 "active_lock_reason": null, 4431 "body": "## User Story\r\n\r\nAs a pleb Damus user who is excited to follow a particular #hashtag, I want the ability to follow a #hashtag, so that Damus feeds me instantaneous updates of this #hashtag to my feed\r\n\r\n### Acceptance Criteria\r\n1. User can follow a hashtag \r\n2. Notes with hashtag displayed on home view \r\n3. User can see all their followed hashtags \r\n4. User can unfollow a hashtag \r\n\r\n### future\r\n\r\nhashtag view, separate from home view #32 \r\n\r\n### design\r\n\r\nWhere can user see, and edit all their followed hashtags? ", 4432 "reactions": { 4433 "url": "https://api.github.com/repos/damus-io/android/issues/65/reactions", 4434 "total_count": 0, 4435 "+1": 0, 4436 "-1": 0, 4437 "laugh": 0, 4438 "hooray": 0, 4439 "confused": 0, 4440 "heart": 0, 4441 "rocket": 0, 4442 "eyes": 0 4443 }, 4444 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/65/timeline", 4445 "performed_via_github_app": null, 4446 "state_reason": null 4447 } 4448 }, 4449 { 4450 "issue": { 4451 "url": "https://api.github.com/repos/damus-io/android/issues/64", 4452 "repository_url": "https://api.github.com/repos/damus-io/android", 4453 "labels_url": "https://api.github.com/repos/damus-io/android/issues/64/labels{/name}", 4454 "comments_url": "https://api.github.com/repos/damus-io/android/issues/64/comments", 4455 "events_url": "https://api.github.com/repos/damus-io/android/issues/64/events", 4456 "html_url": "https://github.com/damus-io/android/issues/64", 4457 "id": 2213204105, 4458 "node_id": "I_kwDOKzWMZs6D6tCJ", 4459 "number": 64, 4460 "title": "Add incoming notes without shifting scroll position.", 4461 "user": { 4462 "login": "jb55", 4463 "id": 45598, 4464 "node_id": "MDQ6VXNlcjQ1NTk4", 4465 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 4466 "gravatar_id": "", 4467 "url": "https://api.github.com/users/jb55", 4468 "html_url": "https://github.com/jb55", 4469 "followers_url": "https://api.github.com/users/jb55/followers", 4470 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 4471 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 4472 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 4473 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 4474 "organizations_url": "https://api.github.com/users/jb55/orgs", 4475 "repos_url": "https://api.github.com/users/jb55/repos", 4476 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 4477 "received_events_url": "https://api.github.com/users/jb55/received_events", 4478 "type": "User", 4479 "site_admin": false 4480 }, 4481 "labels": [ 4482 { 4483 "id": 6752517308, 4484 "node_id": "LA_kwDOKzWMZs8AAAABkns8vA", 4485 "url": "https://api.github.com/repos/damus-io/android/labels/ui", 4486 "name": "ui", 4487 "color": "f9d0c4", 4488 "default": false, 4489 "description": "ui" 4490 } 4491 ], 4492 "state": "open", 4493 "locked": false, 4494 "assignee": null, 4495 "assignees": [], 4496 "milestone": null, 4497 "comments": 1, 4498 "created_at": "2024-03-28T13:08:41Z", 4499 "updated_at": "2024-04-03T05:38:25Z", 4500 "closed_at": null, 4501 "author_association": "CONTRIBUTOR", 4502 "active_lock_reason": null, 4503 "body": "Now that we have a bit more control over scrolling, we have an opportunity to do something really cool.\r\n\r\nInstead of queueing notes to be inserted, we can simply render all of the new notes, calculate their sizes, put them in the timeline, and then adjust the scroll position accordingly. This will allow us to load content in realtime without moving our scroll position.", 4504 "reactions": { 4505 "url": "https://api.github.com/repos/damus-io/android/issues/64/reactions", 4506 "total_count": 1, 4507 "+1": 0, 4508 "-1": 0, 4509 "laugh": 0, 4510 "hooray": 0, 4511 "confused": 0, 4512 "heart": 0, 4513 "rocket": 1, 4514 "eyes": 0 4515 }, 4516 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/64/timeline", 4517 "performed_via_github_app": null, 4518 "state_reason": null 4519 } 4520 }, 4521 { 4522 "issue": { 4523 "url": "https://api.github.com/repos/damus-io/android/issues/64", 4524 "repository_url": "https://api.github.com/repos/damus-io/android", 4525 "labels_url": "https://api.github.com/repos/damus-io/android/issues/64/labels{/name}", 4526 "comments_url": "https://api.github.com/repos/damus-io/android/issues/64/comments", 4527 "events_url": "https://api.github.com/repos/damus-io/android/issues/64/events", 4528 "html_url": "https://github.com/damus-io/android/issues/64", 4529 "id": 2213204105, 4530 "node_id": "I_kwDOKzWMZs6D6tCJ", 4531 "number": 64, 4532 "title": "Add incoming notes without shifting scroll position.", 4533 "user": { 4534 "login": "jb55", 4535 "id": 45598, 4536 "node_id": "MDQ6VXNlcjQ1NTk4", 4537 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 4538 "gravatar_id": "", 4539 "url": "https://api.github.com/users/jb55", 4540 "html_url": "https://github.com/jb55", 4541 "followers_url": "https://api.github.com/users/jb55/followers", 4542 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 4543 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 4544 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 4545 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 4546 "organizations_url": "https://api.github.com/users/jb55/orgs", 4547 "repos_url": "https://api.github.com/users/jb55/repos", 4548 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 4549 "received_events_url": "https://api.github.com/users/jb55/received_events", 4550 "type": "User", 4551 "site_admin": false 4552 }, 4553 "labels": [ 4554 { 4555 "id": 6752517308, 4556 "node_id": "LA_kwDOKzWMZs8AAAABkns8vA", 4557 "url": "https://api.github.com/repos/damus-io/android/labels/ui", 4558 "name": "ui", 4559 "color": "f9d0c4", 4560 "default": false, 4561 "description": "ui" 4562 } 4563 ], 4564 "state": "open", 4565 "locked": false, 4566 "assignee": null, 4567 "assignees": [], 4568 "milestone": null, 4569 "comments": 1, 4570 "created_at": "2024-03-28T13:08:41Z", 4571 "updated_at": "2024-04-03T05:38:25Z", 4572 "closed_at": null, 4573 "author_association": "CONTRIBUTOR", 4574 "active_lock_reason": null, 4575 "body": "Now that we have a bit more control over scrolling, we have an opportunity to do something really cool.\r\n\r\nInstead of queueing notes to be inserted, we can simply render all of the new notes, calculate their sizes, put them in the timeline, and then adjust the scroll position accordingly. This will allow us to load content in realtime without moving our scroll position.", 4576 "reactions": { 4577 "url": "https://api.github.com/repos/damus-io/android/issues/64/reactions", 4578 "total_count": 1, 4579 "+1": 0, 4580 "-1": 0, 4581 "laugh": 0, 4582 "hooray": 0, 4583 "confused": 0, 4584 "heart": 0, 4585 "rocket": 1, 4586 "eyes": 0 4587 }, 4588 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/64/timeline", 4589 "performed_via_github_app": null, 4590 "state_reason": null 4591 }, 4592 "comment": { 4593 "user": "alltheseas", 4594 "created_at": "2024-04-03T05:38:24Z", 4595 "updated_at": "2024-04-03T05:38:24Z", 4596 "body": "@robagreda how might the design look like for this? For instance, say that there are newer notes loaded - what sort of UI affordance could communicate there are new notes?" 4597 } 4598 }, 4599 { 4600 "issue": { 4601 "url": "https://api.github.com/repos/damus-io/android/issues/63", 4602 "repository_url": "https://api.github.com/repos/damus-io/android", 4603 "labels_url": "https://api.github.com/repos/damus-io/android/issues/63/labels{/name}", 4604 "comments_url": "https://api.github.com/repos/damus-io/android/issues/63/comments", 4605 "events_url": "https://api.github.com/repos/damus-io/android/issues/63/events", 4606 "html_url": "https://github.com/damus-io/android/issues/63", 4607 "id": 2211270819, 4608 "node_id": "I_kwDOKzWMZs6DzVCj", 4609 "number": 63, 4610 "title": "Thread view", 4611 "user": { 4612 "login": "kernelkind", 4613 "id": 8139906, 4614 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 4615 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 4616 "gravatar_id": "", 4617 "url": "https://api.github.com/users/kernelkind", 4618 "html_url": "https://github.com/kernelkind", 4619 "followers_url": "https://api.github.com/users/kernelkind/followers", 4620 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 4621 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 4622 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 4623 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 4624 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 4625 "repos_url": "https://api.github.com/users/kernelkind/repos", 4626 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 4627 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 4628 "type": "User", 4629 "site_admin": false 4630 }, 4631 "labels": [ 4632 { 4633 "id": 6264778307, 4634 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 4635 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 4636 "name": "enhancement", 4637 "color": "a2eeef", 4638 "default": true, 4639 "description": "New feature or request" 4640 } 4641 ], 4642 "state": "open", 4643 "locked": false, 4644 "assignee": { 4645 "login": "kernelkind", 4646 "id": 8139906, 4647 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 4648 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 4649 "gravatar_id": "", 4650 "url": "https://api.github.com/users/kernelkind", 4651 "html_url": "https://github.com/kernelkind", 4652 "followers_url": "https://api.github.com/users/kernelkind/followers", 4653 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 4654 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 4655 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 4656 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 4657 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 4658 "repos_url": "https://api.github.com/users/kernelkind/repos", 4659 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 4660 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 4661 "type": "User", 4662 "site_admin": false 4663 }, 4664 "assignees": [ 4665 { 4666 "login": "kernelkind", 4667 "id": 8139906, 4668 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 4669 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 4670 "gravatar_id": "", 4671 "url": "https://api.github.com/users/kernelkind", 4672 "html_url": "https://github.com/kernelkind", 4673 "followers_url": "https://api.github.com/users/kernelkind/followers", 4674 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 4675 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 4676 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 4677 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 4678 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 4679 "repos_url": "https://api.github.com/users/kernelkind/repos", 4680 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 4681 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 4682 "type": "User", 4683 "site_admin": false 4684 } 4685 ], 4686 "milestone": { 4687 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 4688 "html_url": "https://github.com/damus-io/android/milestone/1", 4689 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 4690 "id": 10252427, 4691 "node_id": "MI_kwDOKzWMZs4AnHCL", 4692 "number": 1, 4693 "title": "0.1 Android PRAGUE", 4694 "description": "", 4695 "creator": { 4696 "login": "alltheseas", 4697 "id": 64376233, 4698 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 4699 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 4700 "gravatar_id": "", 4701 "url": "https://api.github.com/users/alltheseas", 4702 "html_url": "https://github.com/alltheseas", 4703 "followers_url": "https://api.github.com/users/alltheseas/followers", 4704 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 4705 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 4706 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 4707 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 4708 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 4709 "repos_url": "https://api.github.com/users/alltheseas/repos", 4710 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 4711 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 4712 "type": "User", 4713 "site_admin": false 4714 }, 4715 "open_issues": 22, 4716 "closed_issues": 3, 4717 "state": "open", 4718 "created_at": "2023-11-30T19:39:43Z", 4719 "updated_at": "2024-04-09T19:49:56Z", 4720 "due_on": "2024-06-12T07:00:00Z", 4721 "closed_at": null 4722 }, 4723 "comments": 1, 4724 "created_at": "2024-03-27T16:37:32Z", 4725 "updated_at": "2024-04-08T21:50:46Z", 4726 "closed_at": null, 4727 "author_association": "COLLABORATOR", 4728 "active_lock_reason": null, 4729 "body": "Upon clicking on a note, the user should be presented with a \"thread view\" which displays the replies to that note\r\n\r\nTracking issues we need to do first:\r\n\r\n- [ ] https://github.com/damus-io/notedeck/issues/1 for constructing threads\r\n- [ ] https://github.com/damus-io/android/issues/81 for navigating to a thread on mobile", 4730 "reactions": { 4731 "url": "https://api.github.com/repos/damus-io/android/issues/63/reactions", 4732 "total_count": 0, 4733 "+1": 0, 4734 "-1": 0, 4735 "laugh": 0, 4736 "hooray": 0, 4737 "confused": 0, 4738 "heart": 0, 4739 "rocket": 0, 4740 "eyes": 0 4741 }, 4742 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/63/timeline", 4743 "performed_via_github_app": null, 4744 "state_reason": null 4745 } 4746 }, 4747 { 4748 "issue": { 4749 "url": "https://api.github.com/repos/damus-io/android/issues/63", 4750 "repository_url": "https://api.github.com/repos/damus-io/android", 4751 "labels_url": "https://api.github.com/repos/damus-io/android/issues/63/labels{/name}", 4752 "comments_url": "https://api.github.com/repos/damus-io/android/issues/63/comments", 4753 "events_url": "https://api.github.com/repos/damus-io/android/issues/63/events", 4754 "html_url": "https://github.com/damus-io/android/issues/63", 4755 "id": 2211270819, 4756 "node_id": "I_kwDOKzWMZs6DzVCj", 4757 "number": 63, 4758 "title": "Thread view", 4759 "user": { 4760 "login": "kernelkind", 4761 "id": 8139906, 4762 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 4763 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 4764 "gravatar_id": "", 4765 "url": "https://api.github.com/users/kernelkind", 4766 "html_url": "https://github.com/kernelkind", 4767 "followers_url": "https://api.github.com/users/kernelkind/followers", 4768 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 4769 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 4770 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 4771 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 4772 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 4773 "repos_url": "https://api.github.com/users/kernelkind/repos", 4774 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 4775 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 4776 "type": "User", 4777 "site_admin": false 4778 }, 4779 "labels": [ 4780 { 4781 "id": 6264778307, 4782 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 4783 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 4784 "name": "enhancement", 4785 "color": "a2eeef", 4786 "default": true, 4787 "description": "New feature or request" 4788 } 4789 ], 4790 "state": "open", 4791 "locked": false, 4792 "assignee": { 4793 "login": "kernelkind", 4794 "id": 8139906, 4795 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 4796 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 4797 "gravatar_id": "", 4798 "url": "https://api.github.com/users/kernelkind", 4799 "html_url": "https://github.com/kernelkind", 4800 "followers_url": "https://api.github.com/users/kernelkind/followers", 4801 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 4802 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 4803 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 4804 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 4805 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 4806 "repos_url": "https://api.github.com/users/kernelkind/repos", 4807 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 4808 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 4809 "type": "User", 4810 "site_admin": false 4811 }, 4812 "assignees": [ 4813 { 4814 "login": "kernelkind", 4815 "id": 8139906, 4816 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 4817 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 4818 "gravatar_id": "", 4819 "url": "https://api.github.com/users/kernelkind", 4820 "html_url": "https://github.com/kernelkind", 4821 "followers_url": "https://api.github.com/users/kernelkind/followers", 4822 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 4823 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 4824 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 4825 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 4826 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 4827 "repos_url": "https://api.github.com/users/kernelkind/repos", 4828 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 4829 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 4830 "type": "User", 4831 "site_admin": false 4832 } 4833 ], 4834 "milestone": { 4835 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 4836 "html_url": "https://github.com/damus-io/android/milestone/1", 4837 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 4838 "id": 10252427, 4839 "node_id": "MI_kwDOKzWMZs4AnHCL", 4840 "number": 1, 4841 "title": "0.1 Android PRAGUE", 4842 "description": "", 4843 "creator": { 4844 "login": "alltheseas", 4845 "id": 64376233, 4846 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 4847 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 4848 "gravatar_id": "", 4849 "url": "https://api.github.com/users/alltheseas", 4850 "html_url": "https://github.com/alltheseas", 4851 "followers_url": "https://api.github.com/users/alltheseas/followers", 4852 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 4853 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 4854 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 4855 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 4856 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 4857 "repos_url": "https://api.github.com/users/alltheseas/repos", 4858 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 4859 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 4860 "type": "User", 4861 "site_admin": false 4862 }, 4863 "open_issues": 22, 4864 "closed_issues": 3, 4865 "state": "open", 4866 "created_at": "2023-11-30T19:39:43Z", 4867 "updated_at": "2024-04-09T19:49:56Z", 4868 "due_on": "2024-06-12T07:00:00Z", 4869 "closed_at": null 4870 }, 4871 "comments": 1, 4872 "created_at": "2024-03-27T16:37:32Z", 4873 "updated_at": "2024-04-08T21:50:46Z", 4874 "closed_at": null, 4875 "author_association": "COLLABORATOR", 4876 "active_lock_reason": null, 4877 "body": "Upon clicking on a note, the user should be presented with a \"thread view\" which displays the replies to that note\r\n\r\nTracking issues we need to do first:\r\n\r\n- [ ] https://github.com/damus-io/notedeck/issues/1 for constructing threads\r\n- [ ] https://github.com/damus-io/android/issues/81 for navigating to a thread on mobile", 4878 "reactions": { 4879 "url": "https://api.github.com/repos/damus-io/android/issues/63/reactions", 4880 "total_count": 0, 4881 "+1": 0, 4882 "-1": 0, 4883 "laugh": 0, 4884 "hooray": 0, 4885 "confused": 0, 4886 "heart": 0, 4887 "rocket": 0, 4888 "eyes": 0 4889 }, 4890 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/63/timeline", 4891 "performed_via_github_app": null, 4892 "state_reason": null 4893 }, 4894 "comment": { 4895 "user": "jb55", 4896 "created_at": "2024-04-08T21:50:45Z", 4897 "updated_at": "2024-04-08T21:50:45Z", 4898 "body": "I added some initial things we need to do first before we get to this" 4899 } 4900 }, 4901 { 4902 "issue": { 4903 "url": "https://api.github.com/repos/damus-io/android/issues/62", 4904 "repository_url": "https://api.github.com/repos/damus-io/android", 4905 "labels_url": "https://api.github.com/repos/damus-io/android/issues/62/labels{/name}", 4906 "comments_url": "https://api.github.com/repos/damus-io/android/issues/62/comments", 4907 "events_url": "https://api.github.com/repos/damus-io/android/issues/62/events", 4908 "html_url": "https://github.com/damus-io/android/pull/62", 4909 "id": 2206391946, 4910 "node_id": "PR_kwDOKzWMZs5qsTin", 4911 "number": 62, 4912 "title": "QOL fixes", 4913 "user": { 4914 "login": "kernelkind", 4915 "id": 8139906, 4916 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 4917 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 4918 "gravatar_id": "", 4919 "url": "https://api.github.com/users/kernelkind", 4920 "html_url": "https://github.com/kernelkind", 4921 "followers_url": "https://api.github.com/users/kernelkind/followers", 4922 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 4923 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 4924 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 4925 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 4926 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 4927 "repos_url": "https://api.github.com/users/kernelkind/repos", 4928 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 4929 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 4930 "type": "User", 4931 "site_admin": false 4932 }, 4933 "labels": [], 4934 "state": "closed", 4935 "locked": false, 4936 "assignee": null, 4937 "assignees": [], 4938 "milestone": null, 4939 "comments": 2, 4940 "created_at": "2024-03-25T18:17:11Z", 4941 "updated_at": "2024-03-26T18:26:03Z", 4942 "closed_at": "2024-03-26T18:25:47Z", 4943 "author_association": "COLLABORATOR", 4944 "active_lock_reason": null, 4945 "draft": false, 4946 "pull_request": { 4947 "url": "https://api.github.com/repos/damus-io/android/pulls/62", 4948 "html_url": "https://github.com/damus-io/android/pull/62", 4949 "diff_url": "https://github.com/damus-io/android/pull/62.diff", 4950 "patch_url": "https://github.com/damus-io/android/pull/62.patch", 4951 "merged_at": null 4952 }, 4953 "body": "commit 1: the new nostrdb commit keeps getting added to cargo.lock because of the update to the toml, this tracks that change\r\n\r\ncommit 2: adds `queries/global.json` to `.gitignore` and adds logic in the `app.rs` to load the filter from that json if it exists and its valid and panic otherwise. This is helpful for #61 ", 4954 "reactions": { 4955 "url": "https://api.github.com/repos/damus-io/android/issues/62/reactions", 4956 "total_count": 0, 4957 "+1": 0, 4958 "-1": 0, 4959 "laugh": 0, 4960 "hooray": 0, 4961 "confused": 0, 4962 "heart": 0, 4963 "rocket": 0, 4964 "eyes": 0 4965 }, 4966 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/62/timeline", 4967 "performed_via_github_app": null, 4968 "state_reason": null 4969 } 4970 }, 4971 { 4972 "issue": { 4973 "url": "https://api.github.com/repos/damus-io/android/issues/62", 4974 "repository_url": "https://api.github.com/repos/damus-io/android", 4975 "labels_url": "https://api.github.com/repos/damus-io/android/issues/62/labels{/name}", 4976 "comments_url": "https://api.github.com/repos/damus-io/android/issues/62/comments", 4977 "events_url": "https://api.github.com/repos/damus-io/android/issues/62/events", 4978 "html_url": "https://github.com/damus-io/android/pull/62", 4979 "id": 2206391946, 4980 "node_id": "PR_kwDOKzWMZs5qsTin", 4981 "number": 62, 4982 "title": "QOL fixes", 4983 "user": { 4984 "login": "kernelkind", 4985 "id": 8139906, 4986 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 4987 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 4988 "gravatar_id": "", 4989 "url": "https://api.github.com/users/kernelkind", 4990 "html_url": "https://github.com/kernelkind", 4991 "followers_url": "https://api.github.com/users/kernelkind/followers", 4992 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 4993 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 4994 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 4995 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 4996 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 4997 "repos_url": "https://api.github.com/users/kernelkind/repos", 4998 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 4999 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5000 "type": "User", 5001 "site_admin": false 5002 }, 5003 "labels": [], 5004 "state": "closed", 5005 "locked": false, 5006 "assignee": null, 5007 "assignees": [], 5008 "milestone": null, 5009 "comments": 2, 5010 "created_at": "2024-03-25T18:17:11Z", 5011 "updated_at": "2024-03-26T18:26:03Z", 5012 "closed_at": "2024-03-26T18:25:47Z", 5013 "author_association": "COLLABORATOR", 5014 "active_lock_reason": null, 5015 "draft": false, 5016 "pull_request": { 5017 "url": "https://api.github.com/repos/damus-io/android/pulls/62", 5018 "html_url": "https://github.com/damus-io/android/pull/62", 5019 "diff_url": "https://github.com/damus-io/android/pull/62.diff", 5020 "patch_url": "https://github.com/damus-io/android/pull/62.patch", 5021 "merged_at": null 5022 }, 5023 "body": "commit 1: the new nostrdb commit keeps getting added to cargo.lock because of the update to the toml, this tracks that change\r\n\r\ncommit 2: adds `queries/global.json` to `.gitignore` and adds logic in the `app.rs` to load the filter from that json if it exists and its valid and panic otherwise. This is helpful for #61 ", 5024 "reactions": { 5025 "url": "https://api.github.com/repos/damus-io/android/issues/62/reactions", 5026 "total_count": 0, 5027 "+1": 0, 5028 "-1": 0, 5029 "laugh": 0, 5030 "hooray": 0, 5031 "confused": 0, 5032 "heart": 0, 5033 "rocket": 0, 5034 "eyes": 0 5035 }, 5036 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/62/timeline", 5037 "performed_via_github_app": null, 5038 "state_reason": null 5039 }, 5040 "comment": { 5041 "user": "jb55", 5042 "created_at": "2024-03-26T08:32:44Z", 5043 "updated_at": "2024-03-26T08:32:44Z", 5044 "body": "You don't need to submit this separately I have pending review on these patches from the previous PR.\n" 5045 } 5046 }, 5047 { 5048 "issue": { 5049 "url": "https://api.github.com/repos/damus-io/android/issues/62", 5050 "repository_url": "https://api.github.com/repos/damus-io/android", 5051 "labels_url": "https://api.github.com/repos/damus-io/android/issues/62/labels{/name}", 5052 "comments_url": "https://api.github.com/repos/damus-io/android/issues/62/comments", 5053 "events_url": "https://api.github.com/repos/damus-io/android/issues/62/events", 5054 "html_url": "https://github.com/damus-io/android/pull/62", 5055 "id": 2206391946, 5056 "node_id": "PR_kwDOKzWMZs5qsTin", 5057 "number": 62, 5058 "title": "QOL fixes", 5059 "user": { 5060 "login": "kernelkind", 5061 "id": 8139906, 5062 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 5063 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 5064 "gravatar_id": "", 5065 "url": "https://api.github.com/users/kernelkind", 5066 "html_url": "https://github.com/kernelkind", 5067 "followers_url": "https://api.github.com/users/kernelkind/followers", 5068 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 5069 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 5070 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 5071 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 5072 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 5073 "repos_url": "https://api.github.com/users/kernelkind/repos", 5074 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 5075 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5076 "type": "User", 5077 "site_admin": false 5078 }, 5079 "labels": [], 5080 "state": "closed", 5081 "locked": false, 5082 "assignee": null, 5083 "assignees": [], 5084 "milestone": null, 5085 "comments": 2, 5086 "created_at": "2024-03-25T18:17:11Z", 5087 "updated_at": "2024-03-26T18:26:03Z", 5088 "closed_at": "2024-03-26T18:25:47Z", 5089 "author_association": "COLLABORATOR", 5090 "active_lock_reason": null, 5091 "draft": false, 5092 "pull_request": { 5093 "url": "https://api.github.com/repos/damus-io/android/pulls/62", 5094 "html_url": "https://github.com/damus-io/android/pull/62", 5095 "diff_url": "https://github.com/damus-io/android/pull/62.diff", 5096 "patch_url": "https://github.com/damus-io/android/pull/62.patch", 5097 "merged_at": null 5098 }, 5099 "body": "commit 1: the new nostrdb commit keeps getting added to cargo.lock because of the update to the toml, this tracks that change\r\n\r\ncommit 2: adds `queries/global.json` to `.gitignore` and adds logic in the `app.rs` to load the filter from that json if it exists and its valid and panic otherwise. This is helpful for #61 ", 5100 "reactions": { 5101 "url": "https://api.github.com/repos/damus-io/android/issues/62/reactions", 5102 "total_count": 0, 5103 "+1": 0, 5104 "-1": 0, 5105 "laugh": 0, 5106 "hooray": 0, 5107 "confused": 0, 5108 "heart": 0, 5109 "rocket": 0, 5110 "eyes": 0 5111 }, 5112 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/62/timeline", 5113 "performed_via_github_app": null, 5114 "state_reason": null 5115 }, 5116 "comment": { 5117 "user": "jb55", 5118 "created_at": "2024-03-26T08:34:09Z", 5119 "updated_at": "2024-03-26T08:34:09Z", 5120 "body": "On Tue, Mar 26, 2024 at 08:32:31AM +0000, William Casarin wrote:\n>You don't need to submit this separately I have pending review on these patches from the previous PR.\n\nThe review was ready to go and neomutt wiped out all of my entire drafts:\n\nhttps://github.com/neomutt/neomutt/issues/4210\n\nThis is a bit of a \"dog ate my homework\" but this is why I'm a bit delayed on this.\n" 5121 } 5122 }, 5123 { 5124 "issue": { 5125 "url": "https://api.github.com/repos/damus-io/android/issues/61", 5126 "repository_url": "https://api.github.com/repos/damus-io/android", 5127 "labels_url": "https://api.github.com/repos/damus-io/android/issues/61/labels{/name}", 5128 "comments_url": "https://api.github.com/repos/damus-io/android/issues/61/comments", 5129 "events_url": "https://api.github.com/repos/damus-io/android/issues/61/events", 5130 "html_url": "https://github.com/damus-io/android/pull/61", 5131 "id": 2204587463, 5132 "node_id": "PR_kwDOKzWMZs5qmInC", 5133 "number": 61, 5134 "title": "Account login", 5135 "user": { 5136 "login": "kernelkind", 5137 "id": 8139906, 5138 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 5139 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 5140 "gravatar_id": "", 5141 "url": "https://api.github.com/users/kernelkind", 5142 "html_url": "https://github.com/kernelkind", 5143 "followers_url": "https://api.github.com/users/kernelkind/followers", 5144 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 5145 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 5146 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 5147 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 5148 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 5149 "repos_url": "https://api.github.com/users/kernelkind/repos", 5150 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 5151 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5152 "type": "User", 5153 "site_admin": false 5154 }, 5155 "labels": [], 5156 "state": "closed", 5157 "locked": false, 5158 "assignee": null, 5159 "assignees": [], 5160 "milestone": null, 5161 "comments": 9, 5162 "created_at": "2024-03-24T22:22:19Z", 5163 "updated_at": "2024-04-01T21:14:13Z", 5164 "closed_at": "2024-04-01T21:14:13Z", 5165 "author_association": "COLLABORATOR", 5166 "active_lock_reason": null, 5167 "draft": false, 5168 "pull_request": { 5169 "url": "https://api.github.com/repos/damus-io/android/pulls/61", 5170 "html_url": "https://github.com/damus-io/android/pull/61", 5171 "diff_url": "https://github.com/damus-io/android/pull/61.diff", 5172 "patch_url": "https://github.com/damus-io/android/pull/61.patch", 5173 "merged_at": null 5174 }, 5175 "body": "This PR adds pretty basic account login. It's a tad rough, but I just wanted to get it out to get feedback.\r\n\r\nFirst two commits are from #62 \r\n\r\nA couple notes:\r\n- I added `nostr-sdk` as a dependency to use their version of `Keys`, `PublicKey` and `SecretKey`. I saw that we already had a conception of `PublicKey` in `enostr`, but I didn't see a point to recreating efforts that were already built out by `nostr-sdk`. Let me know if anyone has thoughts about that.\r\n- The `login_state` was added to `Damus`. When it is in state `LoginState::AcquiredLogin(Keys)`, that represents the user's current `Keys` (either only public key or public & private). \r\n- If the `queries/global.json` contains a valid pubkey, it will use that as the current user and set the `login_state` to `LoginState::AcquiredLogin` with that pubkey. I don't think this implementation shouldn't stay for when we implement private key authentication\r\n- The login panel is very rough to look at. It's just a proof of concept to demonstrate MVP features for this PR", 5176 "reactions": { 5177 "url": "https://api.github.com/repos/damus-io/android/issues/61/reactions", 5178 "total_count": 0, 5179 "+1": 0, 5180 "-1": 0, 5181 "laugh": 0, 5182 "hooray": 0, 5183 "confused": 0, 5184 "heart": 0, 5185 "rocket": 0, 5186 "eyes": 0 5187 }, 5188 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/61/timeline", 5189 "performed_via_github_app": null, 5190 "state_reason": null 5191 } 5192 }, 5193 { 5194 "issue": { 5195 "url": "https://api.github.com/repos/damus-io/android/issues/61", 5196 "repository_url": "https://api.github.com/repos/damus-io/android", 5197 "labels_url": "https://api.github.com/repos/damus-io/android/issues/61/labels{/name}", 5198 "comments_url": "https://api.github.com/repos/damus-io/android/issues/61/comments", 5199 "events_url": "https://api.github.com/repos/damus-io/android/issues/61/events", 5200 "html_url": "https://github.com/damus-io/android/pull/61", 5201 "id": 2204587463, 5202 "node_id": "PR_kwDOKzWMZs5qmInC", 5203 "number": 61, 5204 "title": "Account login", 5205 "user": { 5206 "login": "kernelkind", 5207 "id": 8139906, 5208 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 5209 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 5210 "gravatar_id": "", 5211 "url": "https://api.github.com/users/kernelkind", 5212 "html_url": "https://github.com/kernelkind", 5213 "followers_url": "https://api.github.com/users/kernelkind/followers", 5214 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 5215 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 5216 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 5217 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 5218 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 5219 "repos_url": "https://api.github.com/users/kernelkind/repos", 5220 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 5221 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5222 "type": "User", 5223 "site_admin": false 5224 }, 5225 "labels": [], 5226 "state": "closed", 5227 "locked": false, 5228 "assignee": null, 5229 "assignees": [], 5230 "milestone": null, 5231 "comments": 9, 5232 "created_at": "2024-03-24T22:22:19Z", 5233 "updated_at": "2024-04-01T21:14:13Z", 5234 "closed_at": "2024-04-01T21:14:13Z", 5235 "author_association": "COLLABORATOR", 5236 "active_lock_reason": null, 5237 "draft": false, 5238 "pull_request": { 5239 "url": "https://api.github.com/repos/damus-io/android/pulls/61", 5240 "html_url": "https://github.com/damus-io/android/pull/61", 5241 "diff_url": "https://github.com/damus-io/android/pull/61.diff", 5242 "patch_url": "https://github.com/damus-io/android/pull/61.patch", 5243 "merged_at": null 5244 }, 5245 "body": "This PR adds pretty basic account login. It's a tad rough, but I just wanted to get it out to get feedback.\r\n\r\nFirst two commits are from #62 \r\n\r\nA couple notes:\r\n- I added `nostr-sdk` as a dependency to use their version of `Keys`, `PublicKey` and `SecretKey`. I saw that we already had a conception of `PublicKey` in `enostr`, but I didn't see a point to recreating efforts that were already built out by `nostr-sdk`. Let me know if anyone has thoughts about that.\r\n- The `login_state` was added to `Damus`. When it is in state `LoginState::AcquiredLogin(Keys)`, that represents the user's current `Keys` (either only public key or public & private). \r\n- If the `queries/global.json` contains a valid pubkey, it will use that as the current user and set the `login_state` to `LoginState::AcquiredLogin` with that pubkey. I don't think this implementation shouldn't stay for when we implement private key authentication\r\n- The login panel is very rough to look at. It's just a proof of concept to demonstrate MVP features for this PR", 5246 "reactions": { 5247 "url": "https://api.github.com/repos/damus-io/android/issues/61/reactions", 5248 "total_count": 0, 5249 "+1": 0, 5250 "-1": 0, 5251 "laugh": 0, 5252 "hooray": 0, 5253 "confused": 0, 5254 "heart": 0, 5255 "rocket": 0, 5256 "eyes": 0 5257 }, 5258 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/61/timeline", 5259 "performed_via_github_app": null, 5260 "state_reason": null 5261 }, 5262 "comment": { 5263 "user": "jb55", 5264 "created_at": "2024-03-26T09:06:44Z", 5265 "updated_at": "2024-03-26T09:06:44Z", 5266 "body": "On Sun, Mar 24, 2024 at 02:20:12PM -0400, kernelkind wrote:\n>This PR adds pretty basic account login. It's a tad rough, but I just wanted to get it out to get feedback.\n>\n>A couple notes:\n>- I added `nostr-sdk` as a dependency to use their version of `Keys`, `PublicKey` and `SecretKey`. I saw that we already had a conception of `PublicKey` in `enostr`, but I didn't see a point to recreating efforts that were already built out by `nostr-sdk`. Let me know if anyone has thoughts about that.\n\nThe main reason we are not using PublicKey from nostr_sdk is that it\ndoes have the same data layout, so for the majority of common operations\nsuch as comparing pubkeys in nostrdb, we first have to serialize the\nnostr_sdk pubkeys for each comparison.\n\nnostr_sdk is a fairy large dependency and it doesn't really gain us much\nright now. Relying on some externel library that could break us any time\nis always a liability, especially if we are depending on their core data\ntypes which they can change at any time. I would rather not use it until\nwe absolutely need to.\n\n>- The `login_state` was added to `Damus`. When it is in state `LoginState::AcquiredLogin(Keys)`, that represents the user's current `Keys` (either only public key or public & private).\n\n>- If the `queries/global.json` contains a valid pubkey, it will use that as the current user and set the `login_state` to `LoginState::AcquiredLogin` with that pubkey. I don't think this implementation shouldn't stay for when we implement private key authentication\n\nThis is a bit weird for sure.\n\n>- The login panel is very rough to look at. It's just a proof of concept to demonstrate MVP features for this PR\n\nWe actually have a login design if you want to take a look at it while\nyou work on this PR:\n\nhttps://www.figma.com/file/aONNEWCxHlckZJq0lHyxrN/Notedeck?type=design&node-id=83-4153&mode=design&t=qYfYNEEFhYWdaXh6-0\n\nKeep in mind we should be making this responsive for both mobile and\ndesktop.\n\nI guess one more thing:\n\nIn the current version I can pass multiple queries over the command line\nto build stateless UIs in notedeck. It seems like the PR breaks that.\n" 5267 } 5268 }, 5269 { 5270 "issue": { 5271 "url": "https://api.github.com/repos/damus-io/android/issues/61", 5272 "repository_url": "https://api.github.com/repos/damus-io/android", 5273 "labels_url": "https://api.github.com/repos/damus-io/android/issues/61/labels{/name}", 5274 "comments_url": "https://api.github.com/repos/damus-io/android/issues/61/comments", 5275 "events_url": "https://api.github.com/repos/damus-io/android/issues/61/events", 5276 "html_url": "https://github.com/damus-io/android/pull/61", 5277 "id": 2204587463, 5278 "node_id": "PR_kwDOKzWMZs5qmInC", 5279 "number": 61, 5280 "title": "Account login", 5281 "user": { 5282 "login": "kernelkind", 5283 "id": 8139906, 5284 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 5285 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 5286 "gravatar_id": "", 5287 "url": "https://api.github.com/users/kernelkind", 5288 "html_url": "https://github.com/kernelkind", 5289 "followers_url": "https://api.github.com/users/kernelkind/followers", 5290 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 5291 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 5292 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 5293 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 5294 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 5295 "repos_url": "https://api.github.com/users/kernelkind/repos", 5296 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 5297 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5298 "type": "User", 5299 "site_admin": false 5300 }, 5301 "labels": [], 5302 "state": "closed", 5303 "locked": false, 5304 "assignee": null, 5305 "assignees": [], 5306 "milestone": null, 5307 "comments": 9, 5308 "created_at": "2024-03-24T22:22:19Z", 5309 "updated_at": "2024-04-01T21:14:13Z", 5310 "closed_at": "2024-04-01T21:14:13Z", 5311 "author_association": "COLLABORATOR", 5312 "active_lock_reason": null, 5313 "draft": false, 5314 "pull_request": { 5315 "url": "https://api.github.com/repos/damus-io/android/pulls/61", 5316 "html_url": "https://github.com/damus-io/android/pull/61", 5317 "diff_url": "https://github.com/damus-io/android/pull/61.diff", 5318 "patch_url": "https://github.com/damus-io/android/pull/61.patch", 5319 "merged_at": null 5320 }, 5321 "body": "This PR adds pretty basic account login. It's a tad rough, but I just wanted to get it out to get feedback.\r\n\r\nFirst two commits are from #62 \r\n\r\nA couple notes:\r\n- I added `nostr-sdk` as a dependency to use their version of `Keys`, `PublicKey` and `SecretKey`. I saw that we already had a conception of `PublicKey` in `enostr`, but I didn't see a point to recreating efforts that were already built out by `nostr-sdk`. Let me know if anyone has thoughts about that.\r\n- The `login_state` was added to `Damus`. When it is in state `LoginState::AcquiredLogin(Keys)`, that represents the user's current `Keys` (either only public key or public & private). \r\n- If the `queries/global.json` contains a valid pubkey, it will use that as the current user and set the `login_state` to `LoginState::AcquiredLogin` with that pubkey. I don't think this implementation shouldn't stay for when we implement private key authentication\r\n- The login panel is very rough to look at. It's just a proof of concept to demonstrate MVP features for this PR", 5322 "reactions": { 5323 "url": "https://api.github.com/repos/damus-io/android/issues/61/reactions", 5324 "total_count": 0, 5325 "+1": 0, 5326 "-1": 0, 5327 "laugh": 0, 5328 "hooray": 0, 5329 "confused": 0, 5330 "heart": 0, 5331 "rocket": 0, 5332 "eyes": 0 5333 }, 5334 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/61/timeline", 5335 "performed_via_github_app": null, 5336 "state_reason": null 5337 }, 5338 "comment": { 5339 "user": "jb55", 5340 "created_at": "2024-03-26T09:58:23Z", 5341 "updated_at": "2024-03-26T09:58:23Z", 5342 "body": "This entire patch is confusing to me\n\nOn Sun, Mar 24, 2024 at 02:20:12PM -0400, kernelkind wrote:\n>Closes: https://github.com/damus-io/android/pull/61\n>---\n> .gitignore | 1 +\n> queries/global.json | 1 -\n> src/app.rs | 11 +++++++++--\n> 3 files changed, 10 insertions(+), 3 deletions(-)\n> delete mode 100644 queries/global.json\n>\n>diff --git a/.gitignore b/.gitignore\n>index 100e65f..4eea8a9 100644\n>--- a/.gitignore\n>+++ b/.gitignore\n>@@ -12,3 +12,4 @@ src/camera.rs\n> *.txt\n> /tags\n> *.mdb\n>+queries/global.json\n\nwhy?\n\n>diff --git a/queries/global.json b/queries/global.json\n>deleted file mode 100644\n>index faf282c..0000000\n>--- a/queries/global.json\n>+++ /dev/null\n>@@ -1 +0,0 @@\n>-{\"limit\": 10, \"kinds\":[1]}\n\nnot sure why we're deleting this.\n\n>diff --git a/src/app.rs b/src/app.rs\n>index 3a4542c..67f713d 100644\n>--- a/src/app.rs\n>+++ b/src/app.rs\n>@@ -12,6 +12,7 @@ use crate::widgets::note::NoteContents;\n> use crate::Result;\n> use egui::containers::scroll_area::ScrollBarVisibility;\n> use std::borrow::Cow;\n>+use std::fs;\n>\n> use egui::widgets::Spinner;\n> use egui::{\n>@@ -450,15 +451,21 @@ impl Damus {\n>\n> let mut timelines: Vec<Timeline> = vec![];\n> let initial_limit = 100;\n>+ let queries_json_path = \"queries/global.json\";\n>+\n> if args.len() > 1 {\n> for arg in &args[1..] {\n> let filter = serde_json::from_str(&arg).unwrap();\n> timelines.push(Timeline::new(filter));\n> }\n>- } else {\n>- let filter = serde_json::from_str(&include_str!(\"../queries/global.json\")).unwrap();\n\nThis is simply meant as a built-in default if there are no queries\npassed in the command-line. I'm not sure why we're removing this;\n\n>+ } else if Path::new(queries_json_path).exists() {\n>+ let file_content = fs::read_to_string(queries_json_path).expect(\"Failed to read file\");\n>+ let filter = serde_json::from_str(&file_content).expect(\"Failed to deserialize\");\n\nThis might be important in the future, like for loading some default set\nof queries in the ~/.config dir, but for now you can change the default\nquery by just passing in a query argument...\n\n>+\n> timelines.push(Timeline::new(filter));\n> //vec![get_home_filter(initial_limit)]\n>+ } else {\n>+ panic!(\"No timelines to load.\");\n\nnot sure why we're introducing an unneeded panic here.\n" 5343 } 5344 }, 5345 { 5346 "issue": { 5347 "url": "https://api.github.com/repos/damus-io/android/issues/61", 5348 "repository_url": "https://api.github.com/repos/damus-io/android", 5349 "labels_url": "https://api.github.com/repos/damus-io/android/issues/61/labels{/name}", 5350 "comments_url": "https://api.github.com/repos/damus-io/android/issues/61/comments", 5351 "events_url": "https://api.github.com/repos/damus-io/android/issues/61/events", 5352 "html_url": "https://github.com/damus-io/android/pull/61", 5353 "id": 2204587463, 5354 "node_id": "PR_kwDOKzWMZs5qmInC", 5355 "number": 61, 5356 "title": "Account login", 5357 "user": { 5358 "login": "kernelkind", 5359 "id": 8139906, 5360 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 5361 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 5362 "gravatar_id": "", 5363 "url": "https://api.github.com/users/kernelkind", 5364 "html_url": "https://github.com/kernelkind", 5365 "followers_url": "https://api.github.com/users/kernelkind/followers", 5366 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 5367 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 5368 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 5369 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 5370 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 5371 "repos_url": "https://api.github.com/users/kernelkind/repos", 5372 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 5373 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5374 "type": "User", 5375 "site_admin": false 5376 }, 5377 "labels": [], 5378 "state": "closed", 5379 "locked": false, 5380 "assignee": null, 5381 "assignees": [], 5382 "milestone": null, 5383 "comments": 9, 5384 "created_at": "2024-03-24T22:22:19Z", 5385 "updated_at": "2024-04-01T21:14:13Z", 5386 "closed_at": "2024-04-01T21:14:13Z", 5387 "author_association": "COLLABORATOR", 5388 "active_lock_reason": null, 5389 "draft": false, 5390 "pull_request": { 5391 "url": "https://api.github.com/repos/damus-io/android/pulls/61", 5392 "html_url": "https://github.com/damus-io/android/pull/61", 5393 "diff_url": "https://github.com/damus-io/android/pull/61.diff", 5394 "patch_url": "https://github.com/damus-io/android/pull/61.patch", 5395 "merged_at": null 5396 }, 5397 "body": "This PR adds pretty basic account login. It's a tad rough, but I just wanted to get it out to get feedback.\r\n\r\nFirst two commits are from #62 \r\n\r\nA couple notes:\r\n- I added `nostr-sdk` as a dependency to use their version of `Keys`, `PublicKey` and `SecretKey`. I saw that we already had a conception of `PublicKey` in `enostr`, but I didn't see a point to recreating efforts that were already built out by `nostr-sdk`. Let me know if anyone has thoughts about that.\r\n- The `login_state` was added to `Damus`. When it is in state `LoginState::AcquiredLogin(Keys)`, that represents the user's current `Keys` (either only public key or public & private). \r\n- If the `queries/global.json` contains a valid pubkey, it will use that as the current user and set the `login_state` to `LoginState::AcquiredLogin` with that pubkey. I don't think this implementation shouldn't stay for when we implement private key authentication\r\n- The login panel is very rough to look at. It's just a proof of concept to demonstrate MVP features for this PR", 5398 "reactions": { 5399 "url": "https://api.github.com/repos/damus-io/android/issues/61/reactions", 5400 "total_count": 0, 5401 "+1": 0, 5402 "-1": 0, 5403 "laugh": 0, 5404 "hooray": 0, 5405 "confused": 0, 5406 "heart": 0, 5407 "rocket": 0, 5408 "eyes": 0 5409 }, 5410 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/61/timeline", 5411 "performed_via_github_app": null, 5412 "state_reason": null 5413 }, 5414 "comment": { 5415 "user": "jb55", 5416 "created_at": "2024-03-26T09:58:33Z", 5417 "updated_at": "2024-03-26T09:58:33Z", 5418 "body": "\n> Cargo.lock | 2 +-\n> 1 file changed, 1 insertion(+), 1 deletion(-)\n>\n>diff --git a/Cargo.lock b/Cargo.lock\n>index 718a2f2..814273a 100644\n>--- a/Cargo.lock\n>+++ b/Cargo.lock\n>@@ -2060,7 +2060,7 @@ dependencies = [\n> [[package]]\n> name = \"nostrdb\"\n> version = \"0.2.0\"\n>-source = \"git+https://github.com/damus-io/nostrdb-rs?rev=750539d0b71ed81ec626e4670eccf34950ad2942#750539d0b71ed81ec626e4670eccf34950ad2942\"\n>+source = \"git+https://github.com/damus-io/nostrdb-rs?rev=2675e7244554e40c9ee10d82b42bc647fef4c17d#2675e7244554e40c9ee10d82b42bc647fef4c17d\"\n\nthanks! not sure why this isn't updating locally for me\n\nI've applied this for now but don't forget Signed-off-by on all your\ncommits in the future.\n" 5419 } 5420 }, 5421 { 5422 "issue": { 5423 "url": "https://api.github.com/repos/damus-io/android/issues/61", 5424 "repository_url": "https://api.github.com/repos/damus-io/android", 5425 "labels_url": "https://api.github.com/repos/damus-io/android/issues/61/labels{/name}", 5426 "comments_url": "https://api.github.com/repos/damus-io/android/issues/61/comments", 5427 "events_url": "https://api.github.com/repos/damus-io/android/issues/61/events", 5428 "html_url": "https://github.com/damus-io/android/pull/61", 5429 "id": 2204587463, 5430 "node_id": "PR_kwDOKzWMZs5qmInC", 5431 "number": 61, 5432 "title": "Account login", 5433 "user": { 5434 "login": "kernelkind", 5435 "id": 8139906, 5436 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 5437 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 5438 "gravatar_id": "", 5439 "url": "https://api.github.com/users/kernelkind", 5440 "html_url": "https://github.com/kernelkind", 5441 "followers_url": "https://api.github.com/users/kernelkind/followers", 5442 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 5443 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 5444 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 5445 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 5446 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 5447 "repos_url": "https://api.github.com/users/kernelkind/repos", 5448 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 5449 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5450 "type": "User", 5451 "site_admin": false 5452 }, 5453 "labels": [], 5454 "state": "closed", 5455 "locked": false, 5456 "assignee": null, 5457 "assignees": [], 5458 "milestone": null, 5459 "comments": 9, 5460 "created_at": "2024-03-24T22:22:19Z", 5461 "updated_at": "2024-04-01T21:14:13Z", 5462 "closed_at": "2024-04-01T21:14:13Z", 5463 "author_association": "COLLABORATOR", 5464 "active_lock_reason": null, 5465 "draft": false, 5466 "pull_request": { 5467 "url": "https://api.github.com/repos/damus-io/android/pulls/61", 5468 "html_url": "https://github.com/damus-io/android/pull/61", 5469 "diff_url": "https://github.com/damus-io/android/pull/61.diff", 5470 "patch_url": "https://github.com/damus-io/android/pull/61.patch", 5471 "merged_at": null 5472 }, 5473 "body": "This PR adds pretty basic account login. It's a tad rough, but I just wanted to get it out to get feedback.\r\n\r\nFirst two commits are from #62 \r\n\r\nA couple notes:\r\n- I added `nostr-sdk` as a dependency to use their version of `Keys`, `PublicKey` and `SecretKey`. I saw that we already had a conception of `PublicKey` in `enostr`, but I didn't see a point to recreating efforts that were already built out by `nostr-sdk`. Let me know if anyone has thoughts about that.\r\n- The `login_state` was added to `Damus`. When it is in state `LoginState::AcquiredLogin(Keys)`, that represents the user's current `Keys` (either only public key or public & private). \r\n- If the `queries/global.json` contains a valid pubkey, it will use that as the current user and set the `login_state` to `LoginState::AcquiredLogin` with that pubkey. I don't think this implementation shouldn't stay for when we implement private key authentication\r\n- The login panel is very rough to look at. It's just a proof of concept to demonstrate MVP features for this PR", 5474 "reactions": { 5475 "url": "https://api.github.com/repos/damus-io/android/issues/61/reactions", 5476 "total_count": 0, 5477 "+1": 0, 5478 "-1": 0, 5479 "laugh": 0, 5480 "hooray": 0, 5481 "confused": 0, 5482 "heart": 0, 5483 "rocket": 0, 5484 "eyes": 0 5485 }, 5486 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/61/timeline", 5487 "performed_via_github_app": null, 5488 "state_reason": null 5489 }, 5490 "comment": { 5491 "user": "jb55", 5492 "created_at": "2024-03-26T09:59:49Z", 5493 "updated_at": "2024-03-26T09:59:49Z", 5494 "body": "> Add login key parsing\n\nThis patch is great! lots of useful stuff in here.\n\nOn Fri, Mar 22, 2024 at 06:33:09PM -0400, kernelkind wrote:\n>Closes: https://github.com/damus-io/android/pull/61\n>---\n> src/key_parsing.rs | 235 +++++++++++++++++++++++++++++++++++++++++++++\n> src/lib.rs | 5 +\n> src/test_utils.rs | 36 +++++++\n> 3 files changed, 276 insertions(+)\n> create mode 100644 src/key_parsing.rs\n> create mode 100644 src/test_utils.rs\n>\n>diff --git a/src/key_parsing.rs b/src/key_parsing.rs\n>new file mode 100644\n>index 0000000..ee7f65c\n>--- /dev/null\n>+++ b/src/key_parsing.rs\n>@@ -0,0 +1,235 @@\n>+use std::str::FromStr;\n>+use std::collections::HashMap;\n>+\n>+use crate::Error;\n>+use ehttp::{Request, Response};\n>+use nostr_sdk::{prelude::Keys, PublicKey, SecretKey};\n>+use poll_promise::Promise;\n>+use serde::{Deserialize, Serialize};\n>+\n>+#[derive(Debug, PartialEq)]\n>+pub enum LoginError {\n>+ InvalidKey,\n>+ Nip05Failed(String),\n>+}\n>+\n>+impl std::fmt::Display for LoginError {\n>+ fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {\n>+ match self {\n>+ LoginError::InvalidKey => write!(f, \"The inputted key is invalid.\"),\n>+ LoginError::Nip05Failed(e) => write!(f, \"Failed to get pubkey from Nip05 address: {e}\"),\n>+ }\n>+ }\n>+}\n>+\n>+impl std::error::Error for LoginError {}\n>+\n>+#[derive(Deserialize, Serialize)]\n>+pub struct Nip05Result {\n>+ pub names: HashMap<String, String>,\n>+ pub relays: Option<HashMap<String, Vec<String>>>,\n>+}\n>+\n>+fn parse_nip05_response(response: Response) -> Result<Nip05Result, Error> {\n>+ serde_json::from_slice::<Nip05Result>(&response.bytes)\n>+ .map_err(|e| {\n>+ Error::Generic(e.to_string())\n>+ })\n>+}\n>+\n>+fn get_pubkey_from_result(result: Nip05Result, user: String) -> Result<PublicKey, Error> {\n>+ match result.names.get(&user).to_owned() {\n>+ Some(pubkey_str) => PublicKey::from_str(pubkey_str).map_err(|e| {\n>+ Error::Generic(\"Could not parse pubkey: \".to_string() + e.to_string().as_str())\n>+ }),\n>+ None => Err(Error::Generic(\"Could not find user in json.\".to_string())),\n>+ }\n>+}\n>+\n>+fn get_nip05_pubkey(id: &str) -> Promise<Result<PublicKey, Error>> {\n>+ let (sender, promise) = Promise::new();\n>+ let mut parts = id.split('@');\n>+\n>+ let user = match parts.next() {\n>+ Some(user) => user,\n>+ None => {\n>+ sender.send(Err(Error::Generic(\n>+ \"Address does not contain username.\".to_string(),\n>+ )));\n>+ return promise;\n>+ }\n>+ };\n>+ let host = match parts.next() {\n>+ Some(host) => host,\n>+ None => {\n>+ sender.send(Err(Error::Generic(\n>+ \"Nip05 address does not contain host.\".to_string(),\n>+ )));\n>+ return promise;\n>+ }\n>+ };\n>+\n>+ if parts.next().is_some() {\n>+ sender.send(Err(Error::Generic(\n>+ \"Nip05 address contains extraneous parts.\".to_string(),\n>+ )));\n>+ return promise;\n>+ }\n>+\n>+ let url = format!(\"https://{host}/.well-known/nostr.json?name={user}\");\n>+ let request = Request::get(url);\n>+\n>+ let cloned_user = user.to_string();\n>+ ehttp::fetch(request, move |response: Result<Response, String>| {\n>+ let result = match response {\n>+ Ok(resp) => parse_nip05_response(resp)\n>+ .and_then(move |result| get_pubkey_from_result(result, cloned_user)),\n>+ Err(e) => Err(Error::Generic(e.to_string())),\n>+ };\n>+ sender.send(result);\n>+ });\n>+\n>+ promise\n>+}\n>+\n>+fn retrieving_nip05_pubkey(key: &str) -> bool {\n>+ key.contains('@')\n>+}\n>+\n>+fn nip05_promise_wrapper(id: &str) -> Promise<Result<Keys, LoginError>> {\n>+ let (sender, promise) = Promise::new();\n>+ let original_promise = get_nip05_pubkey(id);\n>+\n>+ std::thread::spawn(move || {\n>+ let result = original_promise.block_and_take();\n>+ let transformed_result = match result {\n>+ Ok(public_key) => Ok(Keys::from_public_key(public_key)),\n>+ Err(e) => Err(LoginError::Nip05Failed(e.to_string())),\n>+ };\n>+ sender.send(transformed_result);\n>+ });\n>+\n>+ promise\n>+}\n>+\n>+/// Attempts to turn a string slice key from the user into a Nostr-Sdk Keys object.\n>+/// The `key` can be in any of the following formats:\n>+/// - Public Bech32 key (prefix \"npub\"): \"npub1xyz...\"\n>+/// - Private Bech32 key (prefix \"nsec\"): \"nsec1xyz...\"\n>+/// - Public hex key: \"02a1...\"\n>+/// - Private hex key: \"5dab...\"\n>+/// - NIP-05 address: ***@***.***\"\n>+///\n>+/// For NIP-05 addresses, retrieval of the public key is an asynchronous operation that returns a `Promise`, so it\n>+/// will not be immediately ready.\n>+/// All other key formats are processed synchronously even though they are still behind a Promise, they will be\n>+/// available immediately.\n>+///\n>+/// Returns a `Promise` that resolves to `Result<Keys, LoginError>`. `LoginError` is returned in case of invalid format,\n>+/// unsupported key types, or network errors during NIP-05 address resolution.\n>+///\n>+pub fn perform_key_retrieval(key: &str) -> Promise<Result<Keys, LoginError>> {\n>+ let tmp_key: &str = if let Some(stripped) = key.strip_prefix('@') {\n>+ stripped\n>+ } else {\n>+ key\n>+ };\n>+\n>+ if retrieving_nip05_pubkey(tmp_key) {\n>+ nip05_promise_wrapper(tmp_key)\n>+ } else {\n>+ let result: Result<Keys, LoginError> = if let Ok(pubkey) = PublicKey::from_str(tmp_key) {\n>+ Ok(Keys::from_public_key(pubkey))\n>+ } else if let Ok(secret_key) = SecretKey::from_str(tmp_key) {\n>+ Ok(Keys::new(secret_key))\n>+ } else {\n>+ Err(LoginError::InvalidKey)\n>+ };\n>+ Promise::from_ready(result)\n>+ }\n>+}\n>+\n>+#[cfg(test)]\n>+mod tests {\n>+ use super::*;\n>+ use crate::promise_assert;\n>+\n>+ #[test]\n>+ fn test_pubkey() {\n>+ let pubkey_str = \"npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s\";\n>+ let expected_pubkey = PublicKey::from_str(pubkey_str).expect(\"Should not have errored.\");\n>+ let login_key_result = perform_key_retrieval(pubkey_str);\n>+\n>+ promise_assert!(\n>+ assert_eq,\n>+ Ok(Keys::from_public_key(expected_pubkey)),\n>+ &login_key_result\n>+ );\n>+ }\n>+\n>+ #[test]\n>+ fn test_hex_pubkey() {\n>+ let pubkey_str = \"32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245\";\n>+ let expected_pubkey = PublicKey::from_str(pubkey_str).expect(\"Should not have errored.\");\n>+ let login_key_result = perform_key_retrieval(pubkey_str);\n>+\n>+ promise_assert!(\n>+ assert_eq,\n>+ Ok(Keys::from_public_key(expected_pubkey)),\n>+ &login_key_result\n>+ );\n>+ }\n>+\n>+ #[test]\n>+ fn test_privkey() {\n>+ let privkey_str = \"nsec1g8wt3hlwjpa4827xylr3r0lccufxltyekhraexes8lqmpp2hensq5aujhs\";\n>+ let expected_privkey = SecretKey::from_str(privkey_str).expect(\"Should not have errored.\");\n>+ let login_key_result = perform_key_retrieval(privkey_str);\n>+\n>+ promise_assert!(\n>+ assert_eq,\n>+ Ok(Keys::new(expected_privkey)),\n>+ &login_key_result\n>+ );\n>+ }\n>+\n>+ #[test]\n>+ fn test_hex_privkey() {\n>+ let privkey_str = \"41dcb8dfee907b53abc627c711bff8c7126fac99b5c7dc9b303fc1b08557cce0\";\n>+ let expected_privkey = SecretKey::from_str(privkey_str).expect(\"Should not have errored.\");\n>+ let login_key_result = perform_key_retrieval(privkey_str);\n>+\n>+ promise_assert!(\n>+ assert_eq,\n>+ Ok(Keys::new(expected_privkey)),\n>+ &login_key_result\n>+ );\n>+ }\n>+\n>+ #[test]\n>+ fn test_nip05() {\n>+ let nip05_str = ***@***.***\";\n>+ let expected_pubkey =\n>+ PublicKey::from_str(\"npub18m76awca3y37hkvuneavuw6pjj4525fw90necxmadrvjg0sdy6qsngq955\")\n>+ .expect(\"Should not have errored.\");\n>+ let login_key_result = perform_key_retrieval(nip05_str);\n>+\n>+ promise_assert!(\n>+ assert_eq,\n>+ Ok(Keys::from_public_key(expected_pubkey)),\n>+ &login_key_result\n>+ );\n>+ }\n>+\n>+ #[test]\n>+ fn test_nip05_pubkey() {\n>+ let nip05_str = ***@***.***\";\n>+ let expected_pubkey =\n>+ PublicKey::from_str(\"npub18m76awca3y37hkvuneavuw6pjj4525fw90necxmadrvjg0sdy6qsngq955\")\n>+ .expect(\"Should not have errored.\");\n>+ let login_key_result = get_nip05_pubkey(nip05_str);\n>+\n>+ let res = login_key_result.block_and_take().expect(\"Should not error\");\n>+ assert_eq!(expected_pubkey, res);\n>+ }\n>+}\n>diff --git a/src/lib.rs b/src/lib.rs\n>index 15a1f00..05e1be6 100644\n>--- a/src/lib.rs\n>+++ b/src/lib.rs\n>@@ -18,6 +18,11 @@ mod frame_history;\n> mod timeline;\n> mod colors;\n> mod profile;\n>+mod key_parsing;\n>+\n>+#[cfg(test)]\n>+#[macro_use]\n>+mod test_utils;\n>\n> pub use app::Damus;\n> pub use error::Error;\n>diff --git a/src/test_utils.rs b/src/test_utils.rs\n>new file mode 100644\n>index 0000000..862650d\n>--- /dev/null\n>+++ b/src/test_utils.rs\n>@@ -0,0 +1,36 @@\n>+use poll_promise::Promise;\n>+use std::thread;\n>+use std::time::Duration;\n>+\n>+pub fn promise_wait<'a, T: Send + 'a>(promise: &'a Promise<T>) -> &'a T {\n>+ let mut count = 1;\n>+ loop {\n>+ if let Some(result) = promise.ready() {\n>+ println!(\"quieried promise num times: {}\", count);\n>+ return result;\n>+ } else {\n>+ count += 1;\n>+ thread::sleep(Duration::from_millis(10));\n>+ }\n>+ }\n>+}\n>+\n>+/// `promise_assert` macro\n>+///\n>+/// This macro is designed to emulate the nature of immediate mode asynchronous code by repeatedly calling\n>+/// promise.ready() for a promise, sleeping for a short period of time, and repeating until the promise is ready.\n>+///\n>+/// Arguments:\n>+/// - `$assertion_closure`: the assertion closure which takes two arguments: the actual result of the promise and\n>+/// the expected value. This macro is used as an assertion closure to compare the actual and expected values.\n>+/// - `$expected`: The expected value of type `T` that the promise's result is compared against.\n>+/// - `$asserted_promise`: A `Promise<T>` that returns a value of type `T` when the promise is satisfied. This\n>+/// represents the asynchronous operation whose result will be tested.\n>+///\n>+#[macro_export]\n>+macro_rules! promise_assert {\n>+ ($assertion_closure:ident, $expected:expr, $asserted_promise:expr) => {\n>+ let result = $crate::test_utils::promise_wait($asserted_promise);\n>+ $assertion_closure!(*result, $expected);\n>+ };\n>+}\n>\n" 5495 } 5496 }, 5497 { 5498 "issue": { 5499 "url": "https://api.github.com/repos/damus-io/android/issues/61", 5500 "repository_url": "https://api.github.com/repos/damus-io/android", 5501 "labels_url": "https://api.github.com/repos/damus-io/android/issues/61/labels{/name}", 5502 "comments_url": "https://api.github.com/repos/damus-io/android/issues/61/comments", 5503 "events_url": "https://api.github.com/repos/damus-io/android/issues/61/events", 5504 "html_url": "https://github.com/damus-io/android/pull/61", 5505 "id": 2204587463, 5506 "node_id": "PR_kwDOKzWMZs5qmInC", 5507 "number": 61, 5508 "title": "Account login", 5509 "user": { 5510 "login": "kernelkind", 5511 "id": 8139906, 5512 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 5513 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 5514 "gravatar_id": "", 5515 "url": "https://api.github.com/users/kernelkind", 5516 "html_url": "https://github.com/kernelkind", 5517 "followers_url": "https://api.github.com/users/kernelkind/followers", 5518 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 5519 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 5520 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 5521 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 5522 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 5523 "repos_url": "https://api.github.com/users/kernelkind/repos", 5524 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 5525 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5526 "type": "User", 5527 "site_admin": false 5528 }, 5529 "labels": [], 5530 "state": "closed", 5531 "locked": false, 5532 "assignee": null, 5533 "assignees": [], 5534 "milestone": null, 5535 "comments": 9, 5536 "created_at": "2024-03-24T22:22:19Z", 5537 "updated_at": "2024-04-01T21:14:13Z", 5538 "closed_at": "2024-04-01T21:14:13Z", 5539 "author_association": "COLLABORATOR", 5540 "active_lock_reason": null, 5541 "draft": false, 5542 "pull_request": { 5543 "url": "https://api.github.com/repos/damus-io/android/pulls/61", 5544 "html_url": "https://github.com/damus-io/android/pull/61", 5545 "diff_url": "https://github.com/damus-io/android/pull/61.diff", 5546 "patch_url": "https://github.com/damus-io/android/pull/61.patch", 5547 "merged_at": null 5548 }, 5549 "body": "This PR adds pretty basic account login. It's a tad rough, but I just wanted to get it out to get feedback.\r\n\r\nFirst two commits are from #62 \r\n\r\nA couple notes:\r\n- I added `nostr-sdk` as a dependency to use their version of `Keys`, `PublicKey` and `SecretKey`. I saw that we already had a conception of `PublicKey` in `enostr`, but I didn't see a point to recreating efforts that were already built out by `nostr-sdk`. Let me know if anyone has thoughts about that.\r\n- The `login_state` was added to `Damus`. When it is in state `LoginState::AcquiredLogin(Keys)`, that represents the user's current `Keys` (either only public key or public & private). \r\n- If the `queries/global.json` contains a valid pubkey, it will use that as the current user and set the `login_state` to `LoginState::AcquiredLogin` with that pubkey. I don't think this implementation shouldn't stay for when we implement private key authentication\r\n- The login panel is very rough to look at. It's just a proof of concept to demonstrate MVP features for this PR", 5550 "reactions": { 5551 "url": "https://api.github.com/repos/damus-io/android/issues/61/reactions", 5552 "total_count": 0, 5553 "+1": 0, 5554 "-1": 0, 5555 "laugh": 0, 5556 "hooray": 0, 5557 "confused": 0, 5558 "heart": 0, 5559 "rocket": 0, 5560 "eyes": 0 5561 }, 5562 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/61/timeline", 5563 "performed_via_github_app": null, 5564 "state_reason": null 5565 }, 5566 "comment": { 5567 "user": "jb55", 5568 "created_at": "2024-03-26T10:01:52Z", 5569 "updated_at": "2024-03-26T10:01:52Z", 5570 "body": "> Add login UI\n\nThis is a good start for testing, but I don't think I can merge it until we implement roberto's design.\n\nLet's keep working on this!\n\nOn Sat, Mar 23, 2024 at 09:01:48PM -0400, kernelkind wrote:\n> src/app.rs | 105 ++++++++++++++++++++++++++++++++++++++++---\n> src/lib.rs | 1 +\n> src/login_manager.rs | 23 ++++++++++\n> 3 files changed, 123 insertions(+), 6 deletions(-)\n> create mode 100644 src/login_manager.rs\n>\n>diff --git a/src/app.rs b/src/app.rs\n>index 67f713d..d3b4b19 100644\n>--- a/src/app.rs\n>+++ b/src/app.rs\n>@@ -5,12 +5,17 @@ use crate::fonts::{setup_fonts, NamedFontFamily};\n> use crate::frame_history::FrameHistory;\n> use crate::images::fetch_img;\n> use crate::imgcache::ImageCache;\n>+use crate::key_parsing::perform_key_retrieval;\n>+use crate::key_parsing::LoginError;\n>+use crate::login_manager::LoginManager;\n> use crate::notecache::NoteCache;\n> use crate::timeline;\n> use crate::ui::padding;\n> use crate::widgets::note::NoteContents;\n> use crate::Result;\n> use egui::containers::scroll_area::ScrollBarVisibility;\n>+use egui::Layout;\n>+use nostr_sdk::PublicKey;\n> use std::borrow::Cow;\n> use std::fs;\n>\n>@@ -21,6 +26,7 @@ use egui::{\n> };\n>\n> use enostr::{ClientMessage, Filter, Pubkey, RelayEvent, RelayMessage};\n>+use nostr_sdk::Keys;\n> use nostrdb::{\n> Block, BlockType, Blocks, Config, Mention, Ndb, Note, NoteKey, ProfileRecord, Subscription,\n> Transaction,\n>@@ -41,6 +47,11 @@ pub enum DamusState {\n> Initialized,\n> }\n>\n>+pub enum LoginState {\n>+ LoggingIn(LoginManager),\n>+ AcquiredLogin(Keys),\n>+}\n>+\n> #[derive(Debug, Eq, PartialEq, Copy, Clone)]\n> pub struct NoteRef {\n> pub key: NoteKey,\n>@@ -86,6 +97,7 @@ impl Timeline {\n> /// We derive Deserialize/Serialize so we can persist app state on shutdown.\n> pub struct Damus {\n> state: DamusState,\n>+ login_state: LoginState,\n> compose: String,\n>\n> note_cache: HashMap<NoteKey, NoteCache>,\n>@@ -137,6 +149,13 @@ fn get_home_filter(limit: u16) -> Filter {\n> )\n> }\n>\n>+fn get_filter_for_pubkey(limit: u16, pubkey_hex: String) -> Filter {\n>+ Filter::new()\n>+ .limit(limit)\n>+ .kinds(vec![1, 42])\n>+ .pubkeys([Pubkey::from_hex(pubkey_hex.as_str()).unwrap()].into())\n>+}\n>+\n> fn send_initial_filters(damus: &mut Damus, relay_url: &str) {\n> info!(\"Sending initial filters to {}\", relay_url);\n> let mut c: u32 = 1;\n>@@ -452,6 +471,7 @@ impl Damus {\n> let mut timelines: Vec<Timeline> = vec![];\n> let initial_limit = 100;\n> let queries_json_path = \"queries/global.json\";\n>+ let mut initial_pubkey: Option<PublicKey> = None;\n>\n> if args.len() > 1 {\n> for arg in &args[1..] {\n>@@ -460,21 +480,34 @@ impl Damus {\n> }\n> } else if Path::new(queries_json_path).exists() {\n> let file_content = fs::read_to_string(queries_json_path).expect(\"Failed to read file\");\n>- let filter = serde_json::from_str(&file_content).expect(\"Failed to deserialize\");\n>+ let filter: Vec<Filter> = serde_json::from_str(&file_content).expect(\"Failed to deserialize\");\n>+ initial_pubkey = filter.iter()\n>+ .filter_map(|f| f.pubkeys.as_ref())\n>+ .flat_map(|pubkeys| pubkeys.iter())\n>+ .next()\n>+ .and_then(|pubkey| PublicKey::from_hex(pubkey.hex()).ok());\n>\n> timelines.push(Timeline::new(filter));\n>+\n> //vec![get_home_filter(initial_limit)]\n>- } else {\n>- panic!(\"No timelines to load.\");\n>- };\n>+ }\n>\n> let imgcache_dir = data_path.as_ref().join(\"cache/img\");\n> std::fs::create_dir_all(imgcache_dir.clone());\n>\n>+ let login_state = initial_pubkey\n>+ .map(|key| {\n>+ let keys = Keys::from_public_key(key);\n>+ LoginState::AcquiredLogin(keys)\n>+ })\n>+ .unwrap_or_else(|| LoginState::LoggingIn(LoginManager::new()));\n>+\n>+\n> let mut config = Config::new();\n> config.set_ingester_threads(2);\n> Self {\n> state: DamusState::Initializing,\n>+ login_state,\n> pool: RelayPool::new(),\n> img_cache: ImageCache::new(imgcache_dir),\n> note_cache: HashMap::new(),\n>@@ -935,6 +968,44 @@ fn render_damus_desktop(ctx: &egui::Context, app: &mut Damus) {\n> });\n> }\n>\n>+fn account_login_panel(ctx: &egui::Context, login_manager: &mut LoginManager) {\n>+ main_panel(&ctx.style()).show(ctx, |ui| {\n>+ ui.allocate_ui_with_layout(\n>+ egui::vec2(ctx.screen_rect().width(), ctx.screen_rect().height()),\n>+ Layout::from_main_dir_and_cross_align(\n>+ egui::Direction::LeftToRight,\n>+ egui::Align::Center,\n>+ ),\n>+ |ui| {\n>+ ui.add(\n>+ egui::TextEdit::singleline(&mut login_manager.login_key)\n>+ .hint_text(\"Enter login key\"),\n>+ );\n>+ if ui.button(\"Submit\").clicked() {\n>+ login_manager.promise = Some(perform_key_retrieval(&login_manager.login_key));\n>+ }\n>+ if login_manager.promise.is_some() {\n>+ ui.add(egui::Spinner::new());\n>+ }\n>+ if let Some(error_key) = &login_manager.key_on_error {\n>+ if login_manager.login_key != *error_key {\n>+ login_manager.error = None;\n>+ login_manager.key_on_error = None;\n>+ }\n>+ }\n>+ if let Some(err) = &login_manager.error {\n>+ ui.horizontal(|ui| {\n>+ match err {\n>+ LoginError::InvalidKey => ui.label(RichText::new(\"Invalid key.\").color(Color32::RED)),\n>+ LoginError::Nip05Failed(e) => ui.label(RichText::new(e).color(Color32::RED))\n>+ }\n>+ });\n>+ }\n>+ },\n>+ );\n>+ });\n>+}\n>+\n> fn postbox(ui: &mut egui::Ui, app: &mut Damus) {\n> let _output = egui::TextEdit::multiline(&mut app.compose)\n> .hint_text(\"Type something!\")\n>@@ -982,7 +1053,29 @@ impl eframe::App for Damus {\n>\n> #[cfg(feature = \"profiling\")]\n> puffin::GlobalProfiler::lock().new_frame();\n>- update_damus(self, ctx);\n>- render_damus(self, ctx);\n>+\n>+ if let LoginState::LoggingIn(login_manager) = &mut self.login_state {\n>+ account_login_panel(ctx, login_manager);\n>+\n>+ if let Some(promise) = &mut login_manager.promise {\n>+ if promise.ready().is_some() {\n>+ if let Some(promise) = login_manager.promise.take() {\n>+ match promise.block_and_take() {\n>+ Ok(key) => {\n>+ self.timelines.push(Timeline::new(vec!(get_filter_for_pubkey(100, key.public_key().to_hex()))));\n>+ self.login_state = LoginState::AcquiredLogin(key);\n>+ }\n>+ Err(e) => {\n>+ login_manager.error = Some(e);\n>+ login_manager.key_on_error = Some(login_manager.login_key.clone());\n>+ },\n>+ };\n>+ }\n>+ }\n>+ }\n>+ } else {\n>+ update_damus(self, ctx);\n>+ render_damus(self, ctx);\n>+ }\n> }\n> }\n>diff --git a/src/lib.rs b/src/lib.rs\n>index 05e1be6..3e7a8fe 100644\n>--- a/src/lib.rs\n>+++ b/src/lib.rs\n>@@ -19,6 +19,7 @@ mod timeline;\n> mod colors;\n> mod profile;\n> mod key_parsing;\n>+mod login_manager;\n>\n> #[cfg(test)]\n> #[macro_use]\n>diff --git a/src/login_manager.rs b/src/login_manager.rs\n>new file mode 100644\n>index 0000000..08ab1d5\n>--- /dev/null\n>+++ b/src/login_manager.rs\n>@@ -0,0 +1,23 @@\n>+use crate::key_parsing::LoginError;\n>+use nostr_sdk::Keys;\n>+use poll_promise::Promise;\n>+\n>+/// Helper storage object for retrieving the plaintext key from the user and converting it into a\n>+/// nostr-sdk Keys object if possible.\n>+pub struct LoginManager {\n>+ pub login_key: String,\n>+ pub promise: Option<Promise<Result<Keys, LoginError>>>,\n>+ pub error: Option<LoginError>,\n>+ pub key_on_error: Option<String>\n>+}\n>+\n>+impl LoginManager {\n>+ pub fn new() -> Self {\n>+ LoginManager {\n>+ login_key: String::new(),\n>+ promise: None,\n>+ error: None,\n>+ key_on_error: None\n>+ }\n>+ }\n>+}\n>\n" 5571 } 5572 }, 5573 { 5574 "issue": { 5575 "url": "https://api.github.com/repos/damus-io/android/issues/61", 5576 "repository_url": "https://api.github.com/repos/damus-io/android", 5577 "labels_url": "https://api.github.com/repos/damus-io/android/issues/61/labels{/name}", 5578 "comments_url": "https://api.github.com/repos/damus-io/android/issues/61/comments", 5579 "events_url": "https://api.github.com/repos/damus-io/android/issues/61/events", 5580 "html_url": "https://github.com/damus-io/android/pull/61", 5581 "id": 2204587463, 5582 "node_id": "PR_kwDOKzWMZs5qmInC", 5583 "number": 61, 5584 "title": "Account login", 5585 "user": { 5586 "login": "kernelkind", 5587 "id": 8139906, 5588 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 5589 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 5590 "gravatar_id": "", 5591 "url": "https://api.github.com/users/kernelkind", 5592 "html_url": "https://github.com/kernelkind", 5593 "followers_url": "https://api.github.com/users/kernelkind/followers", 5594 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 5595 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 5596 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 5597 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 5598 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 5599 "repos_url": "https://api.github.com/users/kernelkind/repos", 5600 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 5601 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5602 "type": "User", 5603 "site_admin": false 5604 }, 5605 "labels": [], 5606 "state": "closed", 5607 "locked": false, 5608 "assignee": null, 5609 "assignees": [], 5610 "milestone": null, 5611 "comments": 9, 5612 "created_at": "2024-03-24T22:22:19Z", 5613 "updated_at": "2024-04-01T21:14:13Z", 5614 "closed_at": "2024-04-01T21:14:13Z", 5615 "author_association": "COLLABORATOR", 5616 "active_lock_reason": null, 5617 "draft": false, 5618 "pull_request": { 5619 "url": "https://api.github.com/repos/damus-io/android/pulls/61", 5620 "html_url": "https://github.com/damus-io/android/pull/61", 5621 "diff_url": "https://github.com/damus-io/android/pull/61.diff", 5622 "patch_url": "https://github.com/damus-io/android/pull/61.patch", 5623 "merged_at": null 5624 }, 5625 "body": "This PR adds pretty basic account login. It's a tad rough, but I just wanted to get it out to get feedback.\r\n\r\nFirst two commits are from #62 \r\n\r\nA couple notes:\r\n- I added `nostr-sdk` as a dependency to use their version of `Keys`, `PublicKey` and `SecretKey`. I saw that we already had a conception of `PublicKey` in `enostr`, but I didn't see a point to recreating efforts that were already built out by `nostr-sdk`. Let me know if anyone has thoughts about that.\r\n- The `login_state` was added to `Damus`. When it is in state `LoginState::AcquiredLogin(Keys)`, that represents the user's current `Keys` (either only public key or public & private). \r\n- If the `queries/global.json` contains a valid pubkey, it will use that as the current user and set the `login_state` to `LoginState::AcquiredLogin` with that pubkey. I don't think this implementation shouldn't stay for when we implement private key authentication\r\n- The login panel is very rough to look at. It's just a proof of concept to demonstrate MVP features for this PR", 5626 "reactions": { 5627 "url": "https://api.github.com/repos/damus-io/android/issues/61/reactions", 5628 "total_count": 0, 5629 "+1": 0, 5630 "-1": 0, 5631 "laugh": 0, 5632 "hooray": 0, 5633 "confused": 0, 5634 "heart": 0, 5635 "rocket": 0, 5636 "eyes": 0 5637 }, 5638 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/61/timeline", 5639 "performed_via_github_app": null, 5640 "state_reason": null 5641 }, 5642 "comment": { 5643 "user": "jb55", 5644 "created_at": "2024-03-26T10:09:32Z", 5645 "updated_at": "2024-03-26T10:09:43Z", 5646 "body": "I've pulled in the following commits from your PR since they looked ok\r\nto me for now!\r\n\r\n7a113825dd77 Add login key parsing\r\nd8fcc573f922 Add nostr-sdk dependency\r\nc932efba40b7 update cargo.lock to reflect toml change\r\n\r\nFeel free to rebase!" 5647 } 5648 }, 5649 { 5650 "issue": { 5651 "url": "https://api.github.com/repos/damus-io/android/issues/61", 5652 "repository_url": "https://api.github.com/repos/damus-io/android", 5653 "labels_url": "https://api.github.com/repos/damus-io/android/issues/61/labels{/name}", 5654 "comments_url": "https://api.github.com/repos/damus-io/android/issues/61/comments", 5655 "events_url": "https://api.github.com/repos/damus-io/android/issues/61/events", 5656 "html_url": "https://github.com/damus-io/android/pull/61", 5657 "id": 2204587463, 5658 "node_id": "PR_kwDOKzWMZs5qmInC", 5659 "number": 61, 5660 "title": "Account login", 5661 "user": { 5662 "login": "kernelkind", 5663 "id": 8139906, 5664 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 5665 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 5666 "gravatar_id": "", 5667 "url": "https://api.github.com/users/kernelkind", 5668 "html_url": "https://github.com/kernelkind", 5669 "followers_url": "https://api.github.com/users/kernelkind/followers", 5670 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 5671 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 5672 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 5673 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 5674 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 5675 "repos_url": "https://api.github.com/users/kernelkind/repos", 5676 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 5677 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5678 "type": "User", 5679 "site_admin": false 5680 }, 5681 "labels": [], 5682 "state": "closed", 5683 "locked": false, 5684 "assignee": null, 5685 "assignees": [], 5686 "milestone": null, 5687 "comments": 9, 5688 "created_at": "2024-03-24T22:22:19Z", 5689 "updated_at": "2024-04-01T21:14:13Z", 5690 "closed_at": "2024-04-01T21:14:13Z", 5691 "author_association": "COLLABORATOR", 5692 "active_lock_reason": null, 5693 "draft": false, 5694 "pull_request": { 5695 "url": "https://api.github.com/repos/damus-io/android/pulls/61", 5696 "html_url": "https://github.com/damus-io/android/pull/61", 5697 "diff_url": "https://github.com/damus-io/android/pull/61.diff", 5698 "patch_url": "https://github.com/damus-io/android/pull/61.patch", 5699 "merged_at": null 5700 }, 5701 "body": "This PR adds pretty basic account login. It's a tad rough, but I just wanted to get it out to get feedback.\r\n\r\nFirst two commits are from #62 \r\n\r\nA couple notes:\r\n- I added `nostr-sdk` as a dependency to use their version of `Keys`, `PublicKey` and `SecretKey`. I saw that we already had a conception of `PublicKey` in `enostr`, but I didn't see a point to recreating efforts that were already built out by `nostr-sdk`. Let me know if anyone has thoughts about that.\r\n- The `login_state` was added to `Damus`. When it is in state `LoginState::AcquiredLogin(Keys)`, that represents the user's current `Keys` (either only public key or public & private). \r\n- If the `queries/global.json` contains a valid pubkey, it will use that as the current user and set the `login_state` to `LoginState::AcquiredLogin` with that pubkey. I don't think this implementation shouldn't stay for when we implement private key authentication\r\n- The login panel is very rough to look at. It's just a proof of concept to demonstrate MVP features for this PR", 5702 "reactions": { 5703 "url": "https://api.github.com/repos/damus-io/android/issues/61/reactions", 5704 "total_count": 0, 5705 "+1": 0, 5706 "-1": 0, 5707 "laugh": 0, 5708 "hooray": 0, 5709 "confused": 0, 5710 "heart": 0, 5711 "rocket": 0, 5712 "eyes": 0 5713 }, 5714 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/61/timeline", 5715 "performed_via_github_app": null, 5716 "state_reason": null 5717 }, 5718 "comment": { 5719 "user": "kernelkind", 5720 "created_at": "2024-03-26T15:35:02Z", 5721 "updated_at": "2024-03-26T15:35:02Z", 5722 "body": "I replied to these comments over email, unfortunately they don't get synced to github. I'll probably just reply in github next time if that's ok" 5723 } 5724 }, 5725 { 5726 "issue": { 5727 "url": "https://api.github.com/repos/damus-io/android/issues/61", 5728 "repository_url": "https://api.github.com/repos/damus-io/android", 5729 "labels_url": "https://api.github.com/repos/damus-io/android/issues/61/labels{/name}", 5730 "comments_url": "https://api.github.com/repos/damus-io/android/issues/61/comments", 5731 "events_url": "https://api.github.com/repos/damus-io/android/issues/61/events", 5732 "html_url": "https://github.com/damus-io/android/pull/61", 5733 "id": 2204587463, 5734 "node_id": "PR_kwDOKzWMZs5qmInC", 5735 "number": 61, 5736 "title": "Account login", 5737 "user": { 5738 "login": "kernelkind", 5739 "id": 8139906, 5740 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 5741 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 5742 "gravatar_id": "", 5743 "url": "https://api.github.com/users/kernelkind", 5744 "html_url": "https://github.com/kernelkind", 5745 "followers_url": "https://api.github.com/users/kernelkind/followers", 5746 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 5747 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 5748 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 5749 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 5750 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 5751 "repos_url": "https://api.github.com/users/kernelkind/repos", 5752 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 5753 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5754 "type": "User", 5755 "site_admin": false 5756 }, 5757 "labels": [], 5758 "state": "closed", 5759 "locked": false, 5760 "assignee": null, 5761 "assignees": [], 5762 "milestone": null, 5763 "comments": 9, 5764 "created_at": "2024-03-24T22:22:19Z", 5765 "updated_at": "2024-04-01T21:14:13Z", 5766 "closed_at": "2024-04-01T21:14:13Z", 5767 "author_association": "COLLABORATOR", 5768 "active_lock_reason": null, 5769 "draft": false, 5770 "pull_request": { 5771 "url": "https://api.github.com/repos/damus-io/android/pulls/61", 5772 "html_url": "https://github.com/damus-io/android/pull/61", 5773 "diff_url": "https://github.com/damus-io/android/pull/61.diff", 5774 "patch_url": "https://github.com/damus-io/android/pull/61.patch", 5775 "merged_at": null 5776 }, 5777 "body": "This PR adds pretty basic account login. It's a tad rough, but I just wanted to get it out to get feedback.\r\n\r\nFirst two commits are from #62 \r\n\r\nA couple notes:\r\n- I added `nostr-sdk` as a dependency to use their version of `Keys`, `PublicKey` and `SecretKey`. I saw that we already had a conception of `PublicKey` in `enostr`, but I didn't see a point to recreating efforts that were already built out by `nostr-sdk`. Let me know if anyone has thoughts about that.\r\n- The `login_state` was added to `Damus`. When it is in state `LoginState::AcquiredLogin(Keys)`, that represents the user's current `Keys` (either only public key or public & private). \r\n- If the `queries/global.json` contains a valid pubkey, it will use that as the current user and set the `login_state` to `LoginState::AcquiredLogin` with that pubkey. I don't think this implementation shouldn't stay for when we implement private key authentication\r\n- The login panel is very rough to look at. It's just a proof of concept to demonstrate MVP features for this PR", 5778 "reactions": { 5779 "url": "https://api.github.com/repos/damus-io/android/issues/61/reactions", 5780 "total_count": 0, 5781 "+1": 0, 5782 "-1": 0, 5783 "laugh": 0, 5784 "hooray": 0, 5785 "confused": 0, 5786 "heart": 0, 5787 "rocket": 0, 5788 "eyes": 0 5789 }, 5790 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/61/timeline", 5791 "performed_via_github_app": null, 5792 "state_reason": null 5793 }, 5794 "comment": { 5795 "user": "jb55", 5796 "created_at": "2024-03-29T08:36:46Z", 5797 "updated_at": "2024-03-29T08:36:46Z", 5798 "body": "On Tue, Mar 26, 2024 at 02:11:34PM GMT, kernelkind wrote:\n>>\n>> d8fcc573f922 Add nostr-sdk dependency\n>>\n>\n>Oh I'm confused, it sounded like you don't want to use nostr-sdk but you\n>added this anyway? Do you want me to redo it without the nostr-sdk\n>dependency? By creating my own SecretKey and Keys structs\n\nyes I merge stuff so we can make forward progress. When I'm giving my\nreview I sometimes just state my concerns but will merge it anyway\nbecause it's too early in the project to worry about such things. We can\njust refactor it if it becomes an issue.\n\nI would have explicitly told you to rewrite something if I want it to be\nrewritten. I'm not always right or have the full motivations as to why\nyou needed the dependency. I will naturally undo anything that is\ncausing too much friction anyways.\n\nCheers,\n\n\tWill\n" 5799 } 5800 }, 5801 { 5802 "issue": { 5803 "url": "https://api.github.com/repos/damus-io/android/issues/61", 5804 "repository_url": "https://api.github.com/repos/damus-io/android", 5805 "labels_url": "https://api.github.com/repos/damus-io/android/issues/61/labels{/name}", 5806 "comments_url": "https://api.github.com/repos/damus-io/android/issues/61/comments", 5807 "events_url": "https://api.github.com/repos/damus-io/android/issues/61/events", 5808 "html_url": "https://github.com/damus-io/android/pull/61", 5809 "id": 2204587463, 5810 "node_id": "PR_kwDOKzWMZs5qmInC", 5811 "number": 61, 5812 "title": "Account login", 5813 "user": { 5814 "login": "kernelkind", 5815 "id": 8139906, 5816 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 5817 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 5818 "gravatar_id": "", 5819 "url": "https://api.github.com/users/kernelkind", 5820 "html_url": "https://github.com/kernelkind", 5821 "followers_url": "https://api.github.com/users/kernelkind/followers", 5822 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 5823 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 5824 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 5825 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 5826 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 5827 "repos_url": "https://api.github.com/users/kernelkind/repos", 5828 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 5829 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 5830 "type": "User", 5831 "site_admin": false 5832 }, 5833 "labels": [], 5834 "state": "closed", 5835 "locked": false, 5836 "assignee": null, 5837 "assignees": [], 5838 "milestone": null, 5839 "comments": 9, 5840 "created_at": "2024-03-24T22:22:19Z", 5841 "updated_at": "2024-04-01T21:14:13Z", 5842 "closed_at": "2024-04-01T21:14:13Z", 5843 "author_association": "COLLABORATOR", 5844 "active_lock_reason": null, 5845 "draft": false, 5846 "pull_request": { 5847 "url": "https://api.github.com/repos/damus-io/android/pulls/61", 5848 "html_url": "https://github.com/damus-io/android/pull/61", 5849 "diff_url": "https://github.com/damus-io/android/pull/61.diff", 5850 "patch_url": "https://github.com/damus-io/android/pull/61.patch", 5851 "merged_at": null 5852 }, 5853 "body": "This PR adds pretty basic account login. It's a tad rough, but I just wanted to get it out to get feedback.\r\n\r\nFirst two commits are from #62 \r\n\r\nA couple notes:\r\n- I added `nostr-sdk` as a dependency to use their version of `Keys`, `PublicKey` and `SecretKey`. I saw that we already had a conception of `PublicKey` in `enostr`, but I didn't see a point to recreating efforts that were already built out by `nostr-sdk`. Let me know if anyone has thoughts about that.\r\n- The `login_state` was added to `Damus`. When it is in state `LoginState::AcquiredLogin(Keys)`, that represents the user's current `Keys` (either only public key or public & private). \r\n- If the `queries/global.json` contains a valid pubkey, it will use that as the current user and set the `login_state` to `LoginState::AcquiredLogin` with that pubkey. I don't think this implementation shouldn't stay for when we implement private key authentication\r\n- The login panel is very rough to look at. It's just a proof of concept to demonstrate MVP features for this PR", 5854 "reactions": { 5855 "url": "https://api.github.com/repos/damus-io/android/issues/61/reactions", 5856 "total_count": 0, 5857 "+1": 0, 5858 "-1": 0, 5859 "laugh": 0, 5860 "hooray": 0, 5861 "confused": 0, 5862 "heart": 0, 5863 "rocket": 0, 5864 "eyes": 0 5865 }, 5866 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/61/timeline", 5867 "performed_via_github_app": null, 5868 "state_reason": null 5869 }, 5870 "comment": { 5871 "user": "jb55", 5872 "created_at": "2024-03-29T08:59:41Z", 5873 "updated_at": "2024-03-29T08:59:41Z", 5874 "body": "On Tue, Mar 26, 2024 at 08:35:25AM GMT, kernelkind wrote:\n>I replied to these comments over email, unfortunately they don't get\n>synced to github. I'll probably just reply in github next time if\n>that's ok\n\nyou can do whatever you want, I receive github comments in my inbox.\ngithub-delivered comments have a ***@***.*** email\nwhich I use to BCC, so both our mailing list and github comments receive\nit.\n" 5875 } 5876 }, 5877 { 5878 "issue": { 5879 "url": "https://api.github.com/repos/damus-io/android/issues/60", 5880 "repository_url": "https://api.github.com/repos/damus-io/android", 5881 "labels_url": "https://api.github.com/repos/damus-io/android/issues/60/labels{/name}", 5882 "comments_url": "https://api.github.com/repos/damus-io/android/issues/60/comments", 5883 "events_url": "https://api.github.com/repos/damus-io/android/issues/60/events", 5884 "html_url": "https://github.com/damus-io/android/issues/60", 5885 "id": 2203794051, 5886 "node_id": "I_kwDOKzWMZs6DWzqD", 5887 "number": 60, 5888 "title": "Android softkeyboard support", 5889 "user": { 5890 "login": "jb55", 5891 "id": 45598, 5892 "node_id": "MDQ6VXNlcjQ1NTk4", 5893 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 5894 "gravatar_id": "", 5895 "url": "https://api.github.com/users/jb55", 5896 "html_url": "https://github.com/jb55", 5897 "followers_url": "https://api.github.com/users/jb55/followers", 5898 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 5899 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 5900 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 5901 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 5902 "organizations_url": "https://api.github.com/users/jb55/orgs", 5903 "repos_url": "https://api.github.com/users/jb55/repos", 5904 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 5905 "received_events_url": "https://api.github.com/users/jb55/received_events", 5906 "type": "User", 5907 "site_admin": false 5908 }, 5909 "labels": [ 5910 { 5911 "id": 6339173748, 5912 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 5913 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 5914 "name": "technical", 5915 "color": "e99695", 5916 "default": false, 5917 "description": "" 5918 } 5919 ], 5920 "state": "open", 5921 "locked": false, 5922 "assignee": { 5923 "login": "jb55", 5924 "id": 45598, 5925 "node_id": "MDQ6VXNlcjQ1NTk4", 5926 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 5927 "gravatar_id": "", 5928 "url": "https://api.github.com/users/jb55", 5929 "html_url": "https://github.com/jb55", 5930 "followers_url": "https://api.github.com/users/jb55/followers", 5931 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 5932 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 5933 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 5934 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 5935 "organizations_url": "https://api.github.com/users/jb55/orgs", 5936 "repos_url": "https://api.github.com/users/jb55/repos", 5937 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 5938 "received_events_url": "https://api.github.com/users/jb55/received_events", 5939 "type": "User", 5940 "site_admin": false 5941 }, 5942 "assignees": [ 5943 { 5944 "login": "jb55", 5945 "id": 45598, 5946 "node_id": "MDQ6VXNlcjQ1NTk4", 5947 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 5948 "gravatar_id": "", 5949 "url": "https://api.github.com/users/jb55", 5950 "html_url": "https://github.com/jb55", 5951 "followers_url": "https://api.github.com/users/jb55/followers", 5952 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 5953 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 5954 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 5955 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 5956 "organizations_url": "https://api.github.com/users/jb55/orgs", 5957 "repos_url": "https://api.github.com/users/jb55/repos", 5958 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 5959 "received_events_url": "https://api.github.com/users/jb55/received_events", 5960 "type": "User", 5961 "site_admin": false 5962 } 5963 ], 5964 "milestone": { 5965 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 5966 "html_url": "https://github.com/damus-io/android/milestone/1", 5967 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 5968 "id": 10252427, 5969 "node_id": "MI_kwDOKzWMZs4AnHCL", 5970 "number": 1, 5971 "title": "0.1 Android PRAGUE", 5972 "description": "", 5973 "creator": { 5974 "login": "alltheseas", 5975 "id": 64376233, 5976 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 5977 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 5978 "gravatar_id": "", 5979 "url": "https://api.github.com/users/alltheseas", 5980 "html_url": "https://github.com/alltheseas", 5981 "followers_url": "https://api.github.com/users/alltheseas/followers", 5982 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 5983 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 5984 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 5985 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 5986 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 5987 "repos_url": "https://api.github.com/users/alltheseas/repos", 5988 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 5989 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 5990 "type": "User", 5991 "site_admin": false 5992 }, 5993 "open_issues": 22, 5994 "closed_issues": 3, 5995 "state": "open", 5996 "created_at": "2023-11-30T19:39:43Z", 5997 "updated_at": "2024-04-09T19:49:56Z", 5998 "due_on": "2024-06-12T07:00:00Z", 5999 "closed_at": null 6000 }, 6001 "comments": 4, 6002 "created_at": "2024-03-23T09:36:09Z", 6003 "updated_at": "2024-04-09T20:37:18Z", 6004 "closed_at": null, 6005 "author_association": "CONTRIBUTOR", 6006 "active_lock_reason": null, 6007 "body": "For input on android, we need to pop up the keyboard. This isn't directly supported by egui, since egui doesn't handle such things. egui delegates such tasks to winit, but winit does not support it yet.\r\n\r\nExternal tracking issues:\r\n\r\n- https://github.com/emilk/egui/issues/3890\r\n- https://github.com/rust-windowing/winit/issues/1823\r\n- https://github.com/emilk/egui/discussions/2975\r\n- https://github.com/rust-mobile/android-activity/issues/44\r\n- https://github.com/rust-mobile/android-activity/pull/24\r\n- https://github.com/rust-mobile/android-activity/issues/18\r\n\r\nProgress in this area:\r\n\r\n- https://github.com/rust-mobile/android-activity/issues/44#issuecomment-1627240142 by @lucasmerlin\r\n\r\nOur progress:\r\n\r\n- [x] https://github.com/damus-io/android/issues/74\r\n- [ ] https://github.com/damus-io/android/issues/80\r\n- [ ] https://github.com/damus-io/android/issues/76\r\n- [ ] https://github.com/damus-io/android/issues/75", 6008 "reactions": { 6009 "url": "https://api.github.com/repos/damus-io/android/issues/60/reactions", 6010 "total_count": 1, 6011 "+1": 0, 6012 "-1": 0, 6013 "laugh": 0, 6014 "hooray": 0, 6015 "confused": 0, 6016 "heart": 0, 6017 "rocket": 0, 6018 "eyes": 1 6019 }, 6020 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/60/timeline", 6021 "performed_via_github_app": null, 6022 "state_reason": null 6023 } 6024 }, 6025 { 6026 "issue": { 6027 "url": "https://api.github.com/repos/damus-io/android/issues/60", 6028 "repository_url": "https://api.github.com/repos/damus-io/android", 6029 "labels_url": "https://api.github.com/repos/damus-io/android/issues/60/labels{/name}", 6030 "comments_url": "https://api.github.com/repos/damus-io/android/issues/60/comments", 6031 "events_url": "https://api.github.com/repos/damus-io/android/issues/60/events", 6032 "html_url": "https://github.com/damus-io/android/issues/60", 6033 "id": 2203794051, 6034 "node_id": "I_kwDOKzWMZs6DWzqD", 6035 "number": 60, 6036 "title": "Android softkeyboard support", 6037 "user": { 6038 "login": "jb55", 6039 "id": 45598, 6040 "node_id": "MDQ6VXNlcjQ1NTk4", 6041 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6042 "gravatar_id": "", 6043 "url": "https://api.github.com/users/jb55", 6044 "html_url": "https://github.com/jb55", 6045 "followers_url": "https://api.github.com/users/jb55/followers", 6046 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6047 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6048 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6049 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6050 "organizations_url": "https://api.github.com/users/jb55/orgs", 6051 "repos_url": "https://api.github.com/users/jb55/repos", 6052 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6053 "received_events_url": "https://api.github.com/users/jb55/received_events", 6054 "type": "User", 6055 "site_admin": false 6056 }, 6057 "labels": [ 6058 { 6059 "id": 6339173748, 6060 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 6061 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 6062 "name": "technical", 6063 "color": "e99695", 6064 "default": false, 6065 "description": "" 6066 } 6067 ], 6068 "state": "open", 6069 "locked": false, 6070 "assignee": { 6071 "login": "jb55", 6072 "id": 45598, 6073 "node_id": "MDQ6VXNlcjQ1NTk4", 6074 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6075 "gravatar_id": "", 6076 "url": "https://api.github.com/users/jb55", 6077 "html_url": "https://github.com/jb55", 6078 "followers_url": "https://api.github.com/users/jb55/followers", 6079 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6080 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6081 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6082 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6083 "organizations_url": "https://api.github.com/users/jb55/orgs", 6084 "repos_url": "https://api.github.com/users/jb55/repos", 6085 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6086 "received_events_url": "https://api.github.com/users/jb55/received_events", 6087 "type": "User", 6088 "site_admin": false 6089 }, 6090 "assignees": [ 6091 { 6092 "login": "jb55", 6093 "id": 45598, 6094 "node_id": "MDQ6VXNlcjQ1NTk4", 6095 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6096 "gravatar_id": "", 6097 "url": "https://api.github.com/users/jb55", 6098 "html_url": "https://github.com/jb55", 6099 "followers_url": "https://api.github.com/users/jb55/followers", 6100 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6101 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6102 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6103 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6104 "organizations_url": "https://api.github.com/users/jb55/orgs", 6105 "repos_url": "https://api.github.com/users/jb55/repos", 6106 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6107 "received_events_url": "https://api.github.com/users/jb55/received_events", 6108 "type": "User", 6109 "site_admin": false 6110 } 6111 ], 6112 "milestone": { 6113 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 6114 "html_url": "https://github.com/damus-io/android/milestone/1", 6115 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 6116 "id": 10252427, 6117 "node_id": "MI_kwDOKzWMZs4AnHCL", 6118 "number": 1, 6119 "title": "0.1 Android PRAGUE", 6120 "description": "", 6121 "creator": { 6122 "login": "alltheseas", 6123 "id": 64376233, 6124 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 6125 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 6126 "gravatar_id": "", 6127 "url": "https://api.github.com/users/alltheseas", 6128 "html_url": "https://github.com/alltheseas", 6129 "followers_url": "https://api.github.com/users/alltheseas/followers", 6130 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 6131 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 6132 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 6133 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 6134 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 6135 "repos_url": "https://api.github.com/users/alltheseas/repos", 6136 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 6137 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 6138 "type": "User", 6139 "site_admin": false 6140 }, 6141 "open_issues": 22, 6142 "closed_issues": 3, 6143 "state": "open", 6144 "created_at": "2023-11-30T19:39:43Z", 6145 "updated_at": "2024-04-09T19:49:56Z", 6146 "due_on": "2024-06-12T07:00:00Z", 6147 "closed_at": null 6148 }, 6149 "comments": 4, 6150 "created_at": "2024-03-23T09:36:09Z", 6151 "updated_at": "2024-04-09T20:37:18Z", 6152 "closed_at": null, 6153 "author_association": "CONTRIBUTOR", 6154 "active_lock_reason": null, 6155 "body": "For input on android, we need to pop up the keyboard. This isn't directly supported by egui, since egui doesn't handle such things. egui delegates such tasks to winit, but winit does not support it yet.\r\n\r\nExternal tracking issues:\r\n\r\n- https://github.com/emilk/egui/issues/3890\r\n- https://github.com/rust-windowing/winit/issues/1823\r\n- https://github.com/emilk/egui/discussions/2975\r\n- https://github.com/rust-mobile/android-activity/issues/44\r\n- https://github.com/rust-mobile/android-activity/pull/24\r\n- https://github.com/rust-mobile/android-activity/issues/18\r\n\r\nProgress in this area:\r\n\r\n- https://github.com/rust-mobile/android-activity/issues/44#issuecomment-1627240142 by @lucasmerlin\r\n\r\nOur progress:\r\n\r\n- [x] https://github.com/damus-io/android/issues/74\r\n- [ ] https://github.com/damus-io/android/issues/80\r\n- [ ] https://github.com/damus-io/android/issues/76\r\n- [ ] https://github.com/damus-io/android/issues/75", 6156 "reactions": { 6157 "url": "https://api.github.com/repos/damus-io/android/issues/60/reactions", 6158 "total_count": 1, 6159 "+1": 0, 6160 "-1": 0, 6161 "laugh": 0, 6162 "hooray": 0, 6163 "confused": 0, 6164 "heart": 0, 6165 "rocket": 0, 6166 "eyes": 1 6167 }, 6168 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/60/timeline", 6169 "performed_via_github_app": null, 6170 "state_reason": null 6171 }, 6172 "comment": { 6173 "user": "jb55", 6174 "created_at": "2024-03-27T10:21:35Z", 6175 "updated_at": "2024-03-27T10:21:35Z", 6176 "body": "I looked into this all yesterday. It looks like we might need to switch over to GameActivity to get this working. There is some initial work from @rib in android-activity (https://github.com/rust-mobile/android-activity/pull/24) for soft keyboard + GameActivity, but it looks like we'll will still need winit/egui support. There are some demos by @lucasmerlin at https://github.com/lucasmerlin/rust-android-examples/tree/ime_support_showcase/agdk-eframe which demo this in egui.\r\n\r\nThe current build tooling we're using assumes its a NativeActivity, I have yet to get GameActivity working. It seems there are many build tools: cargo-apk (what we're using now), cargo-ndk, cargo-xbuild, cargo-mobile2. I'm not sure what to use. The GameActivity demos use cargo-ndk but it requires some gradle step which I have yet to get working.\r\n\r\nSomewhat surprised the rust mobile ecosystem still can't present a keyboard for input, oh well, I guess banging my head against this a bit more is easier than building an entirely new android kotlin codebase from scratch.\r\n" 6177 } 6178 }, 6179 { 6180 "issue": { 6181 "url": "https://api.github.com/repos/damus-io/android/issues/60", 6182 "repository_url": "https://api.github.com/repos/damus-io/android", 6183 "labels_url": "https://api.github.com/repos/damus-io/android/issues/60/labels{/name}", 6184 "comments_url": "https://api.github.com/repos/damus-io/android/issues/60/comments", 6185 "events_url": "https://api.github.com/repos/damus-io/android/issues/60/events", 6186 "html_url": "https://github.com/damus-io/android/issues/60", 6187 "id": 2203794051, 6188 "node_id": "I_kwDOKzWMZs6DWzqD", 6189 "number": 60, 6190 "title": "Android softkeyboard support", 6191 "user": { 6192 "login": "jb55", 6193 "id": 45598, 6194 "node_id": "MDQ6VXNlcjQ1NTk4", 6195 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6196 "gravatar_id": "", 6197 "url": "https://api.github.com/users/jb55", 6198 "html_url": "https://github.com/jb55", 6199 "followers_url": "https://api.github.com/users/jb55/followers", 6200 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6201 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6202 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6203 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6204 "organizations_url": "https://api.github.com/users/jb55/orgs", 6205 "repos_url": "https://api.github.com/users/jb55/repos", 6206 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6207 "received_events_url": "https://api.github.com/users/jb55/received_events", 6208 "type": "User", 6209 "site_admin": false 6210 }, 6211 "labels": [ 6212 { 6213 "id": 6339173748, 6214 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 6215 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 6216 "name": "technical", 6217 "color": "e99695", 6218 "default": false, 6219 "description": "" 6220 } 6221 ], 6222 "state": "open", 6223 "locked": false, 6224 "assignee": { 6225 "login": "jb55", 6226 "id": 45598, 6227 "node_id": "MDQ6VXNlcjQ1NTk4", 6228 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6229 "gravatar_id": "", 6230 "url": "https://api.github.com/users/jb55", 6231 "html_url": "https://github.com/jb55", 6232 "followers_url": "https://api.github.com/users/jb55/followers", 6233 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6234 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6235 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6236 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6237 "organizations_url": "https://api.github.com/users/jb55/orgs", 6238 "repos_url": "https://api.github.com/users/jb55/repos", 6239 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6240 "received_events_url": "https://api.github.com/users/jb55/received_events", 6241 "type": "User", 6242 "site_admin": false 6243 }, 6244 "assignees": [ 6245 { 6246 "login": "jb55", 6247 "id": 45598, 6248 "node_id": "MDQ6VXNlcjQ1NTk4", 6249 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6250 "gravatar_id": "", 6251 "url": "https://api.github.com/users/jb55", 6252 "html_url": "https://github.com/jb55", 6253 "followers_url": "https://api.github.com/users/jb55/followers", 6254 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6255 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6256 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6257 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6258 "organizations_url": "https://api.github.com/users/jb55/orgs", 6259 "repos_url": "https://api.github.com/users/jb55/repos", 6260 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6261 "received_events_url": "https://api.github.com/users/jb55/received_events", 6262 "type": "User", 6263 "site_admin": false 6264 } 6265 ], 6266 "milestone": { 6267 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 6268 "html_url": "https://github.com/damus-io/android/milestone/1", 6269 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 6270 "id": 10252427, 6271 "node_id": "MI_kwDOKzWMZs4AnHCL", 6272 "number": 1, 6273 "title": "0.1 Android PRAGUE", 6274 "description": "", 6275 "creator": { 6276 "login": "alltheseas", 6277 "id": 64376233, 6278 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 6279 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 6280 "gravatar_id": "", 6281 "url": "https://api.github.com/users/alltheseas", 6282 "html_url": "https://github.com/alltheseas", 6283 "followers_url": "https://api.github.com/users/alltheseas/followers", 6284 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 6285 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 6286 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 6287 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 6288 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 6289 "repos_url": "https://api.github.com/users/alltheseas/repos", 6290 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 6291 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 6292 "type": "User", 6293 "site_admin": false 6294 }, 6295 "open_issues": 22, 6296 "closed_issues": 3, 6297 "state": "open", 6298 "created_at": "2023-11-30T19:39:43Z", 6299 "updated_at": "2024-04-09T19:49:56Z", 6300 "due_on": "2024-06-12T07:00:00Z", 6301 "closed_at": null 6302 }, 6303 "comments": 4, 6304 "created_at": "2024-03-23T09:36:09Z", 6305 "updated_at": "2024-04-09T20:37:18Z", 6306 "closed_at": null, 6307 "author_association": "CONTRIBUTOR", 6308 "active_lock_reason": null, 6309 "body": "For input on android, we need to pop up the keyboard. This isn't directly supported by egui, since egui doesn't handle such things. egui delegates such tasks to winit, but winit does not support it yet.\r\n\r\nExternal tracking issues:\r\n\r\n- https://github.com/emilk/egui/issues/3890\r\n- https://github.com/rust-windowing/winit/issues/1823\r\n- https://github.com/emilk/egui/discussions/2975\r\n- https://github.com/rust-mobile/android-activity/issues/44\r\n- https://github.com/rust-mobile/android-activity/pull/24\r\n- https://github.com/rust-mobile/android-activity/issues/18\r\n\r\nProgress in this area:\r\n\r\n- https://github.com/rust-mobile/android-activity/issues/44#issuecomment-1627240142 by @lucasmerlin\r\n\r\nOur progress:\r\n\r\n- [x] https://github.com/damus-io/android/issues/74\r\n- [ ] https://github.com/damus-io/android/issues/80\r\n- [ ] https://github.com/damus-io/android/issues/76\r\n- [ ] https://github.com/damus-io/android/issues/75", 6310 "reactions": { 6311 "url": "https://api.github.com/repos/damus-io/android/issues/60/reactions", 6312 "total_count": 1, 6313 "+1": 0, 6314 "-1": 0, 6315 "laugh": 0, 6316 "hooray": 0, 6317 "confused": 0, 6318 "heart": 0, 6319 "rocket": 0, 6320 "eyes": 1 6321 }, 6322 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/60/timeline", 6323 "performed_via_github_app": null, 6324 "state_reason": null 6325 }, 6326 "comment": { 6327 "user": "lucasmerlin", 6328 "created_at": "2024-03-27T11:09:19Z", 6329 "updated_at": "2024-03-27T11:09:19Z", 6330 "body": "I can report that I'm still using the method from the showcase in my app and I regularly update my fork of winit and egui with the keyboard changes to the newest versions.\r\n\r\nThe current versions of my fork are here:\r\n\r\nhttps://github.com/lucasmerlin/egui/tree/hp_improvements_0.26\r\n\r\nhttps://github.com/lucasmerlin/winit/tree/hp-fixes-0.29.x\r\n\r\nThey also contain changes unrelated to keyboard input, but maybe it will still be helpful. " 6331 } 6332 }, 6333 { 6334 "issue": { 6335 "url": "https://api.github.com/repos/damus-io/android/issues/60", 6336 "repository_url": "https://api.github.com/repos/damus-io/android", 6337 "labels_url": "https://api.github.com/repos/damus-io/android/issues/60/labels{/name}", 6338 "comments_url": "https://api.github.com/repos/damus-io/android/issues/60/comments", 6339 "events_url": "https://api.github.com/repos/damus-io/android/issues/60/events", 6340 "html_url": "https://github.com/damus-io/android/issues/60", 6341 "id": 2203794051, 6342 "node_id": "I_kwDOKzWMZs6DWzqD", 6343 "number": 60, 6344 "title": "Android softkeyboard support", 6345 "user": { 6346 "login": "jb55", 6347 "id": 45598, 6348 "node_id": "MDQ6VXNlcjQ1NTk4", 6349 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6350 "gravatar_id": "", 6351 "url": "https://api.github.com/users/jb55", 6352 "html_url": "https://github.com/jb55", 6353 "followers_url": "https://api.github.com/users/jb55/followers", 6354 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6355 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6356 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6357 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6358 "organizations_url": "https://api.github.com/users/jb55/orgs", 6359 "repos_url": "https://api.github.com/users/jb55/repos", 6360 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6361 "received_events_url": "https://api.github.com/users/jb55/received_events", 6362 "type": "User", 6363 "site_admin": false 6364 }, 6365 "labels": [ 6366 { 6367 "id": 6339173748, 6368 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 6369 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 6370 "name": "technical", 6371 "color": "e99695", 6372 "default": false, 6373 "description": "" 6374 } 6375 ], 6376 "state": "open", 6377 "locked": false, 6378 "assignee": { 6379 "login": "jb55", 6380 "id": 45598, 6381 "node_id": "MDQ6VXNlcjQ1NTk4", 6382 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6383 "gravatar_id": "", 6384 "url": "https://api.github.com/users/jb55", 6385 "html_url": "https://github.com/jb55", 6386 "followers_url": "https://api.github.com/users/jb55/followers", 6387 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6388 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6389 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6390 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6391 "organizations_url": "https://api.github.com/users/jb55/orgs", 6392 "repos_url": "https://api.github.com/users/jb55/repos", 6393 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6394 "received_events_url": "https://api.github.com/users/jb55/received_events", 6395 "type": "User", 6396 "site_admin": false 6397 }, 6398 "assignees": [ 6399 { 6400 "login": "jb55", 6401 "id": 45598, 6402 "node_id": "MDQ6VXNlcjQ1NTk4", 6403 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6404 "gravatar_id": "", 6405 "url": "https://api.github.com/users/jb55", 6406 "html_url": "https://github.com/jb55", 6407 "followers_url": "https://api.github.com/users/jb55/followers", 6408 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6409 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6410 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6411 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6412 "organizations_url": "https://api.github.com/users/jb55/orgs", 6413 "repos_url": "https://api.github.com/users/jb55/repos", 6414 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6415 "received_events_url": "https://api.github.com/users/jb55/received_events", 6416 "type": "User", 6417 "site_admin": false 6418 } 6419 ], 6420 "milestone": { 6421 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 6422 "html_url": "https://github.com/damus-io/android/milestone/1", 6423 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 6424 "id": 10252427, 6425 "node_id": "MI_kwDOKzWMZs4AnHCL", 6426 "number": 1, 6427 "title": "0.1 Android PRAGUE", 6428 "description": "", 6429 "creator": { 6430 "login": "alltheseas", 6431 "id": 64376233, 6432 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 6433 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 6434 "gravatar_id": "", 6435 "url": "https://api.github.com/users/alltheseas", 6436 "html_url": "https://github.com/alltheseas", 6437 "followers_url": "https://api.github.com/users/alltheseas/followers", 6438 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 6439 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 6440 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 6441 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 6442 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 6443 "repos_url": "https://api.github.com/users/alltheseas/repos", 6444 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 6445 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 6446 "type": "User", 6447 "site_admin": false 6448 }, 6449 "open_issues": 22, 6450 "closed_issues": 3, 6451 "state": "open", 6452 "created_at": "2023-11-30T19:39:43Z", 6453 "updated_at": "2024-04-09T19:49:56Z", 6454 "due_on": "2024-06-12T07:00:00Z", 6455 "closed_at": null 6456 }, 6457 "comments": 4, 6458 "created_at": "2024-03-23T09:36:09Z", 6459 "updated_at": "2024-04-09T20:37:18Z", 6460 "closed_at": null, 6461 "author_association": "CONTRIBUTOR", 6462 "active_lock_reason": null, 6463 "body": "For input on android, we need to pop up the keyboard. This isn't directly supported by egui, since egui doesn't handle such things. egui delegates such tasks to winit, but winit does not support it yet.\r\n\r\nExternal tracking issues:\r\n\r\n- https://github.com/emilk/egui/issues/3890\r\n- https://github.com/rust-windowing/winit/issues/1823\r\n- https://github.com/emilk/egui/discussions/2975\r\n- https://github.com/rust-mobile/android-activity/issues/44\r\n- https://github.com/rust-mobile/android-activity/pull/24\r\n- https://github.com/rust-mobile/android-activity/issues/18\r\n\r\nProgress in this area:\r\n\r\n- https://github.com/rust-mobile/android-activity/issues/44#issuecomment-1627240142 by @lucasmerlin\r\n\r\nOur progress:\r\n\r\n- [x] https://github.com/damus-io/android/issues/74\r\n- [ ] https://github.com/damus-io/android/issues/80\r\n- [ ] https://github.com/damus-io/android/issues/76\r\n- [ ] https://github.com/damus-io/android/issues/75", 6464 "reactions": { 6465 "url": "https://api.github.com/repos/damus-io/android/issues/60/reactions", 6466 "total_count": 1, 6467 "+1": 0, 6468 "-1": 0, 6469 "laugh": 0, 6470 "hooray": 0, 6471 "confused": 0, 6472 "heart": 0, 6473 "rocket": 0, 6474 "eyes": 1 6475 }, 6476 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/60/timeline", 6477 "performed_via_github_app": null, 6478 "state_reason": null 6479 }, 6480 "comment": { 6481 "user": "jb55", 6482 "created_at": "2024-03-27T13:03:10Z", 6483 "updated_at": "2024-03-27T13:03:10Z", 6484 "body": "I saw those! Thank you! I will try to get these working." 6485 } 6486 }, 6487 { 6488 "issue": { 6489 "url": "https://api.github.com/repos/damus-io/android/issues/60", 6490 "repository_url": "https://api.github.com/repos/damus-io/android", 6491 "labels_url": "https://api.github.com/repos/damus-io/android/issues/60/labels{/name}", 6492 "comments_url": "https://api.github.com/repos/damus-io/android/issues/60/comments", 6493 "events_url": "https://api.github.com/repos/damus-io/android/issues/60/events", 6494 "html_url": "https://github.com/damus-io/android/issues/60", 6495 "id": 2203794051, 6496 "node_id": "I_kwDOKzWMZs6DWzqD", 6497 "number": 60, 6498 "title": "Android softkeyboard support", 6499 "user": { 6500 "login": "jb55", 6501 "id": 45598, 6502 "node_id": "MDQ6VXNlcjQ1NTk4", 6503 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6504 "gravatar_id": "", 6505 "url": "https://api.github.com/users/jb55", 6506 "html_url": "https://github.com/jb55", 6507 "followers_url": "https://api.github.com/users/jb55/followers", 6508 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6509 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6510 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6511 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6512 "organizations_url": "https://api.github.com/users/jb55/orgs", 6513 "repos_url": "https://api.github.com/users/jb55/repos", 6514 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6515 "received_events_url": "https://api.github.com/users/jb55/received_events", 6516 "type": "User", 6517 "site_admin": false 6518 }, 6519 "labels": [ 6520 { 6521 "id": 6339173748, 6522 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 6523 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 6524 "name": "technical", 6525 "color": "e99695", 6526 "default": false, 6527 "description": "" 6528 } 6529 ], 6530 "state": "open", 6531 "locked": false, 6532 "assignee": { 6533 "login": "jb55", 6534 "id": 45598, 6535 "node_id": "MDQ6VXNlcjQ1NTk4", 6536 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6537 "gravatar_id": "", 6538 "url": "https://api.github.com/users/jb55", 6539 "html_url": "https://github.com/jb55", 6540 "followers_url": "https://api.github.com/users/jb55/followers", 6541 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6542 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6543 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6544 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6545 "organizations_url": "https://api.github.com/users/jb55/orgs", 6546 "repos_url": "https://api.github.com/users/jb55/repos", 6547 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6548 "received_events_url": "https://api.github.com/users/jb55/received_events", 6549 "type": "User", 6550 "site_admin": false 6551 }, 6552 "assignees": [ 6553 { 6554 "login": "jb55", 6555 "id": 45598, 6556 "node_id": "MDQ6VXNlcjQ1NTk4", 6557 "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", 6558 "gravatar_id": "", 6559 "url": "https://api.github.com/users/jb55", 6560 "html_url": "https://github.com/jb55", 6561 "followers_url": "https://api.github.com/users/jb55/followers", 6562 "following_url": "https://api.github.com/users/jb55/following{/other_user}", 6563 "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", 6564 "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", 6565 "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", 6566 "organizations_url": "https://api.github.com/users/jb55/orgs", 6567 "repos_url": "https://api.github.com/users/jb55/repos", 6568 "events_url": "https://api.github.com/users/jb55/events{/privacy}", 6569 "received_events_url": "https://api.github.com/users/jb55/received_events", 6570 "type": "User", 6571 "site_admin": false 6572 } 6573 ], 6574 "milestone": { 6575 "url": "https://api.github.com/repos/damus-io/android/milestones/1", 6576 "html_url": "https://github.com/damus-io/android/milestone/1", 6577 "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", 6578 "id": 10252427, 6579 "node_id": "MI_kwDOKzWMZs4AnHCL", 6580 "number": 1, 6581 "title": "0.1 Android PRAGUE", 6582 "description": "", 6583 "creator": { 6584 "login": "alltheseas", 6585 "id": 64376233, 6586 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 6587 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 6588 "gravatar_id": "", 6589 "url": "https://api.github.com/users/alltheseas", 6590 "html_url": "https://github.com/alltheseas", 6591 "followers_url": "https://api.github.com/users/alltheseas/followers", 6592 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 6593 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 6594 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 6595 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 6596 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 6597 "repos_url": "https://api.github.com/users/alltheseas/repos", 6598 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 6599 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 6600 "type": "User", 6601 "site_admin": false 6602 }, 6603 "open_issues": 22, 6604 "closed_issues": 3, 6605 "state": "open", 6606 "created_at": "2023-11-30T19:39:43Z", 6607 "updated_at": "2024-04-09T19:49:56Z", 6608 "due_on": "2024-06-12T07:00:00Z", 6609 "closed_at": null 6610 }, 6611 "comments": 4, 6612 "created_at": "2024-03-23T09:36:09Z", 6613 "updated_at": "2024-04-09T20:37:18Z", 6614 "closed_at": null, 6615 "author_association": "CONTRIBUTOR", 6616 "active_lock_reason": null, 6617 "body": "For input on android, we need to pop up the keyboard. This isn't directly supported by egui, since egui doesn't handle such things. egui delegates such tasks to winit, but winit does not support it yet.\r\n\r\nExternal tracking issues:\r\n\r\n- https://github.com/emilk/egui/issues/3890\r\n- https://github.com/rust-windowing/winit/issues/1823\r\n- https://github.com/emilk/egui/discussions/2975\r\n- https://github.com/rust-mobile/android-activity/issues/44\r\n- https://github.com/rust-mobile/android-activity/pull/24\r\n- https://github.com/rust-mobile/android-activity/issues/18\r\n\r\nProgress in this area:\r\n\r\n- https://github.com/rust-mobile/android-activity/issues/44#issuecomment-1627240142 by @lucasmerlin\r\n\r\nOur progress:\r\n\r\n- [x] https://github.com/damus-io/android/issues/74\r\n- [ ] https://github.com/damus-io/android/issues/80\r\n- [ ] https://github.com/damus-io/android/issues/76\r\n- [ ] https://github.com/damus-io/android/issues/75", 6618 "reactions": { 6619 "url": "https://api.github.com/repos/damus-io/android/issues/60/reactions", 6620 "total_count": 1, 6621 "+1": 0, 6622 "-1": 0, 6623 "laugh": 0, 6624 "hooray": 0, 6625 "confused": 0, 6626 "heart": 0, 6627 "rocket": 0, 6628 "eyes": 1 6629 }, 6630 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/60/timeline", 6631 "performed_via_github_app": null, 6632 "state_reason": null 6633 }, 6634 "comment": { 6635 "user": "jb55", 6636 "created_at": "2024-04-08T17:37:26Z", 6637 "updated_at": "2024-04-08T17:37:26Z", 6638 "body": "Since this is a large task I will split it into specific deliverables for this sprint" 6639 } 6640 }, 6641 { 6642 "issue": { 6643 "url": "https://api.github.com/repos/damus-io/android/issues/59", 6644 "repository_url": "https://api.github.com/repos/damus-io/android", 6645 "labels_url": "https://api.github.com/repos/damus-io/android/issues/59/labels{/name}", 6646 "comments_url": "https://api.github.com/repos/damus-io/android/issues/59/comments", 6647 "events_url": "https://api.github.com/repos/damus-io/android/issues/59/events", 6648 "html_url": "https://github.com/damus-io/android/issues/59", 6649 "id": 2187559986, 6650 "node_id": "I_kwDOKzWMZs6CY4Qy", 6651 "number": 59, 6652 "title": "One tap zaps, LN address, and receiving zaps magically work post onboarding (fedimint)", 6653 "user": { 6654 "login": "alltheseas", 6655 "id": 64376233, 6656 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 6657 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 6658 "gravatar_id": "", 6659 "url": "https://api.github.com/users/alltheseas", 6660 "html_url": "https://github.com/alltheseas", 6661 "followers_url": "https://api.github.com/users/alltheseas/followers", 6662 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 6663 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 6664 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 6665 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 6666 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 6667 "repos_url": "https://api.github.com/users/alltheseas/repos", 6668 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 6669 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 6670 "type": "User", 6671 "site_admin": false 6672 }, 6673 "labels": [ 6674 { 6675 "id": 6271232904, 6676 "node_id": "LA_kwDOKzWMZs8AAAABdctriA", 6677 "url": "https://api.github.com/repos/damus-io/android/labels/zaps", 6678 "name": "zaps", 6679 "color": "fef2c0", 6680 "default": false, 6681 "description": "" 6682 }, 6683 { 6684 "id": 6693750330, 6685 "node_id": "LA_kwDOKzWMZs8AAAABjvqGOg", 6686 "url": "https://api.github.com/repos/damus-io/android/labels/fedimint", 6687 "name": "fedimint", 6688 "color": "630EFE", 6689 "default": false, 6690 "description": "" 6691 } 6692 ], 6693 "state": "open", 6694 "locked": false, 6695 "assignee": { 6696 "login": "kernelkind", 6697 "id": 8139906, 6698 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 6699 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 6700 "gravatar_id": "", 6701 "url": "https://api.github.com/users/kernelkind", 6702 "html_url": "https://github.com/kernelkind", 6703 "followers_url": "https://api.github.com/users/kernelkind/followers", 6704 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 6705 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 6706 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 6707 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 6708 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 6709 "repos_url": "https://api.github.com/users/kernelkind/repos", 6710 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 6711 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 6712 "type": "User", 6713 "site_admin": false 6714 }, 6715 "assignees": [ 6716 { 6717 "login": "kernelkind", 6718 "id": 8139906, 6719 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 6720 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 6721 "gravatar_id": "", 6722 "url": "https://api.github.com/users/kernelkind", 6723 "html_url": "https://github.com/kernelkind", 6724 "followers_url": "https://api.github.com/users/kernelkind/followers", 6725 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 6726 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 6727 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 6728 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 6729 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 6730 "repos_url": "https://api.github.com/users/kernelkind/repos", 6731 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 6732 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 6733 "type": "User", 6734 "site_admin": false 6735 } 6736 ], 6737 "milestone": null, 6738 "comments": 2, 6739 "created_at": "2024-03-15T01:42:16Z", 6740 "updated_at": "2024-03-16T08:32:54Z", 6741 "closed_at": null, 6742 "author_association": "CONTRIBUTOR", 6743 "active_lock_reason": null, 6744 "body": "## user story\r\n\r\nAs someone who has just completed onboarding to Damus Android, I want to be able to send zaps & receive zaps, so that I can experience the full experience of nostr immediately.\r\n\r\n### acceptance criteria\r\nImmediately upon onboarding,\r\n1. user automagically has a LN address, and\r\n2. user automagically can receive zaps (sats), and \r\n3. user automagically can send zaps (sats), and\r\n4. user can see balance (in sats)\r\n5. user is notified of zap receipts\r\n6. user has a history of zap sends\r\n7. user has a history of zap receipts\r\n8. one tap zaps are possible\r\n9. user cannot be rugpulled by a single user, or entity\r\n\r\n### implementation details\r\n\r\n1) [Fedimint](https://github.com/fedimint/fedimint) written in Rust, which lends itself to Damus Android\r\n2) [Hermes](https://github.com/Kodylow/hermes) by Kody\r\n3) [NWC](https://nwc.dev/) \r\n\r\n\r\n", 6745 "reactions": { 6746 "url": "https://api.github.com/repos/damus-io/android/issues/59/reactions", 6747 "total_count": 0, 6748 "+1": 0, 6749 "-1": 0, 6750 "laugh": 0, 6751 "hooray": 0, 6752 "confused": 0, 6753 "heart": 0, 6754 "rocket": 0, 6755 "eyes": 0 6756 }, 6757 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/59/timeline", 6758 "performed_via_github_app": null, 6759 "state_reason": null 6760 } 6761 }, 6762 { 6763 "issue": { 6764 "url": "https://api.github.com/repos/damus-io/android/issues/59", 6765 "repository_url": "https://api.github.com/repos/damus-io/android", 6766 "labels_url": "https://api.github.com/repos/damus-io/android/issues/59/labels{/name}", 6767 "comments_url": "https://api.github.com/repos/damus-io/android/issues/59/comments", 6768 "events_url": "https://api.github.com/repos/damus-io/android/issues/59/events", 6769 "html_url": "https://github.com/damus-io/android/issues/59", 6770 "id": 2187559986, 6771 "node_id": "I_kwDOKzWMZs6CY4Qy", 6772 "number": 59, 6773 "title": "One tap zaps, LN address, and receiving zaps magically work post onboarding (fedimint)", 6774 "user": { 6775 "login": "alltheseas", 6776 "id": 64376233, 6777 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 6778 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 6779 "gravatar_id": "", 6780 "url": "https://api.github.com/users/alltheseas", 6781 "html_url": "https://github.com/alltheseas", 6782 "followers_url": "https://api.github.com/users/alltheseas/followers", 6783 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 6784 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 6785 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 6786 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 6787 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 6788 "repos_url": "https://api.github.com/users/alltheseas/repos", 6789 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 6790 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 6791 "type": "User", 6792 "site_admin": false 6793 }, 6794 "labels": [ 6795 { 6796 "id": 6271232904, 6797 "node_id": "LA_kwDOKzWMZs8AAAABdctriA", 6798 "url": "https://api.github.com/repos/damus-io/android/labels/zaps", 6799 "name": "zaps", 6800 "color": "fef2c0", 6801 "default": false, 6802 "description": "" 6803 }, 6804 { 6805 "id": 6693750330, 6806 "node_id": "LA_kwDOKzWMZs8AAAABjvqGOg", 6807 "url": "https://api.github.com/repos/damus-io/android/labels/fedimint", 6808 "name": "fedimint", 6809 "color": "630EFE", 6810 "default": false, 6811 "description": "" 6812 } 6813 ], 6814 "state": "open", 6815 "locked": false, 6816 "assignee": { 6817 "login": "kernelkind", 6818 "id": 8139906, 6819 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 6820 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 6821 "gravatar_id": "", 6822 "url": "https://api.github.com/users/kernelkind", 6823 "html_url": "https://github.com/kernelkind", 6824 "followers_url": "https://api.github.com/users/kernelkind/followers", 6825 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 6826 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 6827 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 6828 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 6829 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 6830 "repos_url": "https://api.github.com/users/kernelkind/repos", 6831 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 6832 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 6833 "type": "User", 6834 "site_admin": false 6835 }, 6836 "assignees": [ 6837 { 6838 "login": "kernelkind", 6839 "id": 8139906, 6840 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 6841 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 6842 "gravatar_id": "", 6843 "url": "https://api.github.com/users/kernelkind", 6844 "html_url": "https://github.com/kernelkind", 6845 "followers_url": "https://api.github.com/users/kernelkind/followers", 6846 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 6847 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 6848 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 6849 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 6850 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 6851 "repos_url": "https://api.github.com/users/kernelkind/repos", 6852 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 6853 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 6854 "type": "User", 6855 "site_admin": false 6856 } 6857 ], 6858 "milestone": null, 6859 "comments": 2, 6860 "created_at": "2024-03-15T01:42:16Z", 6861 "updated_at": "2024-03-16T08:32:54Z", 6862 "closed_at": null, 6863 "author_association": "CONTRIBUTOR", 6864 "active_lock_reason": null, 6865 "body": "## user story\r\n\r\nAs someone who has just completed onboarding to Damus Android, I want to be able to send zaps & receive zaps, so that I can experience the full experience of nostr immediately.\r\n\r\n### acceptance criteria\r\nImmediately upon onboarding,\r\n1. user automagically has a LN address, and\r\n2. user automagically can receive zaps (sats), and \r\n3. user automagically can send zaps (sats), and\r\n4. user can see balance (in sats)\r\n5. user is notified of zap receipts\r\n6. user has a history of zap sends\r\n7. user has a history of zap receipts\r\n8. one tap zaps are possible\r\n9. user cannot be rugpulled by a single user, or entity\r\n\r\n### implementation details\r\n\r\n1) [Fedimint](https://github.com/fedimint/fedimint) written in Rust, which lends itself to Damus Android\r\n2) [Hermes](https://github.com/Kodylow/hermes) by Kody\r\n3) [NWC](https://nwc.dev/) \r\n\r\n\r\n", 6866 "reactions": { 6867 "url": "https://api.github.com/repos/damus-io/android/issues/59/reactions", 6868 "total_count": 0, 6869 "+1": 0, 6870 "-1": 0, 6871 "laugh": 0, 6872 "hooray": 0, 6873 "confused": 0, 6874 "heart": 0, 6875 "rocket": 0, 6876 "eyes": 0 6877 }, 6878 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/59/timeline", 6879 "performed_via_github_app": null, 6880 "state_reason": null 6881 }, 6882 "comment": { 6883 "user": "alltheseas", 6884 "created_at": "2024-03-15T01:42:51Z", 6885 "updated_at": "2024-03-15T01:42:51Z", 6886 "body": "@kernelkind @jb55 " 6887 } 6888 }, 6889 { 6890 "issue": { 6891 "url": "https://api.github.com/repos/damus-io/android/issues/59", 6892 "repository_url": "https://api.github.com/repos/damus-io/android", 6893 "labels_url": "https://api.github.com/repos/damus-io/android/issues/59/labels{/name}", 6894 "comments_url": "https://api.github.com/repos/damus-io/android/issues/59/comments", 6895 "events_url": "https://api.github.com/repos/damus-io/android/issues/59/events", 6896 "html_url": "https://github.com/damus-io/android/issues/59", 6897 "id": 2187559986, 6898 "node_id": "I_kwDOKzWMZs6CY4Qy", 6899 "number": 59, 6900 "title": "One tap zaps, LN address, and receiving zaps magically work post onboarding (fedimint)", 6901 "user": { 6902 "login": "alltheseas", 6903 "id": 64376233, 6904 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 6905 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 6906 "gravatar_id": "", 6907 "url": "https://api.github.com/users/alltheseas", 6908 "html_url": "https://github.com/alltheseas", 6909 "followers_url": "https://api.github.com/users/alltheseas/followers", 6910 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 6911 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 6912 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 6913 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 6914 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 6915 "repos_url": "https://api.github.com/users/alltheseas/repos", 6916 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 6917 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 6918 "type": "User", 6919 "site_admin": false 6920 }, 6921 "labels": [ 6922 { 6923 "id": 6271232904, 6924 "node_id": "LA_kwDOKzWMZs8AAAABdctriA", 6925 "url": "https://api.github.com/repos/damus-io/android/labels/zaps", 6926 "name": "zaps", 6927 "color": "fef2c0", 6928 "default": false, 6929 "description": "" 6930 }, 6931 { 6932 "id": 6693750330, 6933 "node_id": "LA_kwDOKzWMZs8AAAABjvqGOg", 6934 "url": "https://api.github.com/repos/damus-io/android/labels/fedimint", 6935 "name": "fedimint", 6936 "color": "630EFE", 6937 "default": false, 6938 "description": "" 6939 } 6940 ], 6941 "state": "open", 6942 "locked": false, 6943 "assignee": { 6944 "login": "kernelkind", 6945 "id": 8139906, 6946 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 6947 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 6948 "gravatar_id": "", 6949 "url": "https://api.github.com/users/kernelkind", 6950 "html_url": "https://github.com/kernelkind", 6951 "followers_url": "https://api.github.com/users/kernelkind/followers", 6952 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 6953 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 6954 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 6955 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 6956 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 6957 "repos_url": "https://api.github.com/users/kernelkind/repos", 6958 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 6959 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 6960 "type": "User", 6961 "site_admin": false 6962 }, 6963 "assignees": [ 6964 { 6965 "login": "kernelkind", 6966 "id": 8139906, 6967 "node_id": "MDQ6VXNlcjgxMzk5MDY=", 6968 "avatar_url": "https://avatars.githubusercontent.com/u/8139906?v=4", 6969 "gravatar_id": "", 6970 "url": "https://api.github.com/users/kernelkind", 6971 "html_url": "https://github.com/kernelkind", 6972 "followers_url": "https://api.github.com/users/kernelkind/followers", 6973 "following_url": "https://api.github.com/users/kernelkind/following{/other_user}", 6974 "gists_url": "https://api.github.com/users/kernelkind/gists{/gist_id}", 6975 "starred_url": "https://api.github.com/users/kernelkind/starred{/owner}{/repo}", 6976 "subscriptions_url": "https://api.github.com/users/kernelkind/subscriptions", 6977 "organizations_url": "https://api.github.com/users/kernelkind/orgs", 6978 "repos_url": "https://api.github.com/users/kernelkind/repos", 6979 "events_url": "https://api.github.com/users/kernelkind/events{/privacy}", 6980 "received_events_url": "https://api.github.com/users/kernelkind/received_events", 6981 "type": "User", 6982 "site_admin": false 6983 } 6984 ], 6985 "milestone": null, 6986 "comments": 2, 6987 "created_at": "2024-03-15T01:42:16Z", 6988 "updated_at": "2024-03-16T08:32:54Z", 6989 "closed_at": null, 6990 "author_association": "CONTRIBUTOR", 6991 "active_lock_reason": null, 6992 "body": "## user story\r\n\r\nAs someone who has just completed onboarding to Damus Android, I want to be able to send zaps & receive zaps, so that I can experience the full experience of nostr immediately.\r\n\r\n### acceptance criteria\r\nImmediately upon onboarding,\r\n1. user automagically has a LN address, and\r\n2. user automagically can receive zaps (sats), and \r\n3. user automagically can send zaps (sats), and\r\n4. user can see balance (in sats)\r\n5. user is notified of zap receipts\r\n6. user has a history of zap sends\r\n7. user has a history of zap receipts\r\n8. one tap zaps are possible\r\n9. user cannot be rugpulled by a single user, or entity\r\n\r\n### implementation details\r\n\r\n1) [Fedimint](https://github.com/fedimint/fedimint) written in Rust, which lends itself to Damus Android\r\n2) [Hermes](https://github.com/Kodylow/hermes) by Kody\r\n3) [NWC](https://nwc.dev/) \r\n\r\n\r\n", 6993 "reactions": { 6994 "url": "https://api.github.com/repos/damus-io/android/issues/59/reactions", 6995 "total_count": 0, 6996 "+1": 0, 6997 "-1": 0, 6998 "laugh": 0, 6999 "hooray": 0, 7000 "confused": 0, 7001 "heart": 0, 7002 "rocket": 0, 7003 "eyes": 0 7004 }, 7005 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/59/timeline", 7006 "performed_via_github_app": null, 7007 "state_reason": null 7008 }, 7009 "comment": { 7010 "user": "jb55", 7011 "created_at": "2024-03-16T08:32:53Z", 7012 "updated_at": "2024-03-16T08:32:53Z", 7013 "body": "\nSuggestion from someone who worked at lightning labs:\n\n> If I may offer my 2 sats worth: having built the reference wallet at Lightning Labs in 2018/2019 and observing other apps in the ecosystem try to tame the self-custodial lightning complexity beast since then... I suspect a wise move might be to integrate a custodial ecash-only wallet in v1. Then add the self-custodial part using LDK in v2. That will allow Damus to ship quickly to compete with Primal’s custodial wallet and offer a security upgrade in v2. I suspect many users will only keep a few pocket sats in their Damus wallet for zaps initially anyway. I do like prospects of self-custody and using this as my primary mobile wallet longterm. After a certain threshold of sats the fedimint wallet could splice into the self-custody LDK wallet and allow Damus users to hold medium sized amounts.\n" 7014 } 7015 }, 7016 { 7017 "issue": { 7018 "url": "https://api.github.com/repos/damus-io/android/issues/58", 7019 "repository_url": "https://api.github.com/repos/damus-io/android", 7020 "labels_url": "https://api.github.com/repos/damus-io/android/issues/58/labels{/name}", 7021 "comments_url": "https://api.github.com/repos/damus-io/android/issues/58/comments", 7022 "events_url": "https://api.github.com/repos/damus-io/android/issues/58/events", 7023 "html_url": "https://github.com/damus-io/android/issues/58", 7024 "id": 2130986448, 7025 "node_id": "I_kwDOKzWMZs5_BEXQ", 7026 "number": 58, 7027 "title": "Crowdwall", 7028 "user": { 7029 "login": "alltheseas", 7030 "id": 64376233, 7031 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 7032 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 7033 "gravatar_id": "", 7034 "url": "https://api.github.com/users/alltheseas", 7035 "html_url": "https://github.com/alltheseas", 7036 "followers_url": "https://api.github.com/users/alltheseas/followers", 7037 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 7038 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 7039 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 7040 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 7041 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 7042 "repos_url": "https://api.github.com/users/alltheseas/repos", 7043 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 7044 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 7045 "type": "User", 7046 "site_admin": false 7047 }, 7048 "labels": [ 7049 { 7050 "id": 6271232904, 7051 "node_id": "LA_kwDOKzWMZs8AAAABdctriA", 7052 "url": "https://api.github.com/repos/damus-io/android/labels/zaps", 7053 "name": "zaps", 7054 "color": "fef2c0", 7055 "default": false, 7056 "description": "" 7057 } 7058 ], 7059 "state": "open", 7060 "locked": false, 7061 "assignee": null, 7062 "assignees": [], 7063 "milestone": null, 7064 "comments": 0, 7065 "created_at": "2024-02-12T21:09:09Z", 7066 "updated_at": "2024-02-12T21:09:09Z", 7067 "closed_at": null, 7068 "author_association": "CONTRIBUTOR", 7069 "active_lock_reason": null, 7070 "body": "## User Story\r\n\r\nAs a Damus user who creates content, I would like to set a crowd paywall that if met unlocks my content for all, so that I can receive sats in exchange for my content.\r\n\r\n### Acceptance Criteria\r\n1. Damus user can select crowdwall when posting a note,\r\n2. Damus user must provide a description of what is behind the crowdwall,\r\n3. If Damus user sets a particular note behind a crowdwall, the note cannot be seen until the crowdwall threshold is met,\r\n4. The crowdwall threshold is clearly displayed (XXX sats).\r\n5. Display % funded [for instance, 50% funded], and\r\n6. The amount gathered is clearly displayed relative to the crowdwall amount (5,000 sats raised, of 10,000 sats target),\r\n7. Any number of users can zap the note any number of times,\r\n8. If the threshold is surpassed, the note is unlocked for every nostr user,\r\n9. Users can choose to to zap the note after a particular note is unlocked,\r\n10. The crowdwall amount of zaps is counted in the note's zap counter at all times.\r\n11. If the threshold is not met after seven (7) days, the sats are returned to their respective senders.\r\n12. Days to go (for instance, 2 days to go) [time remaining calculated from default 7 days] are displayed.\r\n13. Display number of plebs who have zapped (for instance, 5 plebs have zapped towards the crowdwall).\r\n\r\n\r\nhttps://github.com/damus-io/damus/issues/1045", 7071 "reactions": { 7072 "url": "https://api.github.com/repos/damus-io/android/issues/58/reactions", 7073 "total_count": 0, 7074 "+1": 0, 7075 "-1": 0, 7076 "laugh": 0, 7077 "hooray": 0, 7078 "confused": 0, 7079 "heart": 0, 7080 "rocket": 0, 7081 "eyes": 0 7082 }, 7083 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/58/timeline", 7084 "performed_via_github_app": null, 7085 "state_reason": null 7086 } 7087 }, 7088 { 7089 "issue": { 7090 "url": "https://api.github.com/repos/damus-io/android/issues/57", 7091 "repository_url": "https://api.github.com/repos/damus-io/android", 7092 "labels_url": "https://api.github.com/repos/damus-io/android/issues/57/labels{/name}", 7093 "comments_url": "https://api.github.com/repos/damus-io/android/issues/57/comments", 7094 "events_url": "https://api.github.com/repos/damus-io/android/issues/57/events", 7095 "html_url": "https://github.com/damus-io/android/issues/57", 7096 "id": 2128555612, 7097 "node_id": "I_kwDOKzWMZs5-3y5c", 7098 "number": 57, 7099 "title": "Nix environment doesn't work on m1 Mac", 7100 "user": { 7101 "login": "justinmoon", 7102 "id": 4335621, 7103 "node_id": "MDQ6VXNlcjQzMzU2MjE=", 7104 "avatar_url": "https://avatars.githubusercontent.com/u/4335621?v=4", 7105 "gravatar_id": "", 7106 "url": "https://api.github.com/users/justinmoon", 7107 "html_url": "https://github.com/justinmoon", 7108 "followers_url": "https://api.github.com/users/justinmoon/followers", 7109 "following_url": "https://api.github.com/users/justinmoon/following{/other_user}", 7110 "gists_url": "https://api.github.com/users/justinmoon/gists{/gist_id}", 7111 "starred_url": "https://api.github.com/users/justinmoon/starred{/owner}{/repo}", 7112 "subscriptions_url": "https://api.github.com/users/justinmoon/subscriptions", 7113 "organizations_url": "https://api.github.com/users/justinmoon/orgs", 7114 "repos_url": "https://api.github.com/users/justinmoon/repos", 7115 "events_url": "https://api.github.com/users/justinmoon/events{/privacy}", 7116 "received_events_url": "https://api.github.com/users/justinmoon/received_events", 7117 "type": "User", 7118 "site_admin": false 7119 }, 7120 "labels": [ 7121 { 7122 "id": 6339173748, 7123 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 7124 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 7125 "name": "technical", 7126 "color": "e99695", 7127 "default": false, 7128 "description": "" 7129 }, 7130 { 7131 "id": 6693731115, 7132 "node_id": "LA_kwDOKzWMZs8AAAABjvo7Kw", 7133 "url": "https://api.github.com/repos/damus-io/android/labels/MacOS", 7134 "name": "MacOS", 7135 "color": "CE127E", 7136 "default": false, 7137 "description": "" 7138 } 7139 ], 7140 "state": "open", 7141 "locked": false, 7142 "assignee": null, 7143 "assignees": [], 7144 "milestone": null, 7145 "comments": 7, 7146 "created_at": "2024-02-10T15:37:43Z", 7147 "updated_at": "2024-03-15T01:34:35Z", 7148 "closed_at": null, 7149 "author_association": "NONE", 7150 "active_lock_reason": null, 7151 "body": "```\r\n$ env NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-shell\r\nerror:\r\n … while calling the 'derivationStrict' builtin\r\n\r\n at /builtin/derivation.nix:9:12: (source not available)\r\n\r\n … while evaluating derivation 'nix-shell'\r\n whose name attribute is located at /nix/store/syidrpdhd0fzfl7d8zh9z7b3xljhrlcs-nixpkgs/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:352:7\r\n\r\n … while evaluating attribute 'ANDROID_HOME' of derivation 'nix-shell'\r\n\r\n at /Users/justin/code/damus-android/shell.nix:32:3:\r\n\r\n 31| } // (if !use_android then {} else {\r\n 32| ANDROID_HOME = android-home;\r\n | ^\r\n 33| NDK_HOME = ndk-home;\r\n\r\n (stack trace truncated; use '--show-trace' to show the full trace)\r\n\r\n error: No Android SDK tarballs are available for system architecture: aarch64-darwin\r\n```", 7152 "reactions": { 7153 "url": "https://api.github.com/repos/damus-io/android/issues/57/reactions", 7154 "total_count": 0, 7155 "+1": 0, 7156 "-1": 0, 7157 "laugh": 0, 7158 "hooray": 0, 7159 "confused": 0, 7160 "heart": 0, 7161 "rocket": 0, 7162 "eyes": 0 7163 }, 7164 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/57/timeline", 7165 "performed_via_github_app": null, 7166 "state_reason": null 7167 } 7168 }, 7169 { 7170 "issue": { 7171 "url": "https://api.github.com/repos/damus-io/android/issues/57", 7172 "repository_url": "https://api.github.com/repos/damus-io/android", 7173 "labels_url": "https://api.github.com/repos/damus-io/android/issues/57/labels{/name}", 7174 "comments_url": "https://api.github.com/repos/damus-io/android/issues/57/comments", 7175 "events_url": "https://api.github.com/repos/damus-io/android/issues/57/events", 7176 "html_url": "https://github.com/damus-io/android/issues/57", 7177 "id": 2128555612, 7178 "node_id": "I_kwDOKzWMZs5-3y5c", 7179 "number": 57, 7180 "title": "Nix environment doesn't work on m1 Mac", 7181 "user": { 7182 "login": "justinmoon", 7183 "id": 4335621, 7184 "node_id": "MDQ6VXNlcjQzMzU2MjE=", 7185 "avatar_url": "https://avatars.githubusercontent.com/u/4335621?v=4", 7186 "gravatar_id": "", 7187 "url": "https://api.github.com/users/justinmoon", 7188 "html_url": "https://github.com/justinmoon", 7189 "followers_url": "https://api.github.com/users/justinmoon/followers", 7190 "following_url": "https://api.github.com/users/justinmoon/following{/other_user}", 7191 "gists_url": "https://api.github.com/users/justinmoon/gists{/gist_id}", 7192 "starred_url": "https://api.github.com/users/justinmoon/starred{/owner}{/repo}", 7193 "subscriptions_url": "https://api.github.com/users/justinmoon/subscriptions", 7194 "organizations_url": "https://api.github.com/users/justinmoon/orgs", 7195 "repos_url": "https://api.github.com/users/justinmoon/repos", 7196 "events_url": "https://api.github.com/users/justinmoon/events{/privacy}", 7197 "received_events_url": "https://api.github.com/users/justinmoon/received_events", 7198 "type": "User", 7199 "site_admin": false 7200 }, 7201 "labels": [ 7202 { 7203 "id": 6339173748, 7204 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 7205 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 7206 "name": "technical", 7207 "color": "e99695", 7208 "default": false, 7209 "description": "" 7210 }, 7211 { 7212 "id": 6693731115, 7213 "node_id": "LA_kwDOKzWMZs8AAAABjvo7Kw", 7214 "url": "https://api.github.com/repos/damus-io/android/labels/MacOS", 7215 "name": "MacOS", 7216 "color": "CE127E", 7217 "default": false, 7218 "description": "" 7219 } 7220 ], 7221 "state": "open", 7222 "locked": false, 7223 "assignee": null, 7224 "assignees": [], 7225 "milestone": null, 7226 "comments": 7, 7227 "created_at": "2024-02-10T15:37:43Z", 7228 "updated_at": "2024-03-15T01:34:35Z", 7229 "closed_at": null, 7230 "author_association": "NONE", 7231 "active_lock_reason": null, 7232 "body": "```\r\n$ env NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-shell\r\nerror:\r\n … while calling the 'derivationStrict' builtin\r\n\r\n at /builtin/derivation.nix:9:12: (source not available)\r\n\r\n … while evaluating derivation 'nix-shell'\r\n whose name attribute is located at /nix/store/syidrpdhd0fzfl7d8zh9z7b3xljhrlcs-nixpkgs/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:352:7\r\n\r\n … while evaluating attribute 'ANDROID_HOME' of derivation 'nix-shell'\r\n\r\n at /Users/justin/code/damus-android/shell.nix:32:3:\r\n\r\n 31| } // (if !use_android then {} else {\r\n 32| ANDROID_HOME = android-home;\r\n | ^\r\n 33| NDK_HOME = ndk-home;\r\n\r\n (stack trace truncated; use '--show-trace' to show the full trace)\r\n\r\n error: No Android SDK tarballs are available for system architecture: aarch64-darwin\r\n```", 7233 "reactions": { 7234 "url": "https://api.github.com/repos/damus-io/android/issues/57/reactions", 7235 "total_count": 0, 7236 "+1": 0, 7237 "-1": 0, 7238 "laugh": 0, 7239 "hooray": 0, 7240 "confused": 0, 7241 "heart": 0, 7242 "rocket": 0, 7243 "eyes": 0 7244 }, 7245 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/57/timeline", 7246 "performed_via_github_app": null, 7247 "state_reason": null 7248 }, 7249 "comment": { 7250 "user": "jb55", 7251 "created_at": "2024-02-12T18:07:14Z", 7252 "updated_at": "2024-02-12T18:07:14Z", 7253 "body": "I haven't set up macos for android dev yet, I don't think you can use nixpkgs for this on mac?\n\n" 7254 } 7255 }, 7256 { 7257 "issue": { 7258 "url": "https://api.github.com/repos/damus-io/android/issues/57", 7259 "repository_url": "https://api.github.com/repos/damus-io/android", 7260 "labels_url": "https://api.github.com/repos/damus-io/android/issues/57/labels{/name}", 7261 "comments_url": "https://api.github.com/repos/damus-io/android/issues/57/comments", 7262 "events_url": "https://api.github.com/repos/damus-io/android/issues/57/events", 7263 "html_url": "https://github.com/damus-io/android/issues/57", 7264 "id": 2128555612, 7265 "node_id": "I_kwDOKzWMZs5-3y5c", 7266 "number": 57, 7267 "title": "Nix environment doesn't work on m1 Mac", 7268 "user": { 7269 "login": "justinmoon", 7270 "id": 4335621, 7271 "node_id": "MDQ6VXNlcjQzMzU2MjE=", 7272 "avatar_url": "https://avatars.githubusercontent.com/u/4335621?v=4", 7273 "gravatar_id": "", 7274 "url": "https://api.github.com/users/justinmoon", 7275 "html_url": "https://github.com/justinmoon", 7276 "followers_url": "https://api.github.com/users/justinmoon/followers", 7277 "following_url": "https://api.github.com/users/justinmoon/following{/other_user}", 7278 "gists_url": "https://api.github.com/users/justinmoon/gists{/gist_id}", 7279 "starred_url": "https://api.github.com/users/justinmoon/starred{/owner}{/repo}", 7280 "subscriptions_url": "https://api.github.com/users/justinmoon/subscriptions", 7281 "organizations_url": "https://api.github.com/users/justinmoon/orgs", 7282 "repos_url": "https://api.github.com/users/justinmoon/repos", 7283 "events_url": "https://api.github.com/users/justinmoon/events{/privacy}", 7284 "received_events_url": "https://api.github.com/users/justinmoon/received_events", 7285 "type": "User", 7286 "site_admin": false 7287 }, 7288 "labels": [ 7289 { 7290 "id": 6339173748, 7291 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 7292 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 7293 "name": "technical", 7294 "color": "e99695", 7295 "default": false, 7296 "description": "" 7297 }, 7298 { 7299 "id": 6693731115, 7300 "node_id": "LA_kwDOKzWMZs8AAAABjvo7Kw", 7301 "url": "https://api.github.com/repos/damus-io/android/labels/MacOS", 7302 "name": "MacOS", 7303 "color": "CE127E", 7304 "default": false, 7305 "description": "" 7306 } 7307 ], 7308 "state": "open", 7309 "locked": false, 7310 "assignee": null, 7311 "assignees": [], 7312 "milestone": null, 7313 "comments": 7, 7314 "created_at": "2024-02-10T15:37:43Z", 7315 "updated_at": "2024-03-15T01:34:35Z", 7316 "closed_at": null, 7317 "author_association": "NONE", 7318 "active_lock_reason": null, 7319 "body": "```\r\n$ env NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-shell\r\nerror:\r\n … while calling the 'derivationStrict' builtin\r\n\r\n at /builtin/derivation.nix:9:12: (source not available)\r\n\r\n … while evaluating derivation 'nix-shell'\r\n whose name attribute is located at /nix/store/syidrpdhd0fzfl7d8zh9z7b3xljhrlcs-nixpkgs/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:352:7\r\n\r\n … while evaluating attribute 'ANDROID_HOME' of derivation 'nix-shell'\r\n\r\n at /Users/justin/code/damus-android/shell.nix:32:3:\r\n\r\n 31| } // (if !use_android then {} else {\r\n 32| ANDROID_HOME = android-home;\r\n | ^\r\n 33| NDK_HOME = ndk-home;\r\n\r\n (stack trace truncated; use '--show-trace' to show the full trace)\r\n\r\n error: No Android SDK tarballs are available for system architecture: aarch64-darwin\r\n```", 7320 "reactions": { 7321 "url": "https://api.github.com/repos/damus-io/android/issues/57/reactions", 7322 "total_count": 0, 7323 "+1": 0, 7324 "-1": 0, 7325 "laugh": 0, 7326 "hooray": 0, 7327 "confused": 0, 7328 "heart": 0, 7329 "rocket": 0, 7330 "eyes": 0 7331 }, 7332 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/57/timeline", 7333 "performed_via_github_app": null, 7334 "state_reason": null 7335 }, 7336 "comment": { 7337 "user": "justinmoon", 7338 "created_at": "2024-02-15T13:42:36Z", 7339 "updated_at": "2024-02-15T13:42:36Z", 7340 "body": "I have used https://github.com/tadfisher/android-nixpkgs in the past to install android SDK and everything like that via nix on a Mac.\r\n\r\nNot sure if it will be useful or now, but https://github.com/rustshop/flakebox basically extracted Fedimint's cross-compilation setup into a separate project other people can use. It doesn't deal with Android SDK at all, but does do cross-compilation very well. @dpc can answer any questions you have!" 7341 } 7342 }, 7343 { 7344 "issue": { 7345 "url": "https://api.github.com/repos/damus-io/android/issues/57", 7346 "repository_url": "https://api.github.com/repos/damus-io/android", 7347 "labels_url": "https://api.github.com/repos/damus-io/android/issues/57/labels{/name}", 7348 "comments_url": "https://api.github.com/repos/damus-io/android/issues/57/comments", 7349 "events_url": "https://api.github.com/repos/damus-io/android/issues/57/events", 7350 "html_url": "https://github.com/damus-io/android/issues/57", 7351 "id": 2128555612, 7352 "node_id": "I_kwDOKzWMZs5-3y5c", 7353 "number": 57, 7354 "title": "Nix environment doesn't work on m1 Mac", 7355 "user": { 7356 "login": "justinmoon", 7357 "id": 4335621, 7358 "node_id": "MDQ6VXNlcjQzMzU2MjE=", 7359 "avatar_url": "https://avatars.githubusercontent.com/u/4335621?v=4", 7360 "gravatar_id": "", 7361 "url": "https://api.github.com/users/justinmoon", 7362 "html_url": "https://github.com/justinmoon", 7363 "followers_url": "https://api.github.com/users/justinmoon/followers", 7364 "following_url": "https://api.github.com/users/justinmoon/following{/other_user}", 7365 "gists_url": "https://api.github.com/users/justinmoon/gists{/gist_id}", 7366 "starred_url": "https://api.github.com/users/justinmoon/starred{/owner}{/repo}", 7367 "subscriptions_url": "https://api.github.com/users/justinmoon/subscriptions", 7368 "organizations_url": "https://api.github.com/users/justinmoon/orgs", 7369 "repos_url": "https://api.github.com/users/justinmoon/repos", 7370 "events_url": "https://api.github.com/users/justinmoon/events{/privacy}", 7371 "received_events_url": "https://api.github.com/users/justinmoon/received_events", 7372 "type": "User", 7373 "site_admin": false 7374 }, 7375 "labels": [ 7376 { 7377 "id": 6339173748, 7378 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 7379 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 7380 "name": "technical", 7381 "color": "e99695", 7382 "default": false, 7383 "description": "" 7384 }, 7385 { 7386 "id": 6693731115, 7387 "node_id": "LA_kwDOKzWMZs8AAAABjvo7Kw", 7388 "url": "https://api.github.com/repos/damus-io/android/labels/MacOS", 7389 "name": "MacOS", 7390 "color": "CE127E", 7391 "default": false, 7392 "description": "" 7393 } 7394 ], 7395 "state": "open", 7396 "locked": false, 7397 "assignee": null, 7398 "assignees": [], 7399 "milestone": null, 7400 "comments": 7, 7401 "created_at": "2024-02-10T15:37:43Z", 7402 "updated_at": "2024-03-15T01:34:35Z", 7403 "closed_at": null, 7404 "author_association": "NONE", 7405 "active_lock_reason": null, 7406 "body": "```\r\n$ env NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-shell\r\nerror:\r\n … while calling the 'derivationStrict' builtin\r\n\r\n at /builtin/derivation.nix:9:12: (source not available)\r\n\r\n … while evaluating derivation 'nix-shell'\r\n whose name attribute is located at /nix/store/syidrpdhd0fzfl7d8zh9z7b3xljhrlcs-nixpkgs/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:352:7\r\n\r\n … while evaluating attribute 'ANDROID_HOME' of derivation 'nix-shell'\r\n\r\n at /Users/justin/code/damus-android/shell.nix:32:3:\r\n\r\n 31| } // (if !use_android then {} else {\r\n 32| ANDROID_HOME = android-home;\r\n | ^\r\n 33| NDK_HOME = ndk-home;\r\n\r\n (stack trace truncated; use '--show-trace' to show the full trace)\r\n\r\n error: No Android SDK tarballs are available for system architecture: aarch64-darwin\r\n```", 7407 "reactions": { 7408 "url": "https://api.github.com/repos/damus-io/android/issues/57/reactions", 7409 "total_count": 0, 7410 "+1": 0, 7411 "-1": 0, 7412 "laugh": 0, 7413 "hooray": 0, 7414 "confused": 0, 7415 "heart": 0, 7416 "rocket": 0, 7417 "eyes": 0 7418 }, 7419 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/57/timeline", 7420 "performed_via_github_app": null, 7421 "state_reason": null 7422 }, 7423 "comment": { 7424 "user": "dpc", 7425 "created_at": "2024-02-15T16:39:10Z", 7426 "updated_at": "2024-02-15T16:39:17Z", 7427 "body": "> It doesn't deal with Android SDK at all,\r\n\r\nCorrection: It does allow picking and customizing SDK components, AFAIK/AFAIU." 7428 } 7429 }, 7430 { 7431 "issue": { 7432 "url": "https://api.github.com/repos/damus-io/android/issues/57", 7433 "repository_url": "https://api.github.com/repos/damus-io/android", 7434 "labels_url": "https://api.github.com/repos/damus-io/android/issues/57/labels{/name}", 7435 "comments_url": "https://api.github.com/repos/damus-io/android/issues/57/comments", 7436 "events_url": "https://api.github.com/repos/damus-io/android/issues/57/events", 7437 "html_url": "https://github.com/damus-io/android/issues/57", 7438 "id": 2128555612, 7439 "node_id": "I_kwDOKzWMZs5-3y5c", 7440 "number": 57, 7441 "title": "Nix environment doesn't work on m1 Mac", 7442 "user": { 7443 "login": "justinmoon", 7444 "id": 4335621, 7445 "node_id": "MDQ6VXNlcjQzMzU2MjE=", 7446 "avatar_url": "https://avatars.githubusercontent.com/u/4335621?v=4", 7447 "gravatar_id": "", 7448 "url": "https://api.github.com/users/justinmoon", 7449 "html_url": "https://github.com/justinmoon", 7450 "followers_url": "https://api.github.com/users/justinmoon/followers", 7451 "following_url": "https://api.github.com/users/justinmoon/following{/other_user}", 7452 "gists_url": "https://api.github.com/users/justinmoon/gists{/gist_id}", 7453 "starred_url": "https://api.github.com/users/justinmoon/starred{/owner}{/repo}", 7454 "subscriptions_url": "https://api.github.com/users/justinmoon/subscriptions", 7455 "organizations_url": "https://api.github.com/users/justinmoon/orgs", 7456 "repos_url": "https://api.github.com/users/justinmoon/repos", 7457 "events_url": "https://api.github.com/users/justinmoon/events{/privacy}", 7458 "received_events_url": "https://api.github.com/users/justinmoon/received_events", 7459 "type": "User", 7460 "site_admin": false 7461 }, 7462 "labels": [ 7463 { 7464 "id": 6339173748, 7465 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 7466 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 7467 "name": "technical", 7468 "color": "e99695", 7469 "default": false, 7470 "description": "" 7471 }, 7472 { 7473 "id": 6693731115, 7474 "node_id": "LA_kwDOKzWMZs8AAAABjvo7Kw", 7475 "url": "https://api.github.com/repos/damus-io/android/labels/MacOS", 7476 "name": "MacOS", 7477 "color": "CE127E", 7478 "default": false, 7479 "description": "" 7480 } 7481 ], 7482 "state": "open", 7483 "locked": false, 7484 "assignee": null, 7485 "assignees": [], 7486 "milestone": null, 7487 "comments": 7, 7488 "created_at": "2024-02-10T15:37:43Z", 7489 "updated_at": "2024-03-15T01:34:35Z", 7490 "closed_at": null, 7491 "author_association": "NONE", 7492 "active_lock_reason": null, 7493 "body": "```\r\n$ env NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-shell\r\nerror:\r\n … while calling the 'derivationStrict' builtin\r\n\r\n at /builtin/derivation.nix:9:12: (source not available)\r\n\r\n … while evaluating derivation 'nix-shell'\r\n whose name attribute is located at /nix/store/syidrpdhd0fzfl7d8zh9z7b3xljhrlcs-nixpkgs/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:352:7\r\n\r\n … while evaluating attribute 'ANDROID_HOME' of derivation 'nix-shell'\r\n\r\n at /Users/justin/code/damus-android/shell.nix:32:3:\r\n\r\n 31| } // (if !use_android then {} else {\r\n 32| ANDROID_HOME = android-home;\r\n | ^\r\n 33| NDK_HOME = ndk-home;\r\n\r\n (stack trace truncated; use '--show-trace' to show the full trace)\r\n\r\n error: No Android SDK tarballs are available for system architecture: aarch64-darwin\r\n```", 7494 "reactions": { 7495 "url": "https://api.github.com/repos/damus-io/android/issues/57/reactions", 7496 "total_count": 0, 7497 "+1": 0, 7498 "-1": 0, 7499 "laugh": 0, 7500 "hooray": 0, 7501 "confused": 0, 7502 "heart": 0, 7503 "rocket": 0, 7504 "eyes": 0 7505 }, 7506 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/57/timeline", 7507 "performed_via_github_app": null, 7508 "state_reason": null 7509 }, 7510 "comment": { 7511 "user": "jb55", 7512 "created_at": "2024-02-15T17:30:40Z", 7513 "updated_at": "2024-02-15T17:30:40Z", 7514 "body": "On Thu, Feb 15, 2024 at 05:42:48AM -0800, Justin Moon wrote:\n>I have used https://github.com/tadfisher/android-nixpkgs in the past to install android SDK and everything like that via nix on a Mac.\n\nnice, someone should update our scripts to use this.\n\n>Not sure if it will be useful or now, but\n>https://github.com/rustshop/flakebox basically extracted Fedimint's\n>cross-compilation setup into a separate project other people can use.\n>It doesn't deal with Android SDK at all, but does do cross-compilation\n>very well. @dpc can answer any questions you have!\n\nrust handles everything cross-compilation wise, what's the point of this?\n" 7515 } 7516 }, 7517 { 7518 "issue": { 7519 "url": "https://api.github.com/repos/damus-io/android/issues/57", 7520 "repository_url": "https://api.github.com/repos/damus-io/android", 7521 "labels_url": "https://api.github.com/repos/damus-io/android/issues/57/labels{/name}", 7522 "comments_url": "https://api.github.com/repos/damus-io/android/issues/57/comments", 7523 "events_url": "https://api.github.com/repos/damus-io/android/issues/57/events", 7524 "html_url": "https://github.com/damus-io/android/issues/57", 7525 "id": 2128555612, 7526 "node_id": "I_kwDOKzWMZs5-3y5c", 7527 "number": 57, 7528 "title": "Nix environment doesn't work on m1 Mac", 7529 "user": { 7530 "login": "justinmoon", 7531 "id": 4335621, 7532 "node_id": "MDQ6VXNlcjQzMzU2MjE=", 7533 "avatar_url": "https://avatars.githubusercontent.com/u/4335621?v=4", 7534 "gravatar_id": "", 7535 "url": "https://api.github.com/users/justinmoon", 7536 "html_url": "https://github.com/justinmoon", 7537 "followers_url": "https://api.github.com/users/justinmoon/followers", 7538 "following_url": "https://api.github.com/users/justinmoon/following{/other_user}", 7539 "gists_url": "https://api.github.com/users/justinmoon/gists{/gist_id}", 7540 "starred_url": "https://api.github.com/users/justinmoon/starred{/owner}{/repo}", 7541 "subscriptions_url": "https://api.github.com/users/justinmoon/subscriptions", 7542 "organizations_url": "https://api.github.com/users/justinmoon/orgs", 7543 "repos_url": "https://api.github.com/users/justinmoon/repos", 7544 "events_url": "https://api.github.com/users/justinmoon/events{/privacy}", 7545 "received_events_url": "https://api.github.com/users/justinmoon/received_events", 7546 "type": "User", 7547 "site_admin": false 7548 }, 7549 "labels": [ 7550 { 7551 "id": 6339173748, 7552 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 7553 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 7554 "name": "technical", 7555 "color": "e99695", 7556 "default": false, 7557 "description": "" 7558 }, 7559 { 7560 "id": 6693731115, 7561 "node_id": "LA_kwDOKzWMZs8AAAABjvo7Kw", 7562 "url": "https://api.github.com/repos/damus-io/android/labels/MacOS", 7563 "name": "MacOS", 7564 "color": "CE127E", 7565 "default": false, 7566 "description": "" 7567 } 7568 ], 7569 "state": "open", 7570 "locked": false, 7571 "assignee": null, 7572 "assignees": [], 7573 "milestone": null, 7574 "comments": 7, 7575 "created_at": "2024-02-10T15:37:43Z", 7576 "updated_at": "2024-03-15T01:34:35Z", 7577 "closed_at": null, 7578 "author_association": "NONE", 7579 "active_lock_reason": null, 7580 "body": "```\r\n$ env NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-shell\r\nerror:\r\n … while calling the 'derivationStrict' builtin\r\n\r\n at /builtin/derivation.nix:9:12: (source not available)\r\n\r\n … while evaluating derivation 'nix-shell'\r\n whose name attribute is located at /nix/store/syidrpdhd0fzfl7d8zh9z7b3xljhrlcs-nixpkgs/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:352:7\r\n\r\n … while evaluating attribute 'ANDROID_HOME' of derivation 'nix-shell'\r\n\r\n at /Users/justin/code/damus-android/shell.nix:32:3:\r\n\r\n 31| } // (if !use_android then {} else {\r\n 32| ANDROID_HOME = android-home;\r\n | ^\r\n 33| NDK_HOME = ndk-home;\r\n\r\n (stack trace truncated; use '--show-trace' to show the full trace)\r\n\r\n error: No Android SDK tarballs are available for system architecture: aarch64-darwin\r\n```", 7581 "reactions": { 7582 "url": "https://api.github.com/repos/damus-io/android/issues/57/reactions", 7583 "total_count": 0, 7584 "+1": 0, 7585 "-1": 0, 7586 "laugh": 0, 7587 "hooray": 0, 7588 "confused": 0, 7589 "heart": 0, 7590 "rocket": 0, 7591 "eyes": 0 7592 }, 7593 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/57/timeline", 7594 "performed_via_github_app": null, 7595 "state_reason": null 7596 }, 7597 "comment": { 7598 "user": "dpc", 7599 "created_at": "2024-02-15T17:34:50Z", 7600 "updated_at": "2024-02-15T17:34:50Z", 7601 "body": "> rust handles everything cross-compilation wise, what's the point of this?\r\n\r\nC / C++ dependencies is the biggest reason." 7602 } 7603 }, 7604 { 7605 "issue": { 7606 "url": "https://api.github.com/repos/damus-io/android/issues/57", 7607 "repository_url": "https://api.github.com/repos/damus-io/android", 7608 "labels_url": "https://api.github.com/repos/damus-io/android/issues/57/labels{/name}", 7609 "comments_url": "https://api.github.com/repos/damus-io/android/issues/57/comments", 7610 "events_url": "https://api.github.com/repos/damus-io/android/issues/57/events", 7611 "html_url": "https://github.com/damus-io/android/issues/57", 7612 "id": 2128555612, 7613 "node_id": "I_kwDOKzWMZs5-3y5c", 7614 "number": 57, 7615 "title": "Nix environment doesn't work on m1 Mac", 7616 "user": { 7617 "login": "justinmoon", 7618 "id": 4335621, 7619 "node_id": "MDQ6VXNlcjQzMzU2MjE=", 7620 "avatar_url": "https://avatars.githubusercontent.com/u/4335621?v=4", 7621 "gravatar_id": "", 7622 "url": "https://api.github.com/users/justinmoon", 7623 "html_url": "https://github.com/justinmoon", 7624 "followers_url": "https://api.github.com/users/justinmoon/followers", 7625 "following_url": "https://api.github.com/users/justinmoon/following{/other_user}", 7626 "gists_url": "https://api.github.com/users/justinmoon/gists{/gist_id}", 7627 "starred_url": "https://api.github.com/users/justinmoon/starred{/owner}{/repo}", 7628 "subscriptions_url": "https://api.github.com/users/justinmoon/subscriptions", 7629 "organizations_url": "https://api.github.com/users/justinmoon/orgs", 7630 "repos_url": "https://api.github.com/users/justinmoon/repos", 7631 "events_url": "https://api.github.com/users/justinmoon/events{/privacy}", 7632 "received_events_url": "https://api.github.com/users/justinmoon/received_events", 7633 "type": "User", 7634 "site_admin": false 7635 }, 7636 "labels": [ 7637 { 7638 "id": 6339173748, 7639 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 7640 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 7641 "name": "technical", 7642 "color": "e99695", 7643 "default": false, 7644 "description": "" 7645 }, 7646 { 7647 "id": 6693731115, 7648 "node_id": "LA_kwDOKzWMZs8AAAABjvo7Kw", 7649 "url": "https://api.github.com/repos/damus-io/android/labels/MacOS", 7650 "name": "MacOS", 7651 "color": "CE127E", 7652 "default": false, 7653 "description": "" 7654 } 7655 ], 7656 "state": "open", 7657 "locked": false, 7658 "assignee": null, 7659 "assignees": [], 7660 "milestone": null, 7661 "comments": 7, 7662 "created_at": "2024-02-10T15:37:43Z", 7663 "updated_at": "2024-03-15T01:34:35Z", 7664 "closed_at": null, 7665 "author_association": "NONE", 7666 "active_lock_reason": null, 7667 "body": "```\r\n$ env NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-shell\r\nerror:\r\n … while calling the 'derivationStrict' builtin\r\n\r\n at /builtin/derivation.nix:9:12: (source not available)\r\n\r\n … while evaluating derivation 'nix-shell'\r\n whose name attribute is located at /nix/store/syidrpdhd0fzfl7d8zh9z7b3xljhrlcs-nixpkgs/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:352:7\r\n\r\n … while evaluating attribute 'ANDROID_HOME' of derivation 'nix-shell'\r\n\r\n at /Users/justin/code/damus-android/shell.nix:32:3:\r\n\r\n 31| } // (if !use_android then {} else {\r\n 32| ANDROID_HOME = android-home;\r\n | ^\r\n 33| NDK_HOME = ndk-home;\r\n\r\n (stack trace truncated; use '--show-trace' to show the full trace)\r\n\r\n error: No Android SDK tarballs are available for system architecture: aarch64-darwin\r\n```", 7668 "reactions": { 7669 "url": "https://api.github.com/repos/damus-io/android/issues/57/reactions", 7670 "total_count": 0, 7671 "+1": 0, 7672 "-1": 0, 7673 "laugh": 0, 7674 "hooray": 0, 7675 "confused": 0, 7676 "heart": 0, 7677 "rocket": 0, 7678 "eyes": 0 7679 }, 7680 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/57/timeline", 7681 "performed_via_github_app": null, 7682 "state_reason": null 7683 }, 7684 "comment": { 7685 "user": "jb55", 7686 "created_at": "2024-02-15T17:55:31Z", 7687 "updated_at": "2024-02-15T17:55:31Z", 7688 "body": "doesn't build.rs handle cross compliation? at least thats how I do it with secp and nostrdb" 7689 } 7690 }, 7691 { 7692 "issue": { 7693 "url": "https://api.github.com/repos/damus-io/android/issues/57", 7694 "repository_url": "https://api.github.com/repos/damus-io/android", 7695 "labels_url": "https://api.github.com/repos/damus-io/android/issues/57/labels{/name}", 7696 "comments_url": "https://api.github.com/repos/damus-io/android/issues/57/comments", 7697 "events_url": "https://api.github.com/repos/damus-io/android/issues/57/events", 7698 "html_url": "https://github.com/damus-io/android/issues/57", 7699 "id": 2128555612, 7700 "node_id": "I_kwDOKzWMZs5-3y5c", 7701 "number": 57, 7702 "title": "Nix environment doesn't work on m1 Mac", 7703 "user": { 7704 "login": "justinmoon", 7705 "id": 4335621, 7706 "node_id": "MDQ6VXNlcjQzMzU2MjE=", 7707 "avatar_url": "https://avatars.githubusercontent.com/u/4335621?v=4", 7708 "gravatar_id": "", 7709 "url": "https://api.github.com/users/justinmoon", 7710 "html_url": "https://github.com/justinmoon", 7711 "followers_url": "https://api.github.com/users/justinmoon/followers", 7712 "following_url": "https://api.github.com/users/justinmoon/following{/other_user}", 7713 "gists_url": "https://api.github.com/users/justinmoon/gists{/gist_id}", 7714 "starred_url": "https://api.github.com/users/justinmoon/starred{/owner}{/repo}", 7715 "subscriptions_url": "https://api.github.com/users/justinmoon/subscriptions", 7716 "organizations_url": "https://api.github.com/users/justinmoon/orgs", 7717 "repos_url": "https://api.github.com/users/justinmoon/repos", 7718 "events_url": "https://api.github.com/users/justinmoon/events{/privacy}", 7719 "received_events_url": "https://api.github.com/users/justinmoon/received_events", 7720 "type": "User", 7721 "site_admin": false 7722 }, 7723 "labels": [ 7724 { 7725 "id": 6339173748, 7726 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 7727 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 7728 "name": "technical", 7729 "color": "e99695", 7730 "default": false, 7731 "description": "" 7732 }, 7733 { 7734 "id": 6693731115, 7735 "node_id": "LA_kwDOKzWMZs8AAAABjvo7Kw", 7736 "url": "https://api.github.com/repos/damus-io/android/labels/MacOS", 7737 "name": "MacOS", 7738 "color": "CE127E", 7739 "default": false, 7740 "description": "" 7741 } 7742 ], 7743 "state": "open", 7744 "locked": false, 7745 "assignee": null, 7746 "assignees": [], 7747 "milestone": null, 7748 "comments": 7, 7749 "created_at": "2024-02-10T15:37:43Z", 7750 "updated_at": "2024-03-15T01:34:35Z", 7751 "closed_at": null, 7752 "author_association": "NONE", 7753 "active_lock_reason": null, 7754 "body": "```\r\n$ env NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 nix-shell\r\nerror:\r\n … while calling the 'derivationStrict' builtin\r\n\r\n at /builtin/derivation.nix:9:12: (source not available)\r\n\r\n … while evaluating derivation 'nix-shell'\r\n whose name attribute is located at /nix/store/syidrpdhd0fzfl7d8zh9z7b3xljhrlcs-nixpkgs/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:352:7\r\n\r\n … while evaluating attribute 'ANDROID_HOME' of derivation 'nix-shell'\r\n\r\n at /Users/justin/code/damus-android/shell.nix:32:3:\r\n\r\n 31| } // (if !use_android then {} else {\r\n 32| ANDROID_HOME = android-home;\r\n | ^\r\n 33| NDK_HOME = ndk-home;\r\n\r\n (stack trace truncated; use '--show-trace' to show the full trace)\r\n\r\n error: No Android SDK tarballs are available for system architecture: aarch64-darwin\r\n```", 7755 "reactions": { 7756 "url": "https://api.github.com/repos/damus-io/android/issues/57/reactions", 7757 "total_count": 0, 7758 "+1": 0, 7759 "-1": 0, 7760 "laugh": 0, 7761 "hooray": 0, 7762 "confused": 0, 7763 "heart": 0, 7764 "rocket": 0, 7765 "eyes": 0 7766 }, 7767 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/57/timeline", 7768 "performed_via_github_app": null, 7769 "state_reason": null 7770 }, 7771 "comment": { 7772 "user": "dpc", 7773 "created_at": "2024-02-15T18:06:12Z", 7774 "updated_at": "2024-02-15T18:06:12Z", 7775 "body": "It relies on availability of cross-compiler toolchain, sometimes also already cross-compiled libraries. Flakebox basically brings them in using Nix, pinned to specific versions, and sets up all env variables so it all works smoothly. Plus some other things that are optional." 7776 } 7777 }, 7778 { 7779 "issue": { 7780 "url": "https://api.github.com/repos/damus-io/android/issues/56", 7781 "repository_url": "https://api.github.com/repos/damus-io/android", 7782 "labels_url": "https://api.github.com/repos/damus-io/android/issues/56/labels{/name}", 7783 "comments_url": "https://api.github.com/repos/damus-io/android/issues/56/comments", 7784 "events_url": "https://api.github.com/repos/damus-io/android/issues/56/events", 7785 "html_url": "https://github.com/damus-io/android/issues/56", 7786 "id": 2123766418, 7787 "node_id": "I_kwDOKzWMZs5-lhqS", 7788 "number": 56, 7789 "title": "Android damus.io/purple support", 7790 "user": { 7791 "login": "alltheseas", 7792 "id": 64376233, 7793 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 7794 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 7795 "gravatar_id": "", 7796 "url": "https://api.github.com/users/alltheseas", 7797 "html_url": "https://github.com/alltheseas", 7798 "followers_url": "https://api.github.com/users/alltheseas/followers", 7799 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 7800 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 7801 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 7802 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 7803 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 7804 "repos_url": "https://api.github.com/users/alltheseas/repos", 7805 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 7806 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 7807 "type": "User", 7808 "site_admin": false 7809 }, 7810 "labels": [ 7811 { 7812 "id": 6530754378, 7813 "node_id": "LA_kwDOKzWMZs8AAAABhUNnSg", 7814 "url": "https://api.github.com/repos/damus-io/android/labels/purple", 7815 "name": "purple", 7816 "color": "5319E7", 7817 "default": false, 7818 "description": "" 7819 } 7820 ], 7821 "state": "open", 7822 "locked": false, 7823 "assignee": null, 7824 "assignees": [], 7825 "milestone": null, 7826 "comments": 0, 7827 "created_at": "2024-02-07T19:55:49Z", 7828 "updated_at": "2024-02-07T19:59:20Z", 7829 "closed_at": null, 7830 "author_association": "CONTRIBUTOR", 7831 "active_lock_reason": null, 7832 "body": "Add support for Damus.io/purple for Android devices\r\n\r\nIf Damus user is subscribed to Purple, do they get purple on all devices - android, iOS etc?", 7833 "reactions": { 7834 "url": "https://api.github.com/repos/damus-io/android/issues/56/reactions", 7835 "total_count": 0, 7836 "+1": 0, 7837 "-1": 0, 7838 "laugh": 0, 7839 "hooray": 0, 7840 "confused": 0, 7841 "heart": 0, 7842 "rocket": 0, 7843 "eyes": 0 7844 }, 7845 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/56/timeline", 7846 "performed_via_github_app": null, 7847 "state_reason": null 7848 } 7849 }, 7850 { 7851 "issue": { 7852 "url": "https://api.github.com/repos/damus-io/android/issues/55", 7853 "repository_url": "https://api.github.com/repos/damus-io/android", 7854 "labels_url": "https://api.github.com/repos/damus-io/android/issues/55/labels{/name}", 7855 "comments_url": "https://api.github.com/repos/damus-io/android/issues/55/comments", 7856 "events_url": "https://api.github.com/repos/damus-io/android/issues/55/events", 7857 "html_url": "https://github.com/damus-io/android/issues/55", 7858 "id": 2110691048, 7859 "node_id": "I_kwDOKzWMZs59zpbo", 7860 "number": 55, 7861 "title": "Damus purple Android: In App Purchase", 7862 "user": { 7863 "login": "alltheseas", 7864 "id": 64376233, 7865 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 7866 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 7867 "gravatar_id": "", 7868 "url": "https://api.github.com/users/alltheseas", 7869 "html_url": "https://github.com/alltheseas", 7870 "followers_url": "https://api.github.com/users/alltheseas/followers", 7871 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 7872 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 7873 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 7874 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 7875 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 7876 "repos_url": "https://api.github.com/users/alltheseas/repos", 7877 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 7878 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 7879 "type": "User", 7880 "site_admin": false 7881 }, 7882 "labels": [ 7883 { 7884 "id": 6271233688, 7885 "node_id": "LA_kwDOKzWMZs8AAAABdctumA", 7886 "url": "https://api.github.com/repos/damus-io/android/labels/commercialization", 7887 "name": "commercialization", 7888 "color": "DDD29F", 7889 "default": false, 7890 "description": "" 7891 }, 7892 { 7893 "id": 6530754378, 7894 "node_id": "LA_kwDOKzWMZs8AAAABhUNnSg", 7895 "url": "https://api.github.com/repos/damus-io/android/labels/purple", 7896 "name": "purple", 7897 "color": "5319E7", 7898 "default": false, 7899 "description": "" 7900 }, 7901 { 7902 "id": 6774995244, 7903 "node_id": "LA_kwDOKzWMZs8AAAABk9I5LA", 7904 "url": "https://api.github.com/repos/damus-io/android/labels/localization", 7905 "name": "localization", 7906 "color": "0F8978", 7907 "default": false, 7908 "description": "" 7909 } 7910 ], 7911 "state": "open", 7912 "locked": false, 7913 "assignee": null, 7914 "assignees": [], 7915 "milestone": null, 7916 "comments": 2, 7917 "created_at": "2024-01-31T18:13:35Z", 7918 "updated_at": "2024-04-03T05:44:23Z", 7919 "closed_at": null, 7920 "author_association": "CONTRIBUTOR", 7921 "active_lock_reason": null, 7922 "body": "## user story\r\n\r\nAs a Damus Android user, I would like to be able to subscribe to Damus purple in app, so that I can show my support for the dev team.\r\n\r\n### acceptance criteria\r\n\r\n1. User can see a method to subscribe to Damus Purple\r\n2. Damus purple cost is displayed per month, and per year (with annual discount)\r\n3. User can pay via LN in sats\r\n4. There is a method to manage the subscription - i.e. see details like time remaining, and subscriber number \r\n5. Damus purple subscriber gets a ⭐ in their profile to signify their support\r\nhttps://damus.io/nevent1qqsvx0algkvd7dg4qmwq8z69gl2men0y2e40mmrk53tg9q6nr20hygc0nd27l\r\n6. Active damus purple subscriber receives all purple benefits (DeepL translator etc)", 7923 "reactions": { 7924 "url": "https://api.github.com/repos/damus-io/android/issues/55/reactions", 7925 "total_count": 0, 7926 "+1": 0, 7927 "-1": 0, 7928 "laugh": 0, 7929 "hooray": 0, 7930 "confused": 0, 7931 "heart": 0, 7932 "rocket": 0, 7933 "eyes": 0 7934 }, 7935 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/55/timeline", 7936 "performed_via_github_app": null, 7937 "state_reason": null 7938 } 7939 }, 7940 { 7941 "issue": { 7942 "url": "https://api.github.com/repos/damus-io/android/issues/55", 7943 "repository_url": "https://api.github.com/repos/damus-io/android", 7944 "labels_url": "https://api.github.com/repos/damus-io/android/issues/55/labels{/name}", 7945 "comments_url": "https://api.github.com/repos/damus-io/android/issues/55/comments", 7946 "events_url": "https://api.github.com/repos/damus-io/android/issues/55/events", 7947 "html_url": "https://github.com/damus-io/android/issues/55", 7948 "id": 2110691048, 7949 "node_id": "I_kwDOKzWMZs59zpbo", 7950 "number": 55, 7951 "title": "Damus purple Android: In App Purchase", 7952 "user": { 7953 "login": "alltheseas", 7954 "id": 64376233, 7955 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 7956 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 7957 "gravatar_id": "", 7958 "url": "https://api.github.com/users/alltheseas", 7959 "html_url": "https://github.com/alltheseas", 7960 "followers_url": "https://api.github.com/users/alltheseas/followers", 7961 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 7962 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 7963 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 7964 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 7965 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 7966 "repos_url": "https://api.github.com/users/alltheseas/repos", 7967 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 7968 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 7969 "type": "User", 7970 "site_admin": false 7971 }, 7972 "labels": [ 7973 { 7974 "id": 6271233688, 7975 "node_id": "LA_kwDOKzWMZs8AAAABdctumA", 7976 "url": "https://api.github.com/repos/damus-io/android/labels/commercialization", 7977 "name": "commercialization", 7978 "color": "DDD29F", 7979 "default": false, 7980 "description": "" 7981 }, 7982 { 7983 "id": 6530754378, 7984 "node_id": "LA_kwDOKzWMZs8AAAABhUNnSg", 7985 "url": "https://api.github.com/repos/damus-io/android/labels/purple", 7986 "name": "purple", 7987 "color": "5319E7", 7988 "default": false, 7989 "description": "" 7990 }, 7991 { 7992 "id": 6774995244, 7993 "node_id": "LA_kwDOKzWMZs8AAAABk9I5LA", 7994 "url": "https://api.github.com/repos/damus-io/android/labels/localization", 7995 "name": "localization", 7996 "color": "0F8978", 7997 "default": false, 7998 "description": "" 7999 } 8000 ], 8001 "state": "open", 8002 "locked": false, 8003 "assignee": null, 8004 "assignees": [], 8005 "milestone": null, 8006 "comments": 2, 8007 "created_at": "2024-01-31T18:13:35Z", 8008 "updated_at": "2024-04-03T05:44:23Z", 8009 "closed_at": null, 8010 "author_association": "CONTRIBUTOR", 8011 "active_lock_reason": null, 8012 "body": "## user story\r\n\r\nAs a Damus Android user, I would like to be able to subscribe to Damus purple in app, so that I can show my support for the dev team.\r\n\r\n### acceptance criteria\r\n\r\n1. User can see a method to subscribe to Damus Purple\r\n2. Damus purple cost is displayed per month, and per year (with annual discount)\r\n3. User can pay via LN in sats\r\n4. There is a method to manage the subscription - i.e. see details like time remaining, and subscriber number \r\n5. Damus purple subscriber gets a ⭐ in their profile to signify their support\r\nhttps://damus.io/nevent1qqsvx0algkvd7dg4qmwq8z69gl2men0y2e40mmrk53tg9q6nr20hygc0nd27l\r\n6. Active damus purple subscriber receives all purple benefits (DeepL translator etc)", 8013 "reactions": { 8014 "url": "https://api.github.com/repos/damus-io/android/issues/55/reactions", 8015 "total_count": 0, 8016 "+1": 0, 8017 "-1": 0, 8018 "laugh": 0, 8019 "hooray": 0, 8020 "confused": 0, 8021 "heart": 0, 8022 "rocket": 0, 8023 "eyes": 0 8024 }, 8025 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/55/timeline", 8026 "performed_via_github_app": null, 8027 "state_reason": null 8028 }, 8029 "comment": { 8030 "user": "alltheseas", 8031 "created_at": "2024-01-31T18:27:08Z", 8032 "updated_at": "2024-01-31T18:27:08Z", 8033 "body": "![image](https://github.com/damus-io/android/assets/64376233/5abd7e29-101c-43f5-96d6-64e7b16e912b)\n\nhttps://damus.io/nevent1qqswg9ds8mg2sr09xd5uxvjd9jp2pl7rq3a8hdajt0ql9qr4fj4scwcpr9mhxue69uhhyetvv9ujumn0wd68ycmgv43kktndv5q3kamnwvaz7tmjv4kxz7fwdehhxarjwpkx2cnn9e3k7mf0qyt8wumn8ghj7unnwdkxz7fwdehhxarj9ekk7egpzemhxue69uhky6t5vdhkjmn9wgh8xmmrd9skc9grz7k" 8034 } 8035 }, 8036 { 8037 "issue": { 8038 "url": "https://api.github.com/repos/damus-io/android/issues/55", 8039 "repository_url": "https://api.github.com/repos/damus-io/android", 8040 "labels_url": "https://api.github.com/repos/damus-io/android/issues/55/labels{/name}", 8041 "comments_url": "https://api.github.com/repos/damus-io/android/issues/55/comments", 8042 "events_url": "https://api.github.com/repos/damus-io/android/issues/55/events", 8043 "html_url": "https://github.com/damus-io/android/issues/55", 8044 "id": 2110691048, 8045 "node_id": "I_kwDOKzWMZs59zpbo", 8046 "number": 55, 8047 "title": "Damus purple Android: In App Purchase", 8048 "user": { 8049 "login": "alltheseas", 8050 "id": 64376233, 8051 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 8052 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 8053 "gravatar_id": "", 8054 "url": "https://api.github.com/users/alltheseas", 8055 "html_url": "https://github.com/alltheseas", 8056 "followers_url": "https://api.github.com/users/alltheseas/followers", 8057 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 8058 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 8059 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 8060 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 8061 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 8062 "repos_url": "https://api.github.com/users/alltheseas/repos", 8063 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 8064 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 8065 "type": "User", 8066 "site_admin": false 8067 }, 8068 "labels": [ 8069 { 8070 "id": 6271233688, 8071 "node_id": "LA_kwDOKzWMZs8AAAABdctumA", 8072 "url": "https://api.github.com/repos/damus-io/android/labels/commercialization", 8073 "name": "commercialization", 8074 "color": "DDD29F", 8075 "default": false, 8076 "description": "" 8077 }, 8078 { 8079 "id": 6530754378, 8080 "node_id": "LA_kwDOKzWMZs8AAAABhUNnSg", 8081 "url": "https://api.github.com/repos/damus-io/android/labels/purple", 8082 "name": "purple", 8083 "color": "5319E7", 8084 "default": false, 8085 "description": "" 8086 }, 8087 { 8088 "id": 6774995244, 8089 "node_id": "LA_kwDOKzWMZs8AAAABk9I5LA", 8090 "url": "https://api.github.com/repos/damus-io/android/labels/localization", 8091 "name": "localization", 8092 "color": "0F8978", 8093 "default": false, 8094 "description": "" 8095 } 8096 ], 8097 "state": "open", 8098 "locked": false, 8099 "assignee": null, 8100 "assignees": [], 8101 "milestone": null, 8102 "comments": 2, 8103 "created_at": "2024-01-31T18:13:35Z", 8104 "updated_at": "2024-04-03T05:44:23Z", 8105 "closed_at": null, 8106 "author_association": "CONTRIBUTOR", 8107 "active_lock_reason": null, 8108 "body": "## user story\r\n\r\nAs a Damus Android user, I would like to be able to subscribe to Damus purple in app, so that I can show my support for the dev team.\r\n\r\n### acceptance criteria\r\n\r\n1. User can see a method to subscribe to Damus Purple\r\n2. Damus purple cost is displayed per month, and per year (with annual discount)\r\n3. User can pay via LN in sats\r\n4. There is a method to manage the subscription - i.e. see details like time remaining, and subscriber number \r\n5. Damus purple subscriber gets a ⭐ in their profile to signify their support\r\nhttps://damus.io/nevent1qqsvx0algkvd7dg4qmwq8z69gl2men0y2e40mmrk53tg9q6nr20hygc0nd27l\r\n6. Active damus purple subscriber receives all purple benefits (DeepL translator etc)", 8109 "reactions": { 8110 "url": "https://api.github.com/repos/damus-io/android/issues/55/reactions", 8111 "total_count": 0, 8112 "+1": 0, 8113 "-1": 0, 8114 "laugh": 0, 8115 "hooray": 0, 8116 "confused": 0, 8117 "heart": 0, 8118 "rocket": 0, 8119 "eyes": 0 8120 }, 8121 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/55/timeline", 8122 "performed_via_github_app": null, 8123 "state_reason": null 8124 }, 8125 "comment": { 8126 "user": "alltheseas", 8127 "created_at": "2024-02-07T19:58:48Z", 8128 "updated_at": "2024-02-07T19:58:48Z", 8129 "body": "### related\r\n\r\ndamus.io/purple web purchase https://github.com/damus-io/android/issues/56" 8130 } 8131 }, 8132 { 8133 "issue": { 8134 "url": "https://api.github.com/repos/damus-io/android/issues/54", 8135 "repository_url": "https://api.github.com/repos/damus-io/android", 8136 "labels_url": "https://api.github.com/repos/damus-io/android/issues/54/labels{/name}", 8137 "comments_url": "https://api.github.com/repos/damus-io/android/issues/54/comments", 8138 "events_url": "https://api.github.com/repos/damus-io/android/issues/54/events", 8139 "html_url": "https://github.com/damus-io/android/issues/54", 8140 "id": 2061817787, 8141 "node_id": "I_kwDOKzWMZs565Ne7", 8142 "number": 54, 8143 "title": "Amber signer support", 8144 "user": { 8145 "login": "alltheseas", 8146 "id": 64376233, 8147 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 8148 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 8149 "gravatar_id": "", 8150 "url": "https://api.github.com/users/alltheseas", 8151 "html_url": "https://github.com/alltheseas", 8152 "followers_url": "https://api.github.com/users/alltheseas/followers", 8153 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 8154 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 8155 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 8156 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 8157 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 8158 "repos_url": "https://api.github.com/users/alltheseas/repos", 8159 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 8160 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 8161 "type": "User", 8162 "site_admin": false 8163 }, 8164 "labels": [ 8165 { 8166 "id": 6264778307, 8167 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 8168 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 8169 "name": "enhancement", 8170 "color": "a2eeef", 8171 "default": true, 8172 "description": "New feature or request" 8173 } 8174 ], 8175 "state": "open", 8176 "locked": false, 8177 "assignee": null, 8178 "assignees": [], 8179 "milestone": null, 8180 "comments": 2, 8181 "created_at": "2024-01-01T23:02:03Z", 8182 "updated_at": "2024-03-16T08:30:12Z", 8183 "closed_at": null, 8184 "author_association": "CONTRIBUTOR", 8185 "active_lock_reason": null, 8186 "body": "https://github.com/greenart7c3/Amber", 8187 "reactions": { 8188 "url": "https://api.github.com/repos/damus-io/android/issues/54/reactions", 8189 "total_count": 0, 8190 "+1": 0, 8191 "-1": 0, 8192 "laugh": 0, 8193 "hooray": 0, 8194 "confused": 0, 8195 "heart": 0, 8196 "rocket": 0, 8197 "eyes": 0 8198 }, 8199 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/54/timeline", 8200 "performed_via_github_app": null, 8201 "state_reason": null 8202 } 8203 }, 8204 { 8205 "issue": { 8206 "url": "https://api.github.com/repos/damus-io/android/issues/54", 8207 "repository_url": "https://api.github.com/repos/damus-io/android", 8208 "labels_url": "https://api.github.com/repos/damus-io/android/issues/54/labels{/name}", 8209 "comments_url": "https://api.github.com/repos/damus-io/android/issues/54/comments", 8210 "events_url": "https://api.github.com/repos/damus-io/android/issues/54/events", 8211 "html_url": "https://github.com/damus-io/android/issues/54", 8212 "id": 2061817787, 8213 "node_id": "I_kwDOKzWMZs565Ne7", 8214 "number": 54, 8215 "title": "Amber signer support", 8216 "user": { 8217 "login": "alltheseas", 8218 "id": 64376233, 8219 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 8220 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 8221 "gravatar_id": "", 8222 "url": "https://api.github.com/users/alltheseas", 8223 "html_url": "https://github.com/alltheseas", 8224 "followers_url": "https://api.github.com/users/alltheseas/followers", 8225 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 8226 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 8227 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 8228 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 8229 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 8230 "repos_url": "https://api.github.com/users/alltheseas/repos", 8231 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 8232 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 8233 "type": "User", 8234 "site_admin": false 8235 }, 8236 "labels": [ 8237 { 8238 "id": 6264778307, 8239 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 8240 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 8241 "name": "enhancement", 8242 "color": "a2eeef", 8243 "default": true, 8244 "description": "New feature or request" 8245 } 8246 ], 8247 "state": "open", 8248 "locked": false, 8249 "assignee": null, 8250 "assignees": [], 8251 "milestone": null, 8252 "comments": 2, 8253 "created_at": "2024-01-01T23:02:03Z", 8254 "updated_at": "2024-03-16T08:30:12Z", 8255 "closed_at": null, 8256 "author_association": "CONTRIBUTOR", 8257 "active_lock_reason": null, 8258 "body": "https://github.com/greenart7c3/Amber", 8259 "reactions": { 8260 "url": "https://api.github.com/repos/damus-io/android/issues/54/reactions", 8261 "total_count": 0, 8262 "+1": 0, 8263 "-1": 0, 8264 "laugh": 0, 8265 "hooray": 0, 8266 "confused": 0, 8267 "heart": 0, 8268 "rocket": 0, 8269 "eyes": 0 8270 }, 8271 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/54/timeline", 8272 "performed_via_github_app": null, 8273 "state_reason": null 8274 }, 8275 "comment": { 8276 "user": "jb55", 8277 "created_at": "2024-03-16T08:29:45Z", 8278 "updated_at": "2024-03-16T08:29:45Z", 8279 "body": "as a side note I would never personally use this, because I trust myself and not some random signer app." 8280 } 8281 }, 8282 { 8283 "issue": { 8284 "url": "https://api.github.com/repos/damus-io/android/issues/54", 8285 "repository_url": "https://api.github.com/repos/damus-io/android", 8286 "labels_url": "https://api.github.com/repos/damus-io/android/issues/54/labels{/name}", 8287 "comments_url": "https://api.github.com/repos/damus-io/android/issues/54/comments", 8288 "events_url": "https://api.github.com/repos/damus-io/android/issues/54/events", 8289 "html_url": "https://github.com/damus-io/android/issues/54", 8290 "id": 2061817787, 8291 "node_id": "I_kwDOKzWMZs565Ne7", 8292 "number": 54, 8293 "title": "Amber signer support", 8294 "user": { 8295 "login": "alltheseas", 8296 "id": 64376233, 8297 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 8298 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 8299 "gravatar_id": "", 8300 "url": "https://api.github.com/users/alltheseas", 8301 "html_url": "https://github.com/alltheseas", 8302 "followers_url": "https://api.github.com/users/alltheseas/followers", 8303 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 8304 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 8305 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 8306 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 8307 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 8308 "repos_url": "https://api.github.com/users/alltheseas/repos", 8309 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 8310 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 8311 "type": "User", 8312 "site_admin": false 8313 }, 8314 "labels": [ 8315 { 8316 "id": 6264778307, 8317 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 8318 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 8319 "name": "enhancement", 8320 "color": "a2eeef", 8321 "default": true, 8322 "description": "New feature or request" 8323 } 8324 ], 8325 "state": "open", 8326 "locked": false, 8327 "assignee": null, 8328 "assignees": [], 8329 "milestone": null, 8330 "comments": 2, 8331 "created_at": "2024-01-01T23:02:03Z", 8332 "updated_at": "2024-03-16T08:30:12Z", 8333 "closed_at": null, 8334 "author_association": "CONTRIBUTOR", 8335 "active_lock_reason": null, 8336 "body": "https://github.com/greenart7c3/Amber", 8337 "reactions": { 8338 "url": "https://api.github.com/repos/damus-io/android/issues/54/reactions", 8339 "total_count": 0, 8340 "+1": 0, 8341 "-1": 0, 8342 "laugh": 0, 8343 "hooray": 0, 8344 "confused": 0, 8345 "heart": 0, 8346 "rocket": 0, 8347 "eyes": 0 8348 }, 8349 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/54/timeline", 8350 "performed_via_github_app": null, 8351 "state_reason": null 8352 }, 8353 "comment": { 8354 "user": "jb55", 8355 "created_at": "2024-03-16T08:30:11Z", 8356 "updated_at": "2024-03-16T08:30:11Z", 8357 "body": "but I may be the only person :sweat_smile: " 8358 } 8359 }, 8360 { 8361 "issue": { 8362 "url": "https://api.github.com/repos/damus-io/android/issues/53", 8363 "repository_url": "https://api.github.com/repos/damus-io/android", 8364 "labels_url": "https://api.github.com/repos/damus-io/android/issues/53/labels{/name}", 8365 "comments_url": "https://api.github.com/repos/damus-io/android/issues/53/comments", 8366 "events_url": "https://api.github.com/repos/damus-io/android/issues/53/events", 8367 "html_url": "https://github.com/damus-io/android/issues/53", 8368 "id": 2061665544, 8369 "node_id": "I_kwDOKzWMZs564oUI", 8370 "number": 53, 8371 "title": "Measure and attribute data usage", 8372 "user": { 8373 "login": "alltheseas", 8374 "id": 64376233, 8375 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 8376 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 8377 "gravatar_id": "", 8378 "url": "https://api.github.com/users/alltheseas", 8379 "html_url": "https://github.com/alltheseas", 8380 "followers_url": "https://api.github.com/users/alltheseas/followers", 8381 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 8382 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 8383 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 8384 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 8385 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 8386 "repos_url": "https://api.github.com/users/alltheseas/repos", 8387 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 8388 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 8389 "type": "User", 8390 "site_admin": false 8391 }, 8392 "labels": [ 8393 { 8394 "id": 6264778307, 8395 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 8396 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 8397 "name": "enhancement", 8398 "color": "a2eeef", 8399 "default": true, 8400 "description": "New feature or request" 8401 }, 8402 { 8403 "id": 6339173748, 8404 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 8405 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 8406 "name": "technical", 8407 "color": "e99695", 8408 "default": false, 8409 "description": "" 8410 } 8411 ], 8412 "state": "open", 8413 "locked": false, 8414 "assignee": null, 8415 "assignees": [], 8416 "milestone": null, 8417 "comments": 0, 8418 "created_at": "2024-01-01T17:02:08Z", 8419 "updated_at": "2024-01-01T17:03:45Z", 8420 "closed_at": null, 8421 "author_association": "CONTRIBUTOR", 8422 "active_lock_reason": null, 8423 "body": "In order to architect and execute low data / cellular mode, we must first understand where data usage comes from, and measure each component.\n\nEconomical data mode\n\nhttps://github.com/damus-io/android/issues/14\n", 8424 "reactions": { 8425 "url": "https://api.github.com/repos/damus-io/android/issues/53/reactions", 8426 "total_count": 0, 8427 "+1": 0, 8428 "-1": 0, 8429 "laugh": 0, 8430 "hooray": 0, 8431 "confused": 0, 8432 "heart": 0, 8433 "rocket": 0, 8434 "eyes": 0 8435 }, 8436 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/53/timeline", 8437 "performed_via_github_app": null, 8438 "state_reason": null 8439 } 8440 }, 8441 { 8442 "issue": { 8443 "url": "https://api.github.com/repos/damus-io/android/issues/52", 8444 "repository_url": "https://api.github.com/repos/damus-io/android", 8445 "labels_url": "https://api.github.com/repos/damus-io/android/issues/52/labels{/name}", 8446 "comments_url": "https://api.github.com/repos/damus-io/android/issues/52/comments", 8447 "events_url": "https://api.github.com/repos/damus-io/android/issues/52/events", 8448 "html_url": "https://github.com/damus-io/android/issues/52", 8449 "id": 2052860335, 8450 "node_id": "I_kwDOKzWMZs56XCmv", 8451 "number": 52, 8452 "title": "Zap DMs", 8453 "user": { 8454 "login": "alltheseas", 8455 "id": 64376233, 8456 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 8457 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 8458 "gravatar_id": "", 8459 "url": "https://api.github.com/users/alltheseas", 8460 "html_url": "https://github.com/alltheseas", 8461 "followers_url": "https://api.github.com/users/alltheseas/followers", 8462 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 8463 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 8464 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 8465 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 8466 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 8467 "repos_url": "https://api.github.com/users/alltheseas/repos", 8468 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 8469 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 8470 "type": "User", 8471 "site_admin": false 8472 }, 8473 "labels": [ 8474 { 8475 "id": 6271232904, 8476 "node_id": "LA_kwDOKzWMZs8AAAABdctriA", 8477 "url": "https://api.github.com/repos/damus-io/android/labels/zaps", 8478 "name": "zaps", 8479 "color": "fef2c0", 8480 "default": false, 8481 "description": "" 8482 } 8483 ], 8484 "state": "open", 8485 "locked": false, 8486 "assignee": null, 8487 "assignees": [], 8488 "milestone": null, 8489 "comments": 0, 8490 "created_at": "2023-12-21T18:04:07Z", 8491 "updated_at": "2023-12-21T18:04:07Z", 8492 "closed_at": null, 8493 "author_association": "CONTRIBUTOR", 8494 "active_lock_reason": null, 8495 "body": "## user story\n\nAs a pleb who uses zaps and DMs in damus, I would like to be able to zap DMs of other plebs, so that I can show my appreciation for other plebs I DM with\n\n### acceptance criteria\n\n1. Pleb can zap DMs\n2. Notifications appear for pleb receiving zap", 8496 "reactions": { 8497 "url": "https://api.github.com/repos/damus-io/android/issues/52/reactions", 8498 "total_count": 0, 8499 "+1": 0, 8500 "-1": 0, 8501 "laugh": 0, 8502 "hooray": 0, 8503 "confused": 0, 8504 "heart": 0, 8505 "rocket": 0, 8506 "eyes": 0 8507 }, 8508 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/52/timeline", 8509 "performed_via_github_app": null, 8510 "state_reason": null 8511 } 8512 }, 8513 { 8514 "issue": { 8515 "url": "https://api.github.com/repos/damus-io/android/issues/51", 8516 "repository_url": "https://api.github.com/repos/damus-io/android", 8517 "labels_url": "https://api.github.com/repos/damus-io/android/issues/51/labels{/name}", 8518 "comments_url": "https://api.github.com/repos/damus-io/android/issues/51/comments", 8519 "events_url": "https://api.github.com/repos/damus-io/android/issues/51/events", 8520 "html_url": "https://github.com/damus-io/android/issues/51", 8521 "id": 2047116773, 8522 "node_id": "I_kwDOKzWMZs56BIXl", 8523 "number": 51, 8524 "title": "Identify and port code from iOS", 8525 "user": { 8526 "login": "alltheseas", 8527 "id": 64376233, 8528 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 8529 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 8530 "gravatar_id": "", 8531 "url": "https://api.github.com/users/alltheseas", 8532 "html_url": "https://github.com/alltheseas", 8533 "followers_url": "https://api.github.com/users/alltheseas/followers", 8534 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 8535 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 8536 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 8537 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 8538 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 8539 "repos_url": "https://api.github.com/users/alltheseas/repos", 8540 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 8541 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 8542 "type": "User", 8543 "site_admin": false 8544 }, 8545 "labels": [ 8546 { 8547 "id": 6339173748, 8548 "node_id": "LA_kwDOKzWMZs8AAAABedgddA", 8549 "url": "https://api.github.com/repos/damus-io/android/labels/technical", 8550 "name": "technical", 8551 "color": "e99695", 8552 "default": false, 8553 "description": "" 8554 } 8555 ], 8556 "state": "open", 8557 "locked": false, 8558 "assignee": null, 8559 "assignees": [], 8560 "milestone": null, 8561 "comments": 0, 8562 "created_at": "2023-12-18T17:23:45Z", 8563 "updated_at": "2023-12-18T17:24:19Z", 8564 "closed_at": null, 8565 "author_association": "CONTRIBUTOR", 8566 "active_lock_reason": null, 8567 "body": "@danieldaquino asks what code can be imported from iOS\r\n\r\n@jb55 mentions nostrdb, and content parsing (coded in C)\r\n\r\nOpen question remains: networking, notecrumb.", 8568 "reactions": { 8569 "url": "https://api.github.com/repos/damus-io/android/issues/51/reactions", 8570 "total_count": 0, 8571 "+1": 0, 8572 "-1": 0, 8573 "laugh": 0, 8574 "hooray": 0, 8575 "confused": 0, 8576 "heart": 0, 8577 "rocket": 0, 8578 "eyes": 0 8579 }, 8580 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/51/timeline", 8581 "performed_via_github_app": null, 8582 "state_reason": null 8583 } 8584 }, 8585 { 8586 "issue": { 8587 "url": "https://api.github.com/repos/damus-io/android/issues/50", 8588 "repository_url": "https://api.github.com/repos/damus-io/android", 8589 "labels_url": "https://api.github.com/repos/damus-io/android/issues/50/labels{/name}", 8590 "comments_url": "https://api.github.com/repos/damus-io/android/issues/50/comments", 8591 "events_url": "https://api.github.com/repos/damus-io/android/issues/50/events", 8592 "html_url": "https://github.com/damus-io/android/issues/50", 8593 "id": 2022990454, 8594 "node_id": "I_kwDOKzWMZs54lGJ2", 8595 "number": 50, 8596 "title": "Copy iOS localized bootstrap lists", 8597 "user": { 8598 "login": "alltheseas", 8599 "id": 64376233, 8600 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 8601 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 8602 "gravatar_id": "", 8603 "url": "https://api.github.com/users/alltheseas", 8604 "html_url": "https://github.com/alltheseas", 8605 "followers_url": "https://api.github.com/users/alltheseas/followers", 8606 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 8607 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 8608 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 8609 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 8610 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 8611 "repos_url": "https://api.github.com/users/alltheseas/repos", 8612 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 8613 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 8614 "type": "User", 8615 "site_admin": false 8616 }, 8617 "labels": [ 8618 { 8619 "id": 6272198361, 8620 "node_id": "LA_kwDOKzWMZs8AAAABddom2Q", 8621 "url": "https://api.github.com/repos/damus-io/android/labels/relays", 8622 "name": "relays", 8623 "color": "2ACD20", 8624 "default": false, 8625 "description": "" 8626 } 8627 ], 8628 "state": "open", 8629 "locked": false, 8630 "assignee": null, 8631 "assignees": [], 8632 "milestone": null, 8633 "comments": 0, 8634 "created_at": "2023-12-04T04:19:27Z", 8635 "updated_at": "2023-12-04T04:20:29Z", 8636 "closed_at": null, 8637 "author_association": "CONTRIBUTOR", 8638 "active_lock_reason": null, 8639 "body": "Thai, German\n\nhttps://github.com/damus-io/damus/issues/1698\n\nhttps://github.com/damus-io/damus/issues/1750", 8640 "reactions": { 8641 "url": "https://api.github.com/repos/damus-io/android/issues/50/reactions", 8642 "total_count": 0, 8643 "+1": 0, 8644 "-1": 0, 8645 "laugh": 0, 8646 "hooray": 0, 8647 "confused": 0, 8648 "heart": 0, 8649 "rocket": 0, 8650 "eyes": 0 8651 }, 8652 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/50/timeline", 8653 "performed_via_github_app": null, 8654 "state_reason": null 8655 } 8656 }, 8657 { 8658 "issue": { 8659 "url": "https://api.github.com/repos/damus-io/android/issues/49", 8660 "repository_url": "https://api.github.com/repos/damus-io/android", 8661 "labels_url": "https://api.github.com/repos/damus-io/android/issues/49/labels{/name}", 8662 "comments_url": "https://api.github.com/repos/damus-io/android/issues/49/comments", 8663 "events_url": "https://api.github.com/repos/damus-io/android/issues/49/events", 8664 "html_url": "https://github.com/damus-io/android/issues/49", 8665 "id": 2022587580, 8666 "node_id": "I_kwDOKzWMZs54jjy8", 8667 "number": 49, 8668 "title": "Scheduled posts", 8669 "user": { 8670 "login": "alltheseas", 8671 "id": 64376233, 8672 "node_id": "MDQ6VXNlcjY0Mzc2MjMz", 8673 "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", 8674 "gravatar_id": "", 8675 "url": "https://api.github.com/users/alltheseas", 8676 "html_url": "https://github.com/alltheseas", 8677 "followers_url": "https://api.github.com/users/alltheseas/followers", 8678 "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", 8679 "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", 8680 "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", 8681 "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", 8682 "organizations_url": "https://api.github.com/users/alltheseas/orgs", 8683 "repos_url": "https://api.github.com/users/alltheseas/repos", 8684 "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", 8685 "received_events_url": "https://api.github.com/users/alltheseas/received_events", 8686 "type": "User", 8687 "site_admin": false 8688 }, 8689 "labels": [ 8690 { 8691 "id": 6264778307, 8692 "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", 8693 "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", 8694 "name": "enhancement", 8695 "color": "a2eeef", 8696 "default": true, 8697 "description": "New feature or request" 8698 } 8699 ], 8700 "state": "open", 8701 "locked": false, 8702 "assignee": null, 8703 "assignees": [], 8704 "milestone": null, 8705 "comments": 0, 8706 "created_at": "2023-12-03T15:28:14Z", 8707 "updated_at": "2023-12-03T15:28:14Z", 8708 "closed_at": null, 8709 "author_association": "CONTRIBUTOR", 8710 "active_lock_reason": null, 8711 "body": "## user story\n\nAs a Damus user who creates posts, I would like to schedule a note to be sent at a particular time, so that I can post at a specific time in the future without having to remember and post at that time.\n\n### acceptance criteria\n\n1. User has post later functionality\n2. Post later functionality includes a way to specify a specific time to post - e.g. year, month, day, HH:mm\n3. User can see scheduled post queue\n4. User can remove scheduled posts", 8712 "reactions": { 8713 "url": "https://api.github.com/repos/damus-io/android/issues/49/reactions", 8714 "total_count": 0, 8715 "+1": 0, 8716 "-1": 0, 8717 "laugh": 0, 8718 "hooray": 0, 8719 "confused": 0, 8720 "heart": 0, 8721 "rocket": 0, 8722 "eyes": 0 8723 }, 8724 "timeline_url": "https://api.github.com/repos/damus-io/android/issues/49/timeline", 8725 "performed_via_github_app": null, 8726 "state_reason": null 8727 } 8728 }, 8729 { 8730 "issue": { 8731 "url": "https://api.github.com/repos/damus-io/android/issues/48", 8732 "repository_url": "https://api.github.com/repos/damus-io/android", 8733 "labels_url": "https://api.github.com/repos/damus-io/android/issues/48/labels{/name}", 8734 "comments_url": "https://api.github.com/repos/damus-io/android/issues/48/comments", 8735 "events_url": "https://api.github.com/repos/damus-io/android/issues/48/events", 8736 "html_url": "https://github.com/damus-io/android/issues/48", 8737 "id": 2022467444, 8738 "node_id": "I_kwDOKzWMZs54jGd0", 8739 "number": 48, 8740 "title": "Profile deletion", 8741 "user": { 8742 "login": "alltheseas", 8743 "id": 64376233,