aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml17
-rw-r--r--Client/BrzoDoLokacije/app/build.gradle1
-rw-r--r--Client/BrzoDoLokacije/app/libs/signalr-client-sdk-android.jarbin0 -> 57824 bytes
-rw-r--r--Client/BrzoDoLokacije/app/libs/signalr-client-sdk.jarbin0 -> 497821 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml17
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ChatActivity.kt17
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt7
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/DBHelper.kt63
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/SignalRListener.kt32
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_chat.xml9
10 files changed, 154 insertions, 9 deletions
diff --git a/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml b/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..d34d986
--- /dev/null
+++ b/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="deploymentTargetDropDown">
+ <targetSelectedWithDropDown>
+ <Target>
+ <type value="QUICK_BOOT_TARGET" />
+ <deviceKey>
+ <Key>
+ <type value="VIRTUAL_DEVICE_PATH" />
+ <value value="C:\Users\PC\.android\avd\Copy_of_Pixel_2_API_32.avd" />
+ </Key>
+ </deviceKey>
+ </Target>
+ </targetSelectedWithDropDown>
+ <timeTargetWasSelectedWithDropDown value="2022-11-20T22:15:01.646388600Z" />
+ </component>
+</project> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/build.gradle b/Client/BrzoDoLokacije/app/build.gradle
index e1ad943..8437053 100644
--- a/Client/BrzoDoLokacije/app/build.gradle
+++ b/Client/BrzoDoLokacije/app/build.gradle
@@ -54,6 +54,7 @@ dependencies {
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation "androidx.paging:paging-runtime:3.0.0-alpha03"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1"
+ implementation 'com.microsoft.signalr:signalr:6.0.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
diff --git a/Client/BrzoDoLokacije/app/libs/signalr-client-sdk-android.jar b/Client/BrzoDoLokacije/app/libs/signalr-client-sdk-android.jar
new file mode 100644
index 0000000..967d741
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/libs/signalr-client-sdk-android.jar
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/libs/signalr-client-sdk.jar b/Client/BrzoDoLokacije/app/libs/signalr-client-sdk.jar
new file mode 100644
index 0000000..f736f64
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/libs/signalr-client-sdk.jar
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
index 1f19b5c..8469bd3 100644
--- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
+++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools" >
+ xmlns:tools="http://schemas.android.com/tools">
<!-- DOZVOLE -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
@@ -35,10 +35,17 @@
android:supportsRtl="true"
android:theme="@style/Theme.BrzoDoLokacije"
android:usesCleartextTraffic="true"
- tools:targetApi="31" >
+ tools:targetApi="31">
+ <activity
+ android:name=".Activities.ChatActivity"
+ android:exported="false">
+ <meta-data
+ android:name="android.app.lib_name"
+ android:value="" />
+ </activity>
<activity
android:name=".MapsActivity"
- android:exported="false" >
+ android:exported="false">
<meta-data
android:name="android.app.lib_name"
android:value="" />
@@ -63,7 +70,7 @@
<activity
android:name=".Activities.SplashPage"
android:exported="true"
- android:screenOrientation="portrait" >
+ android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -94,7 +101,7 @@
android:name="androidx.core.content.FileProvider"
android:authorities="com.example.android.fileprovider"
android:exported="false"
- android:grantUriPermissions="true" >
+ android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ChatActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ChatActivity.kt
new file mode 100644
index 0000000..96c8ea7
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ChatActivity.kt
@@ -0,0 +1,17 @@
+package com.example.brzodolokacije.Activities
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import com.example.brzodolokacije.R
+import com.example.brzodolokacije.chat.DBHelper
+
+class ChatActivity : AppCompatActivity() {
+
+ private var dbConnection:DBHelper?=null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_chat)
+ dbConnection= DBHelper(this@ChatActivity,null)
+ }
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt
index 0c43088..515a41b 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt
@@ -1,16 +1,15 @@
package com.example.brzodolokacije
import android.content.Intent
-import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
-import android.util.Log
import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
import com.auth0.android.jwt.JWT
import com.example.brzodolokacije.Activities.ActivityLoginRegister
import com.example.brzodolokacije.Activities.NavigationActivity
import com.example.brzodolokacije.Services.RetrofitHelper
import com.example.brzodolokacije.Services.SharedPreferencesHelper
-import com.example.brzodolokacije.Services.authCheck
+import com.example.brzodolokacije.chat.SignalRListener
import retrofit2.Call
import retrofit2.Response
@@ -22,7 +21,7 @@ class MainActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val intent:Intent
-
+ SignalRListener.getInstance(this@MainActivity)
if(checkLoggedIn()) {
intent = Intent(this, NavigationActivity::class.java)
}
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/DBHelper.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/DBHelper.kt
new file mode 100644
index 0000000..60e870e
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/DBHelper.kt
@@ -0,0 +1,63 @@
+package com.example.brzodolokacije.chat
+
+import android.content.Context
+import android.database.Cursor
+import android.database.sqlite.SQLiteDatabase
+import android.database.sqlite.SQLiteOpenHelper
+
+class DBHelper :
+ SQLiteOpenHelper {
+
+ var db:SQLiteDatabase?=null
+
+ constructor(context: Context, factory: SQLiteDatabase.CursorFactory?):super(context, DATABASE_NAME, factory,2){
+ db=readableDatabase
+ }
+
+ companion object{
+ //database name
+ private val DATABASE_NAME = "chatHistory"
+ //database tables
+ val CONTACTS_TABLE_NAME = "contacts"
+ val MESSAGES_TABLE_NAME = "messages"
+ }
+
+ override fun onCreate(db: SQLiteDatabase?) {
+ if(!doesTableExist(CONTACTS_TABLE_NAME,db)){
+ var sql:String="CREATE TABLE "+ CONTACTS_TABLE_NAME+"(" +
+ "userId" +"TEXT PRIMARY KEY,"+
+ "read" +"INT"+
+ ")"
+ db?.execSQL(sql)
+ }
+ if(!doesTableExist(MESSAGES_TABLE_NAME,db)){
+ var sql:String="CREATE TABLE "+ MESSAGES_TABLE_NAME+"(" +
+ "senderId" +"TEXT,"+
+ "receiverId"+"TEXT,"+
+ "message" +"TEXT,"+
+ "dateTime"+"TEXT"+
+ ")"
+ db?.execSQL(sql)
+ }
+ }
+
+ fun doesTableExist(tableName:String,db: SQLiteDatabase?):Boolean{
+ if(db!=null){
+ var sqlString:String="select DISTINCT tbl_name from sqlite_master where tbl_name = '\"+tableName+\"'"
+ var cursor: Cursor=db.rawQuery(sqlString,null)
+ if(cursor!=null){
+ if(cursor.count>0){
+ return true
+ }
+ return false
+ }
+ }
+ return false
+ }
+
+ override fun onUpgrade(db: SQLiteDatabase?, p1: Int, p2: Int) {
+ db?.execSQL("DROP TABLE IF EXISTS " + CONTACTS_TABLE_NAME)
+ db?.execSQL("DROP TABLE IF EXISTS " + MESSAGES_TABLE_NAME)
+ onCreate(db)
+ }
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/SignalRListener.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/SignalRListener.kt
new file mode 100644
index 0000000..ee0c86d
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/SignalRListener.kt
@@ -0,0 +1,32 @@
+package com.example.brzodolokacije.chat
+
+import android.app.Activity
+import android.util.Log
+import com.example.brzodolokacije.Services.RetrofitHelper
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
+import com.microsoft.signalr.HubConnection
+import com.microsoft.signalr.HubConnectionBuilder
+import io.reactivex.rxjava3.core.Single
+
+class SignalRListener private constructor(val activity: Activity){
+ private var hubConnection:HubConnection
+ init{
+ hubConnection=HubConnectionBuilder.create(RetrofitHelper.baseUrl+"/chathub")
+ .withAccessTokenProvider(Single.defer{ Single.just(SharedPreferencesHelper.getValue("jwt", activity).toString())})
+ .build()
+ hubConnection.start().blockingAwait()
+ Log.d("main", hubConnection.connectionState.toString())
+ }
+
+
+ companion object{
+ private var instance:SignalRListener?=null
+ fun getInstance(activity: Activity):SignalRListener{
+ if(instance==null){
+ instance= SignalRListener(activity)
+ }
+ return instance as SignalRListener
+ }
+ }
+
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_chat.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_chat.xml
new file mode 100644
index 0000000..093a95a
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_chat.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".Activities.ChatActivity">
+
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file