Compare commits

...

4 Commits

Author SHA1 Message Date
67f2a6b9c5 added schema from noise.sfs 2021-12-20 16:46:02 +01:00
845c969c46 apollo upgrade to version 3 2021-12-20 08:44:27 +01:00
1885ba5477 All correct dependencies now added 2021-12-13 15:00:46 +01:00
ee32ac2093 Update 2021-10-16 22:48:44 +02:00
4 changed files with 216 additions and 22 deletions

3
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

View File

@@ -1,22 +1,17 @@
plugins {
id 'com.android.application'
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 {
compileSdkVersion 30
buildToolsVersion "30.0.3"
compileSdk 31
defaultConfig {
applicationId "org.dnss.sfs.git.wdg.noise"
minSdkVersion 21
targetSdkVersion 30
applicationId "org.ddnss.sfs.git.wdg.test"
minSdk 24
targetSdk 31
versionCode 1
versionName "1.0"
@@ -41,23 +36,53 @@ android {
}
}
apollo {
packageName.set("org.ddnss.sfs.git.wdg.noise")
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'
implementation 'androidx.navigation:navigation-fragment-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.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
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")
}

View 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
}

View File

@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
apollo_version = '2.5.9'
apollo_version = '2.5.11'
}
ext.kotlin_version = "1.5.20"
repositories {
@@ -9,7 +9,7 @@ buildscript {
mavenCentral()
}
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"
// NOTE: Do not place your application dependencies here; they belong