Compare commits

...

158 Commits

Author SHA1 Message Date
James Mills aff724da2e
XCode update 2 months ago
James Mills 672f84da34
Bump app version 1.0.5+62 2 months ago
James Mills ccce4d4ba5
Update XCode settings 2 months ago
Mearaj a03bbddb14 upgraded dependencies so that app can compile again 2 months ago
James Mills 39f0d5a276
Add Android builds for 1.0.5+61 9 months ago
James Mills e3957896f8
Bump app version 1.0.5+61 9 months ago
James Mills 713a3422ae
Remove unused improt 9 months ago
James Mills 30d5541185
Remove VideoScreen 9 months ago
James Mills feadada6be
WIP: Make videos play inline 9 months ago
James Mills f1f8f3a25b
Fix progress spinner for post button 9 months ago
James Mills bc7d97342d
Fix bug when app tries to login to a pod with bad data from a saved user that no longer exists 9 months ago
James Mills 61dab20bf8
Update AppBar title for newtwt to be: New Twt 9 months ago
James Mills 8ec92311bf
Fix UX of the send post button 9 months ago
James Mills e8838a0101
Fix fetching twts for external profiles (Fixes #120) 9 months ago
James Mills 817b43d29e
Fix the Post button and move it to the AppBar actions 9 months ago
James Mills 38734db39a
Remove broken test code 9 months ago
James Mills 88848509a4
Fix italic button to output the correct markdown 9 months ago
James Mills eda01ba237
Update checksums and gpg signature for Android builds for 1.0.5+60 10 months ago
James Mills 5c11643e8a
Add Android builds for 1.0.5+60 10 months ago
James Mills 5e32a71555
Bump app version 1.0.5+60 10 months ago
amanxnanda 1d29e3f929 Post as persona (#117) 10 months ago
James Mills 2201e916f9
Update settings privacy toggles text to match c24f2ec of yarn 10 months ago
amanxnanda bf343c1aa2 Add AMOLED theme and navigate to user profile in drawer profile avatar 10 months ago
amanxnanda 69c2c3cf0b fix: Fix saved pod url scheme in cache (#114) 10 months ago
James Mills bc73b7d1c8
Add 1.0.5 Build 59 Android APK and App bundles 10 months ago
James Mills 4044fea22e
Bump app version 1.0.5+59 10 months ago
James Mills 0bf5987814
Change conversation button title to 'Yarn' to match yarnd 10 months ago
James Mills 96952fde46
Bump app version 1.0.5+58 10 months ago
James Mills c2d4cd2d1e
Fix Settings page 10 months ago
James Mills 01c234b14d
Bump app version 1.0.5+57 10 months ago
James Mills e76622ecda
Merge branch 'dtect_offline' 10 months ago
James Mills 5fab3d90d8
Fix .gitignore to ignore *~ files from vim 10 months ago
James Mills 396a024c79
Fix offline detection by pining the API with the /api/v1/ping endpoint 10 months ago
James Mills 56ec28f4ff
Add a basic about page with build information 10 months ago
James Mills 26570e0453
Bump app version 1.0.5+56 10 months ago
James Mills 7c36b2ca8c
Fix ensuring pod-url key in storage service is always set on startup and app reinstalls with the same secure storage 10 months ago
James Mills 3df3b3d68a
Fix Null check operator used on a null value bug 10 months ago
James Mills 25ca176d44
Revert "Add an emptyTimeline prompt for new users (#98)" 10 months ago
James Mills 883f07a0d4
Bump app version 1.0.5+55 10 months ago
James Mills 9032da4367
Fix loading profiles as mentions/links and detect external profiles via mentions 10 months ago
James Mills 2f6c03e3f2
Bump app version 1.0.5+54 10 months ago
amanxnanda 872d314610 Added `podURL` to avatars (#105) 10 months ago
James Mills 7040cce902
Bump app version 1.0.5+53 10 months ago
James Mills 2600f2be6b
Fix Reply hint behaviour to only mention the Twter 10 months ago
James Mills f264bfd127
Fix arragement of toolbar buttons/icons (again) and remove unused ones like Strikethrough, Code and Image link buttons 10 months ago
amanxnanda d808e0770c Add storage service to store shared state (#104) 10 months ago
James Mills f3550ec1d8
Remove unused Alternatives API type and load Profile avatars from the pod 10 months ago
James Mills 06f1b5b214
Fix bug loading profiles with no twts 10 months ago
James Mills 4e9a28b40f
Bump app version 1.0.5+52 10 months ago
James Mills fdab59ff94
Add support for fetching remote profile followers/following counts from pods 10 months ago
James Mills c49647444c
Fix generated models 10 months ago
James Mills 0607bbfa21
Fix opening links for Android by upgrading Gradle and adding android.intent.action.VIEW query to Android manifest 10 months ago
James Mills 99748c49ad
Bump app version 1.0.5+51 10 months ago
James Mills e426693b2c
Drop support for WebP and WebM in-line with v0.2.0 of yarnd 10 months ago
James Mills d5897484e7 Add an emptyTimeline prompt for new users (#98) 10 months ago
amanxnanda e3c853d647 replaced deprecated members (#99) 10 months ago
James Mills 4589f4dec0
Bump app version 1.0.5+50 10 months ago
James Mills 7cfa088ef5
Fix Markdown rendering and set soft linebreaks to true 10 months ago
James Mills f723096bc0
Do not display the Fork button on the root Twt in Conversation view 10 months ago
James Mills af87ca89fc
Show conversation hash in Conversation view 10 months ago
James Mills 9a2e7f0ed2
Fix AppBar titles for Follow and New Post screens 10 months ago
James Mills 721e1b67bf
Bump app version 1.0.5+49 10 months ago
James Mills 3a81b7a700
Add screenshots of Pixel5 and iPhone11 Pro 10 months ago
James Mills 1d12eebce9
Fix some UX padding consistency 10 months ago
James Mills 179fe119af
Fix UX consitency with AppBar titles 10 months ago
James Mills c254eb0c7c
Bump app version 1.0.5+48 10 months ago
James Mills bf43132a99
Fix Follow/Unfollow bug 10 months ago
James Mills c4aef4e14f
Fix targetSdkVersion for Android to SDK v30 required by Google Play Store 10 months ago
James Mills fefe20ce31
Bump app version 1.0.5+47 10 months ago
James Mills 435885475f
Fix Export Compliance for App Store setting ITSAppUsesNonExemptEncryption to false since Goryon only uses the builtin OS HTTPS capabilities as per Apple's guidelines 10 months ago
James Mills 6587561cc6
Remove no longer used .github workflows 10 months ago
James Mills d8ce216453
Bump app version 1.0.5+46 10 months ago
James Mills b6c5d445f2
Fix a null check before initialization bug in getAppUser() 10 months ago
James Mills 6accbc8339
Fix and remove unused improts 10 months ago
James Mills a8dc5c2995
Fix Android namespace 10 months ago
James Mills 54bd88914e
Fix bug with getting AppUser and actually fix logout issue (Fixes #86) 10 months ago
James Mills c9202b73ad
Fix android app configuration and refactor keystore generation and update docs on building 10 months ago
James Mills 21446a3de0
Bump app version 1.0.5+45 10 months ago
James Mills e3f42be8b5 Merge pull request 'Merge/add android-build-wrapper.sh script to automate keystore handling' (#89) from eldersnake/goryon:master into master 10 months ago
eldersnake f57550985a Improvement/fixes to android-build-wrapper.sh 10 months ago
eldersnake 36fcee7e42 Update 'scripts/setenv.sh' to coincide with android-build-wrapper.sh 10 months ago
eldersnake 796dd24889 Upload android-build-wrapper.sh 10 months ago
James Mills 872f6778fc
Fix logging out on network/socket errors (Fixes #86) 10 months ago
James Mills 216f6f9283
Add support for forking conversations 10 months ago
James Mills c7b19e564b
Removed unused web folder 10 months ago
James Mills 13150f6e6c
Fix scripts/setenv.sh to be POSIX sh 10 months ago
James Mills 6ed0322acc
Fix a bunch of bugs handling null responses from the API 10 months ago
James Mills 37fba3adf6
Change some of the text and app name as per the re-branding 10 months ago
James Mills 42867e04e9
Migrade to Dart 2.x with null-saftey packages 10 months ago
James Mills b82d267821
Fix Xcode recommended schema changes 10 months ago
James Mills 4d1c1ca5ed
Upgrade deps, Rename App and AppID to Goryon and social.yarn.goryon and fix callback for onTapLink 10 months ago
Antonio Rodrigues 83e060dae2 Bump app version 1.0.5+44 1 year ago
Antonio Rodrigues 5bf26b5295
Replaces http with https when users enter pod url while login (#74) (#85) 1 year ago
Antonio Rodrigues 7c0bcb9068
User bio in Settings screen not wrapping to second line (#81) (#83) 1 year ago
Antonio Rodrigues a6af8fbb4d
Rearranged the toolbar items in the new post screen (#79) (#84) 1 year ago
Antonio Rodrigues acaacb893c
Fixed label on setting screen (probably a bad copy and paste) (#80) 2 years ago
Daven b047a2dd91
fix: Improve login error message (#78) 2 years ago
Daven d1f0bfc6c7
Added user-agent to request header (#73) 2 years ago
Daven 6537b5081a
doc: Add app links (#71) 2 years ago
Daven Casia ba12222af1 Bump build number 2 years ago
Daven 16d9d6ef68
feat: New twt refactor structure (#70) 2 years ago
Antonio Rodrigues fce60cf419 Bump version to 1.0.2 2 years ago
Daven Casia 2dd6ebd028 Bump build number 2 years ago
Daven Casia 2f4715fb1a Remove Dark Mode toggle 2 years ago
Daven a712090ec1
feat: Add Settings screen (#64) 2 years ago
Antonio Rodrigues 3da1f2752a Removing flutter test and the apk build (only ios for now) 2 years ago
Antonio Rodrigues c8bb56cada Changing flutter version on script to use stable version instead of a fixed version 2 years ago
Antonio Rodrigues 7e48dda011 Fixing deploy script 2 years ago
Antonio Rodrigues 627ca509a1 Breaking down `uses inside script 2 years ago
Antonio Rodrigues ebe9d5063f Breaking down Flutter run inside script 2 years ago
Antonio Rodrigues 022af3f35e Added steps for Flutter build on deploy script 2 years ago
Antonio Rodrigues 955d6a45f9 Added install pods to the deploy script 2 years ago
Antonio Rodrigues a088ad5bc8 Bouding env vars correctly 2 years ago
Antonio Rodrigues 2d3f662475 Fixing deploy script 2 years ago
Antonio Rodrigues babee109a0 TWeaking scripts 2 years ago
Antonio Rodrigues be949934e9 Merge branch 'master' of github.com:jointwt/goryon 2 years ago
Antonio Rodrigues 0006c362f0 New settings for signing 2 years ago
Antonio Rodrigues 4ff4370862 Updated env vars names 2 years ago
Antonio Rodrigues 400f4017d2 Change script to run into the ios folder 2 years ago
Antonio Rodrigues f01c694ff5 Preparing scripts and workflows for GitActions TestFlight deploy 2 years ago
Antonio Rodrigues c71603e3b8 Updated pubspec.yaml app version to 1.0.1 2 years ago
Antonio Rodrigues 85295a8474 Updated app version to 1.0.1 2 years ago
Daven 33f27c3886
feat: Make list always scrollable (#63) 2 years ago
Daven d75badcd49
Refresh conversation after reply (#62) 2 years ago
Daven dc1a605be9
Add Conversations (#61) 2 years ago
Daven af479e5906
Added Follows/FollowedBy info in profile screen (#59) 2 years ago
Daven 6a0b185a4b
Render blockquotes in twt (#55) 2 years ago
Daven 539b8268c1
feat: Profile ux improvements (#51) 2 years ago
Daven f1f31d8f63
Close report screen after submit (#50) 2 years ago
Daven 0713576643
feat: Fix login (#49) 2 years ago
Daven a3dd7a8246
feat: Added community guideline toggle (#48) 2 years ago
Daven d6628be6fa
feat: Mute/unmute user (#47) 2 years ago
Daven fea3b472b1
Bump flutter version and share (#46) 2 years ago
Daven cb740f1a19
feat: Report Abuse page (#45) 2 years ago
Daven d2b06f2095
fix: appbar brightness (#40) 2 years ago
Daven e51d9d2f6f
Video player fix (#37) 2 years ago
Daven 4bfbb24d70
feat: Add inline video player back (#35) 2 years ago
Daven d7c983f108
fix: Use subject from backend (#34) 2 years ago
Daven a9a905857c
Remove cache extent (#32) 2 years ago
Daven 4d3b6912da
Improve dark mode switching perf (#31) 2 years ago
Daven 8e9f11953a
feat: Add dark mode (#30) 2 years ago
Daven 1a4dfb862e
fix: Fix external profile view (#26) 2 years ago
Ammar Hussein 583a0f6175
Update newtwt.dart (#25) 2 years ago
Daven b33360f220
feat: Adding mentions screen (#24) 2 years ago
Daven 1e74037efe
feat: Improve twt error handling (#22) 2 years ago
Daven 65aadafaea
feat: Fetch external profile (#20) 2 years ago
Daven 1498cb06b6
Use markdown from api (#18) 2 years ago
Daven 5c389b725b
Use lower case for json (#15) 2 years ago
Daven 4dcd58bb7b
Revert "Use lowercase for the json keys" (#14) 2 years ago
Daven Casia 71eb3df1bf Use lowercase for the json keys 2 years ago
Daven 426a868940
Show twts in profile (#12) 2 years ago
Daven 0808690f8f
Update screenshots 2 years ago
Daven 8a8a4db720
Change the avatar + username layout in twtl list (#11) 2 years ago
Daven 56f0ee4cbc
feat: Respond to tapping avatar + Video Player (#10) 2 years ago
Daven 5c95de7a6c
Add profile page for internal users (#9) 2 years ago
Antonio Rodrigues 4380477bdf
Bumped version build number to 9 (#8) 2 years ago
Daven 736a98631e doc: Update issue templates 2 years ago
Daven d922377d5a
feat: Add image upload (#7) 2 years ago
  1. 2
      .gitattributes
  2. 96
      .github/workflows/shipit.yml
  3. 7
      .gitignore
  4. 19
      .vscode/launch.json
  5. 3
      LICENSE
  6. 51
      README.md
  7. 6
      android/app/build.gradle
  8. 5
      android/app/src/debug/AndroidManifest.xml
  9. 48
      android/app/src/main/AndroidManifest.xml
  10. 25
      android/app/src/main/java/io/flutter/app/FlutterMultiDexApplication.java
  11. 2
      android/app/src/main/kotlin/social/yarn/goryon/MainActivity.kt
  12. 5
      android/app/src/profile/AndroidManifest.xml
  13. 8
      android/build.gradle
  14. 2
      android/fastlane/Appfile
  15. 11
      android/fastlane/README.md
  16. 11
      android/fastlane/metadata/android/en-GB/full_description.txt
  17. 2
      android/fastlane/metadata/android/en-GB/short_description.txt
  18. 2
      android/gradle/wrapper/gradle-wrapper.properties
  19. 1
      android/settings_aar.gradle
  20. BIN
      dist/app-release.aab
  21. BIN
      dist/app-release.apk
  22. 5
      dist/checksums.txt
  23. 11
      dist/checksums.txt.asc
  24. BIN
      docs/screenshots/Pixel5_Cat.png
  25. BIN
      docs/screenshots/Pixel5_Conversation.png
  26. BIN
      docs/screenshots/Pixel5_Drawer.png
  27. BIN
      docs/screenshots/Pixel5_Login.png
  28. BIN
      docs/screenshots/Pixel5_Reply.png
  29. BIN
      docs/screenshots/Pixel5_Settings.png
  30. BIN
      docs/screenshots/iPhone11Pro_Cat.png
  31. BIN
      docs/screenshots/iPhone11Pro_Conversation.png
  32. BIN
      docs/screenshots/iPhone11Pro_Drawer.png
  33. BIN
      docs/screenshots/iPhone11Pro_Login.png
  34. BIN
      docs/screenshots/iPhone11Pro_Reply.png
  35. BIN
      docs/screenshots/iPhone11Pro_Settings.png
  36. 85
      ios/Podfile.lock
  37. 26
      ios/Runner.xcodeproj/project.pbxproj
  38. 2
      ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  39. 10
      ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
  40. 17
      ios/Runner/Info.plist
  41. 422
      lib/api.dart
  42. 278
      lib/common_widgets.dart
  43. 2
      lib/data/data.dart
  44. 1
      lib/data/enum/enums.dart
  45. 37
      lib/data/utils/extensions.dart
  46. 4
      lib/errors.dart
  47. 6
      lib/form_validators.dart
  48. 18
      lib/httpclient.dart
  49. 75
      lib/main.dart
  50. 267
      lib/models.dart
  51. 211
      lib/models.g.dart
  52. 65
      lib/screens/about.dart
  53. 21
      lib/screens/auth_widget.dart
  54. 77
      lib/screens/conversation.dart
  55. 70
      lib/screens/discover.dart
  56. 16
      lib/screens/follow.dart
  57. 156
      lib/screens/login.dart
  58. 66
      lib/screens/mentions.dart
  59. 358
      lib/screens/newtwt.dart
  60. 521
      lib/screens/profile.dart
  61. 210
      lib/screens/register.dart
  62. 224
      lib/screens/report.dart
  63. 255
      lib/screens/settings.dart
  64. 69
      lib/screens/timeline.dart
  65. 35
      lib/services/storage_service.dart
  66. 20
      lib/strings.dart
  67. 1
      lib/styles/styles.dart
  68. 20
      lib/styles/theme.dart
  69. 415
      lib/viewmodels.dart
  70. 765
      lib/widgets/common_widgets.dart
  71. 45
      lib/widgets/image_picker.dart
  72. 97
      lib/widgets/twtvideoplayer.dart
  73. 543
      pubspec.lock
  74. 40
      pubspec.yaml
  75. 38
      scripts/generate-keystore.sh
  76. 22
      scripts/set-key-properties.sh
  77. 32
      scripts/setenv.sh
  78. 30
      test/widget_test.dart
  79. BIN
      web/favicon.png
  80. BIN
      web/icons/Icon-192.png
  81. BIN
      web/icons/Icon-512.png
  82. 33
      web/index.html
  83. 23
      web/manifest.json

2
.gitattributes vendored

@ -0,0 +1,2 @@
*.apk filter=lfs diff=lfs merge=lfs -text
*.aab filter=lfs diff=lfs merge=lfs -text

@ -1,96 +0,0 @@
name: shipit
on:
release:
types:
- "published"
- "edited"
- "prereleased"
push:
branches:
- "master"
- "actions/release-android__*"
paths:
- "pubspec.yaml"
- "android/**"
- "lib/**"
- ".github/workflows/shipit.yml"
jobs:
release-android:
name: release android app
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-java@v1
with:
java-version: '12.x'
- uses: actions/setup-ruby@v1
with:
ruby-version: '2.x'
- uses: subosito/flutter-action@v1
with:
flutter-version: '1.21.0-7.0.pre'
channel: 'dev'
- name: Install gem packages
run: |
cd android
gem install bundler:1.17.3
bundle install
bundle exec fastlane install_plugins
bundle exec fastlane update_plugins
- name: Build apk and app bundle package
env:
ANDROID_KEY_PWD: ${{ secrets.ANDROID_KEY_PWD }}
ANDROID_KEY_STORE_PWD: ${{ secrets.ANDROID_KEY_STORE_PWD }}
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
RELEASE_KEYSTORE_PASSPHRASE: ${{ secrets.RELEASE_KEYSTORE_PASSPHRASE }}
RELEASE_SERVICE_ACCOUNT_KEYSTORE: ${{ secrets.RELEASE_SERVICE_ACCOUNT_KEYSTORE }}
run: |
./scripts/setenv.sh
flutter pub get
flutter build appbundle
- name: Upload app to Google Play Store
env:
ANDROID_KEY_PWD: ${{ secrets.ANDROID_KEY_PWD }}
ANDROID_KEY_STORE_PWD: ${{ secrets.ANDROID_KEY_STORE_PWD }}
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
RELEASE_KEYSTORE_PASSPHRASE: ${{ secrets.RELEASE_KEYSTORE_PASSPHRASE }}
RELEASE_SERVICE_ACCOUNT_KEYSTORE: ${{ secrets.RELEASE_SERVICE_ACCOUNT_KEYSTORE }}
run: |
./scripts/setenv.sh
cd android/
bundle exec fastlane internal
- name: Promote to alpha
env:
ANDROID_KEY_PWD: ${{ secrets.ANDROID_KEY_PWD }}
ANDROID_KEY_STORE_PWD: ${{ secrets.ANDROID_KEY_STORE_PWD }}
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
RELEASE_KEYSTORE_PASSPHRASE: ${{ secrets.RELEASE_KEYSTORE_PASSPHRASE }}
RELEASE_SERVICE_ACCOUNT_KEYSTORE: ${{ secrets.RELEASE_SERVICE_ACCOUNT_KEYSTORE }}
run: |
./scripts/setenv.sh
cd android/
bundle exec fastlane alpha
- name: Promote to beta
if: contains(github.event_name,'release')
env:
ANDROID_KEY_PWD: ${{ secrets.ANDROID_KEY_PWD }}
ANDROID_KEY_STORE_PWD: ${{ secrets.ANDROID_KEY_STORE_PWD }}
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
RELEASE_KEYSTORE_PASSPHRASE: ${{ secrets.RELEASE_KEYSTORE_PASSPHRASE }}
RELEASE_SERVICE_ACCOUNT_KEYSTORE: ${{ secrets.RELEASE_SERVICE_ACCOUNT_KEYSTORE }}
run: |
./scripts/setenv.sh
cd android/
bundle exec fastlane beta
- name: Promote to production
if: contains(github.event_name,'release')&&(!github.event.release.prerelease)
env:
ANDROID_KEY_PWD: ${{ secrets.ANDROID_KEY_PWD }}
ANDROID_KEY_STORE_PWD: ${{ secrets.ANDROID_KEY_STORE_PWD }}
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
RELEASE_KEYSTORE_PASSPHRASE: ${{ secrets.RELEASE_KEYSTORE_PASSPHRASE }}
RELEASE_SERVICE_ACCOUNT_KEYSTORE: ${{ secrets.RELEASE_SERVICE_ACCOUNT_KEYSTORE }}
run: |
./scripts/setenv.sh
cd android/
bundle exec fastlane production

7
.gitignore vendored

@ -1,4 +1,5 @@
# Miscellaneous
*~
*.class
*.log
*.pyc
@ -30,6 +31,7 @@
.pub-cache/
.pub/
/build/
/ios/build/
# Web related
lib/generated_plugin_registrant.dart
@ -44,8 +46,13 @@ app.*.map.json
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
*.jks
.envrc
keys/
goryon-secrets/
# Fastlane files
android/fastlane/report.xml
# iOS Podfile
ios/Podfile.lock

@ -0,0 +1,19 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "goryon",
"request": "launch",
"type": "dart"
},
{
"name": "goryon (profile mode)",
"request": "launch",
"type": "dart",
"flutterMode": "profile"
}
]
}

@ -1,5 +1,6 @@
MIT License
Copyright (c) 2021-present Yarn.social
Copyright (c) 2020 Daven Casia
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -18,4 +19,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.

@ -1,21 +1,38 @@
# goryon 🐦🐦🐦
A flutter client for twtxt
# Goryon 🐦🐦🐦
![Timeline](docs/timeline.png)
![New post](docs/new_post.png)
![Drawer](docs/drawer.png)
A [Flutter](https://flutter.dev) client for the [Yarn.social] Pod API.
## Install it
- 🤖 [Play Store](#TBD)
- 🍏 [App Store](#TBD)
## Requirements
- [Install flutter](https://flutter.dev/docs/get-started/install)
- [Setup your editor (optional)](https://flutter.dev/docs/get-started/editor?tab=androidstudio)
## Running the app
1. Run your iOS simulator or Android emulator
2. **flutter pub get**
3. **flutter run**
## Building
Refer to flutter official docs
- [iOS](https://flutter.dev/docs/deployment/ios)
- [Android](https://flutter.dev/docs/deployment/android)
- [Install Flutter](https://flutter.dev/docs/get-started/install)
- [Setup your Editor (optional)](https://flutter.dev/docs/get-started/editor?tab=androidstudio)
## Buildingg the app
- Run your iOS simulator or Android emulator
- `flutter pub get`
- `flutter run`
### Building for Android
- Setup a keystore: `./scripts/generate-keystore.sh`
- Setup the `key.properties`: `./scripts/set-key-properties.sh`
It is recommended ot use [direnv](https://github.com/direnv/direnv) if you can.
## Screenshots
![Timeline](https://user-images.githubusercontent.com/15314237/93292677-4ce49480-f7a3-11ea-913b-ad736c83436e.jpeg)
![New twt](https://user-images.githubusercontent.com/15314237/93292673-4c4bfe00-f7a3-11ea-8ded-fcc3ebbbea36.png)
![Drawer](https://user-images.githubusercontent.com/15314237/93292676-4ce49480-f7a3-11ea-8a74-e54ccee3c8cf.png)
## License
Goryon is licensed under ther terms of the [MIT License](/LICENSE) and is a
part of the the [Yarn.social](https://yarn.social) project.

@ -35,7 +35,7 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion 28
compileSdkVersion 31
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
@ -46,9 +46,9 @@ android {
}
defaultConfig {
applicationId "com.jointwtxt.goryon"
applicationId "social.yarn.goryon"
minSdkVersion 18
targetSdkVersion 29
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}

@ -1,7 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jointwtxt.goryon">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="social.yarn.goryon">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>

@ -1,48 +1,44 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jointwtxt.goryon">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="social.yarn.goryon">
<uses-permission android:name="android.permission.INTERNET" />
<!-- Add the block below to your manifest file to configure apps with action.VIEW intent filters as visible to your app -->
<!-- START HERE -->
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent>
</queries>
<!-- END HERE -->
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:label="Goryon"
android:icon="@mipmap/ic_launcher">
<activity
android:name="com.jointwtxt.goryon.MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<application android:name="${applicationName}" android:label="Goryon" android:icon="@mipmap/ic_launcher">
<meta-data
android:name="flutterEmbedding"
android:value="2" />
<activity android:name="social.yarn.goryon.MainActivity" android:launchMode="singleTop" android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<meta-data android:name="io.flutter.embedding.android.NormalTheme" android:resource="@style/NormalTheme" />
<!-- Displays an Android View that continues showing the launch screen
Drawable until Flutter paints its first frame, then this splash
screen fades out. A splash screen is useful to avoid any visual
gap between the end of Android's launch screen and the painting of
Flutter's first frame. -->
<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background"
/>
<meta-data android:name="io.flutter.embedding.android.SplashScreenDrawable" android:resource="@drawable/launch_background" />
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
<meta-data android:name="flutterEmbedding" android:value="2" />
</application>
</manifest>

@ -0,0 +1,25 @@
// Generated file.
//
// If you wish to remove Flutter's multidex support, delete this entire file.
//
// Modifications to this file should be done in a copy under a different name
// as this file may be regenerated.
package io.flutter.app;
import android.app.Application;
import android.content.Context;
import androidx.annotation.CallSuper;
import androidx.multidex.MultiDex;
/**
* Extension of {@link android.app.Application}, adding multidex support.
*/
public class FlutterMultiDexApplication extends Application {
@Override
@CallSuper
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}

@ -1,4 +1,4 @@
package com.jointwtxt.goryon
package social.yarn.goryon
import io.flutter.embedding.android.FlutterActivity

@ -1,7 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jointwtxt.goryon">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="social.yarn.goryon">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>

@ -1,12 +1,12 @@
buildscript {
ext.kotlin_version = '1.3.50'
ext.kotlin_version = '1.7.0'
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
@ -14,7 +14,7 @@ buildscript {
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}

@ -1,2 +1,2 @@
json_key_file("../keys/android/service_account.json")
package_name("com.jointwtxt.goryon")
package_name("social.yarn.goryon")

@ -27,15 +27,20 @@ Submit to internal track in Google Play Store
```
fastlane android alpha
```
promote to alpha track in Google Play Store
Promote to alpha track in Google Play Store
### android beta
```
fastlane android beta
```
Promote to beta track in Google Play Store
### android production
```
fastlane android production
```
promote to production track in Google Play Store
Promote to production track in Google Play Store
----
This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run.
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
More information about fastlane can be found on [fastlane.tools](https://fastlane.tools).
The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools).

@ -1 +1,10 @@
Goryon for twt
Goryon is a Yarn.social client that connects to any Yarn.social pod (whether you run one yourself, use a friend’s or let us host it for you!). If you’ve ever used Twitter™ before you’ll feel right at home, BUT, there are important differences!
- We do not collect user data
- We do not modify your timeline
- We do not serve you ads
- Your social media is your own
Goryon is a Yarn.social `yarnd` API client that connects to any pod (what we call individual instances) allowing you to have all the benefits of traditional social media where you can follow your friends, post short-form content (Twts), long-form content (Blogs) read news and have meaningful discourse and exchange including photos, videos and audio!
Join Yarn.social today! Its FREE!

@ -1 +1 @@
Goryon for twt
A new way to Social Media! Ads Free, Run Your Own Pod. Start posting today!

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip

@ -0,0 +1 @@
include ':app'

BIN
dist/app-release.aab (Stored with Git LFS) vendored

Binary file not shown.

BIN
dist/app-release.apk (Stored with Git LFS) vendored

Binary file not shown.

@ -0,0 +1,5 @@
a5352c1f31b3c2a84ceed92d2180456c2f17e9337886281ecbc3f34883266ed9 app-release.aab
3264b580544359f9a29cf670c6580fbbe4bdabf062f2c34d336ed942545b6524 app-release.apk
c9294542c8377f4c96144cf1159314e690fbf8c9ea5d8394aa24c82aa079892f app-release.apk.~1~
04a65825331dfef9ad13da19fef2bd9c43bc4c980cab26361c208068677dbfe7 checksums.txt
f531c10ef026de162dd2684463ce5c345d2c7fe441536bfc863f4c1e3a13cae5 checksums.txt.asc

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEEwfFmQ63/YbSjnqP+rEwBTxRA69YFAmGaxN0ACgkQrEwBTxRA
69Zyywf/cy3SZyZLFA3IngNUb4WBRnsR+t2z7V4/xoL1LbCrUMMoLOAOEYNrLj/L
rjgp6YhC/1Cc5CB1KrcznNkZzurOGK/bVM1xAwLgVwlb+OxbWH/B4Y1ga/aUHUyY
yymWGlbP9ni16gWPEl722COFXDjd2lNRDGi7PdNDRgUHBu6QW9nVgf4RduJqCzU3
9lTpzjc29zQqYRYmekB7Gc8t+9PbkiftRLCkgteyh3zeKtvr3q7qNZXz3iAEW7mO
88dckt7wuvV/YSO4dn1sdlv2Qjp/XcDpZSVcxLCKNHCfgx6fw1/Uxb3Ib7P2EWtb
NeNTebkqHvfh05cLployhtExAZyaOw==
=ngTR
-----END PGP SIGNATURE-----

Binary file not shown.

After

Width:  |  Height:  |  Size: 1015 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

@ -0,0 +1,85 @@
PODS:
- Flutter (1.0.0)
- flutter_secure_storage (3.3.1):
- Flutter
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- image_picker_ios (0.0.1):
- Flutter
- package_info (0.0.1):
- Flutter
- package_info_plus (0.4.5):
- Flutter
- path_provider_ios (0.0.1):
- Flutter
- share (0.0.1):
- Flutter
- shared_preferences_ios (0.0.1):
- Flutter
- sqflite (0.0.2):
- Flutter
- FMDB (>= 2.7.5)
- url_launcher_ios (0.0.1):
- Flutter
- video_player_avfoundation (0.0.1):
- Flutter
DEPENDENCIES:
- Flutter (from `Flutter`)
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- package_info (from `.symlinks/plugins/package_info/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
- share (from `.symlinks/plugins/share/ios`)
- shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/ios`)
SPEC REPOS:
trunk:
- FMDB
EXTERNAL SOURCES:
Flutter:
:path: Flutter
flutter_secure_storage:
:path: ".symlinks/plugins/flutter_secure_storage/ios"
image_picker_ios:
:path: ".symlinks/plugins/image_picker_ios/ios"
package_info:
:path: ".symlinks/plugins/package_info/ios"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
path_provider_ios:
:path: ".symlinks/plugins/path_provider_ios/ios"
share:
:path: ".symlinks/plugins/share/ios"
shared_preferences_ios:
:path: ".symlinks/plugins/shared_preferences_ios/ios"
sqflite:
:path: ".symlinks/plugins/sqflite/ios"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
video_player_avfoundation:
:path: ".symlinks/plugins/video_player_avfoundation/ios"
SPEC CHECKSUMS:
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
image_picker_ios: b786a5dcf033a8336a657191401bfdf12017dabb
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
video_player_avfoundation: e489aac24ef5cf7af82702979ed16f2a5ef84cff
PODFILE CHECKSUM: cc1f88378b4bfcf93a6ce00d2c587857c6008d3b
COCOAPODS: 1.11.2

@ -155,7 +155,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1020;
LastUpgradeCheck = 1300;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
@ -321,6 +321,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@ -354,8 +355,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = "";
DEVELOPMENT_TEAM = 7AQ3N83FMC;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@ -370,8 +373,9 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.twtxtFlutter;
PRODUCT_BUNDLE_IDENTIFIER = social.yarn.goryon;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@ -401,6 +405,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@ -456,6 +461,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@ -491,8 +497,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = "";
DEVELOPMENT_TEAM = 7AQ3N83FMC;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@ -507,8 +515,9 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.twtxtFlutter;
PRODUCT_BUNDLE_IDENTIFIER = social.yarn.goryon;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
@ -522,8 +531,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = "";
DEVELOPMENT_TEAM = 7AQ3N83FMC;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@ -538,8 +549,9 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.twtxtFlutter;
PRODUCT_BUNDLE_IDENTIFIER = social.yarn.goryon;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";

@ -2,6 +2,6 @@
<Workspace
version = "1.0">
<FileRef
location = "group:Runner.xcodeproj">
location = "self:">
</FileRef>
</Workspace>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
LastUpgradeVersion = "1300"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@ -27,8 +27,6 @@
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"