Compare commits
4 Commits
noiseUI
...
67f2a6b9c5
Author | SHA1 | Date | |
---|---|---|---|
67f2a6b9c5 | |||
845c969c46 | |||
1885ba5477 | |||
ee32ac2093 |
3
.idea/.gitignore
generated
vendored
Normal file
3
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
@@ -1,22 +1,17 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'com.android.application'
|
id 'com.android.application'
|
||||||
id 'kotlin-android'
|
id 'kotlin-android'
|
||||||
id ("com.apollographql.apollo").version("$apollo_version")
|
id("com.apollographql.apollo3").version("3.0.0")
|
||||||
}
|
}
|
||||||
|
|
||||||
apollo {
|
|
||||||
// instruct the compiler to generate Kotlin models
|
|
||||||
generateKotlinModels.set(true)
|
|
||||||
}
|
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 30
|
compileSdk 31
|
||||||
buildToolsVersion "30.0.3"
|
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "org.dnss.sfs.git.wdg.noise"
|
applicationId "org.ddnss.sfs.git.wdg.test"
|
||||||
minSdkVersion 21
|
minSdk 24
|
||||||
targetSdkVersion 30
|
targetSdk 31
|
||||||
versionCode 1
|
versionCode 1
|
||||||
versionName "1.0"
|
versionName "1.0"
|
||||||
|
|
||||||
@@ -41,23 +36,53 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
apollo {
|
||||||
|
packageName.set("org.ddnss.sfs.git.wdg.noise")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
implementation 'androidx.core:core-ktx:1.7.0'
|
||||||
implementation 'androidx.core:core-ktx:1.6.0'
|
implementation 'androidx.appcompat:appcompat:1.4.0'
|
||||||
implementation 'androidx.appcompat:appcompat:1.3.0'
|
|
||||||
implementation 'com.google.android.material:material:1.4.0'
|
implementation 'com.google.android.material:material:1.4.0'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
|
||||||
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
|
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.0'
|
||||||
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
|
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'
|
||||||
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
|
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
|
||||||
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
|
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
|
||||||
// The core runtime dependencies
|
|
||||||
implementation("com.apollographql.apollo:apollo-runtime:$apollo_version")
|
|
||||||
// Coroutines extensions for easier asynchronicity handling
|
|
||||||
implementation("com.apollographql.apollo:apollo-coroutines-support:$apollo_version")
|
|
||||||
testImplementation 'junit:junit:4.+'
|
testImplementation 'junit:junit:4.+'
|
||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
def room_version = "2.3.0"
|
||||||
|
|
||||||
|
implementation "androidx.room:room-runtime:$room_version"
|
||||||
|
annotationProcessor "androidx.room:room-compiler:$room_version"
|
||||||
|
|
||||||
|
// optional - RxJava2 support for Room
|
||||||
|
implementation "androidx.room:room-rxjava2:$room_version"
|
||||||
|
|
||||||
|
// optional - RxJava3 support for Room
|
||||||
|
implementation "androidx.room:room-rxjava3:$room_version"
|
||||||
|
|
||||||
|
// optional - Guava support for Room, including Optional and ListenableFuture
|
||||||
|
implementation "androidx.room:room-guava:$room_version"
|
||||||
|
|
||||||
|
// optional - Test helpers
|
||||||
|
testImplementation "androidx.room:room-testing:$room_version"
|
||||||
|
|
||||||
|
// optional - Paging 3 Integration
|
||||||
|
implementation "androidx.room:room-paging:2.4.0-rc01"
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
// ...
|
||||||
|
implementation("com.apollographql.apollo3:apollo-runtime:3.0.0")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
166
app/src/main/graphql/org/ddnss/sfs/schema.graphqls
Normal file
166
app/src/main/graphql/org/ddnss/sfs/schema.graphqls
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
type Message {
|
||||||
|
id: ID!
|
||||||
|
|
||||||
|
timestamp: String!
|
||||||
|
|
||||||
|
sender: ID!
|
||||||
|
|
||||||
|
msgType: MsgType!
|
||||||
|
|
||||||
|
content: String
|
||||||
|
|
||||||
|
hideFor: [ID!]
|
||||||
|
|
||||||
|
seenBy: [ID!]!
|
||||||
|
}
|
||||||
|
|
||||||
|
type ExternalServersPreferences {
|
||||||
|
privacyPreferences: PrivacyPreferences!
|
||||||
|
|
||||||
|
externalServers: RestrictionPolicy!
|
||||||
|
|
||||||
|
externalServersLimit: [Url!]!
|
||||||
|
}
|
||||||
|
|
||||||
|
type Mutation {
|
||||||
|
newUser(newUser: NewUser!): ID!
|
||||||
|
|
||||||
|
newChat(user: ID!, passwordHash: String!, with: ID!): ID!
|
||||||
|
|
||||||
|
newGroupChat(user: ID!, passwordHash: String!, title: String!, description: String, with: [ID!]!): ID!
|
||||||
|
|
||||||
|
sendMessage(user: ID!, passwordHash: String!, chat: ID!, msg: MessageInput!): ID!
|
||||||
|
}
|
||||||
|
|
||||||
|
enum RestrictionPolicy {
|
||||||
|
EVERYONE
|
||||||
|
|
||||||
|
EXCLUDING
|
||||||
|
|
||||||
|
INCLUDING
|
||||||
|
|
||||||
|
NONE
|
||||||
|
}
|
||||||
|
|
||||||
|
type NotificationPreferences {
|
||||||
|
lockDetails: Boolean!
|
||||||
|
|
||||||
|
doNotDisturb: Boolean!
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
DateTime
|
||||||
|
"""
|
||||||
|
scalar DateTimeUtc
|
||||||
|
|
||||||
|
"""
|
||||||
|
Url
|
||||||
|
"""
|
||||||
|
scalar Url
|
||||||
|
|
||||||
|
type Query {
|
||||||
|
getUserID(username: String!): ID!
|
||||||
|
|
||||||
|
isUsernameUsed(username: String!): Boolean!
|
||||||
|
|
||||||
|
users: [User!]!
|
||||||
|
|
||||||
|
userPreferences(id: ID!, passwordHash: String!): UserPreferences!
|
||||||
|
|
||||||
|
chats(user: ID!, passwordHash: String!): [Chat!]!
|
||||||
|
|
||||||
|
groupChats(user: ID!, passwordHash: String!): [GroupChat!]!
|
||||||
|
|
||||||
|
getMessages(user: ID!, passwordHash: String!, chat: ID!, lastMsg: ID, limit: Int): [Message!]!
|
||||||
|
}
|
||||||
|
|
||||||
|
type SecurityPreferences {
|
||||||
|
accountTokens: [ID!]!
|
||||||
|
|
||||||
|
passwordHash: String!
|
||||||
|
}
|
||||||
|
|
||||||
|
type PrivacyPreferences {
|
||||||
|
discovery: RestrictionPolicy!
|
||||||
|
|
||||||
|
discoveryUserLimit: [String!]!
|
||||||
|
|
||||||
|
discoveryServerLimit: [Url!]!
|
||||||
|
|
||||||
|
lastSeen: RestrictionPolicy!
|
||||||
|
|
||||||
|
lastSeenUserLimit: [String!]!
|
||||||
|
|
||||||
|
lastSeenServerLimit: [Url!]!
|
||||||
|
|
||||||
|
lastSeenCourse: Boolean!
|
||||||
|
|
||||||
|
info: RestrictionPolicy!
|
||||||
|
|
||||||
|
infoUserLimit: [String!]!
|
||||||
|
|
||||||
|
infoServerLimit: [Url!]!
|
||||||
|
}
|
||||||
|
|
||||||
|
type UserPreferences {
|
||||||
|
privacyPreferences: PrivacyPreferences!
|
||||||
|
|
||||||
|
notificationPreferences: NotificationPreferences!
|
||||||
|
|
||||||
|
securityPreferences: SecurityPreferences!
|
||||||
|
|
||||||
|
externalServersPreferences: ExternalServersPreferences!
|
||||||
|
}
|
||||||
|
|
||||||
|
input NewUser {
|
||||||
|
userName: String!
|
||||||
|
|
||||||
|
displayName: String
|
||||||
|
|
||||||
|
passwordHash: String!
|
||||||
|
}
|
||||||
|
|
||||||
|
input MessageInput {
|
||||||
|
msgType: MsgType!
|
||||||
|
|
||||||
|
content: String
|
||||||
|
}
|
||||||
|
|
||||||
|
type User {
|
||||||
|
id: ID!
|
||||||
|
|
||||||
|
userName: String!
|
||||||
|
|
||||||
|
displayName: String
|
||||||
|
|
||||||
|
activated: Boolean!
|
||||||
|
|
||||||
|
created: DateTimeUtc!
|
||||||
|
|
||||||
|
lastOnline: DateTimeUtc
|
||||||
|
}
|
||||||
|
|
||||||
|
enum MsgType {
|
||||||
|
TEXT
|
||||||
|
}
|
||||||
|
|
||||||
|
type Chat {
|
||||||
|
id: ID!
|
||||||
|
|
||||||
|
users: [ID!]!
|
||||||
|
}
|
||||||
|
|
||||||
|
type GroupChat {
|
||||||
|
id: ID!
|
||||||
|
|
||||||
|
title: String!
|
||||||
|
|
||||||
|
description: String
|
||||||
|
|
||||||
|
users: [ID!]!
|
||||||
|
}
|
||||||
|
|
||||||
|
schema {
|
||||||
|
query: Query
|
||||||
|
mutation: Mutation
|
||||||
|
}
|
@@ -1,7 +1,7 @@
|
|||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||||
buildscript {
|
buildscript {
|
||||||
ext {
|
ext {
|
||||||
apollo_version = '2.5.9'
|
apollo_version = '2.5.11'
|
||||||
}
|
}
|
||||||
ext.kotlin_version = "1.5.20"
|
ext.kotlin_version = "1.5.20"
|
||||||
repositories {
|
repositories {
|
||||||
@@ -9,7 +9,7 @@ buildscript {
|
|||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:7.0.2'
|
classpath 'com.android.tools.build:gradle:7.0.4'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
|
Reference in New Issue
Block a user