Skip to content

Commit

Permalink
access realtime database
Browse files Browse the repository at this point in the history
  • Loading branch information
panasetskaya committed Aug 25, 2023
1 parent c151426 commit 38db4ed
Show file tree
Hide file tree
Showing 8 changed files with 98 additions and 17 deletions.
17 changes: 0 additions & 17 deletions .idea/deploymentTargetDropDown.xml

This file was deleted.

9 changes: 9 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,15 @@ dependencies {
implementation 'com.google.firebase:firebase-inappmessaging-ktx'
implementation 'com.google.firebase:firebase-inappmessaging-display-ktx'
implementation 'com.google.android.gms:play-services-auth:20.6.0'
implementation 'com.google.firebase:firebase-database-ktx'

//network
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0'
implementation "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0"
implementation "com.squareup.okhttp3:okhttp:4.7.2"





Expand Down
9 changes: 9 additions & 0 deletions app/google-services.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"project_info": {
"project_number": "33541923009",
"firebase_url": "https://mandarindoku-default-rtdb.europe-west1.firebasedatabase.app",
"project_id": "mandarindoku",
"storage_bucket": "mandarindoku.appspot.com"
},
Expand All @@ -21,6 +22,14 @@
"certificate_hash": "0d0af5af57aa5f50ae13eeb2018a0f83cb0ea97a"
}
},
{
"client_id": "33541923009-3molm15640q17cqv5mka0mlccgqstmn7.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.panasetskaia.charactersudoku",
"certificate_hash": "d4e44327d4092b367ecf5ca39e190bd8ededa9cc"
}
},
{
"client_id": "33541923009-bh0c1p63vauoq76mafi8aafbogsqnj39.apps.googleusercontent.com",
"client_type": 3
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.panasetskaia.charactersudoku.data.remote

import com.panasetskaia.charactersudoku.domain.entities.ChineseCharacter
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json

object Jsoner {
// val jsonString = """{
// "0": {
// "character": "五",
// "pinyin": "wǔ",
// "translation": "five",
// "usages": "五星级 (five-star) hotel",
// "category": "new HSK1",
// "id": 0,
// "isChosen": false
// },
// "1": {
// "character": "七",
// "pinyin": "qī",
// "translation": "seven",
// "usages": "七天 (seven days)",
// "category": "new HSK1",
// "id": 0,
// "isChosen": false
// },
// "2": {
// "character": "开",
// "pinyin": "kāi",
// "translation": "to open",
// "usages": "开心 (happy), 开车 (drive a car)",
// "category": "new HSK1",
// "id": 0,
// "isChosen": false
// }
// }"""
//
//
// internal inline fun <reified R : Any> String.convertToDataClass() =
// Json {
// ignoreUnknownKeys = true
// }.decodeFromString<List<R>>(this)
//
// fun giveMeList(): List<ChineseCharacter> {
// val res = Json.decodeFromString<ChineseCharacter>(jsonString)
// return res
// }

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package com.panasetskaia.charactersudoku.data.repository

import android.app.Application
import android.os.Environment
import com.google.firebase.database.ktx.database
import com.google.firebase.ktx.Firebase
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.panasetskaia.charactersudoku.data.database.board.BoardDao
Expand Down Expand Up @@ -112,6 +114,7 @@ class CharacterSudokuRepositoryImpl @Inject constructor(

override suspend fun getSavedGame() {
try {

val boardDbModel = boardDao.getSavedGame()
if (boardDbModel != null) {
val nineChars = mutableListOf<String>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,5 @@ interface CharacterSudokuRepository {
suspend fun saveDictToJson(): String
suspend fun getCharacterByChinese(chinese: String): ChineseCharacter?


}
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,14 @@ import android.os.SystemClock
import android.view.View
import android.view.animation.AccelerateInterpolator
import android.widget.Button
import android.widget.Toast
import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import com.google.android.material.bottomsheet.BottomSheetDialog
import com.google.firebase.database.ktx.database
import com.google.firebase.ktx.Firebase
import com.panasetskaia.charactersudoku.R
import com.panasetskaia.charactersudoku.databinding.BottomSheetChooseLvlAndCategoryBinding
import com.panasetskaia.charactersudoku.databinding.BottomSheetConfirmRefreshBinding
Expand All @@ -25,6 +28,7 @@ import com.panasetskaia.charactersudoku.presentation.dict_screen.SpinnerAdapter
import com.panasetskaia.charactersudoku.presentation.root.MainActivity
import com.panasetskaia.charactersudoku.presentation.viewmodels.ViewModelFactory
import com.panasetskaia.charactersudoku.utils.getAppComponent
import com.panasetskaia.charactersudoku.utils.myLog
import com.panasetskaia.charactersudoku.utils.toast
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
Expand Down Expand Up @@ -132,6 +136,7 @@ class GameFragment : BaseFragment<FragmentGameBinding, GameViewModel>(FragmentGa
}
is PLAYING -> {
play(it.currentBoard, buttons)
logRealtmeDatabseResults()
}
is WIN -> {
celebrate()
Expand Down Expand Up @@ -393,6 +398,10 @@ class GameFragment : BaseFragment<FragmentGameBinding, GameViewModel>(FragmentGa
}
}

//todo: тестовая функция, удалить
private fun logRealtmeDatabseResults() {
viewModel.testRealtimeDB()
}
}


Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
package com.panasetskaia.charactersudoku.presentation.game_screen

import androidx.lifecycle.viewModelScope
import com.google.firebase.database.ktx.database
import com.google.firebase.ktx.Firebase
import com.panasetskaia.charactersudoku.R
import com.panasetskaia.charactersudoku.domain.SUCCESS
import com.panasetskaia.charactersudoku.domain.entities.*
import com.panasetskaia.charactersudoku.domain.usecases.*
import com.panasetskaia.charactersudoku.presentation.base.BaseViewModel
import com.panasetskaia.charactersudoku.presentation.root.MainActivity
import com.panasetskaia.charactersudoku.utils.Event
import com.panasetskaia.charactersudoku.utils.myLog
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.channels.BufferOverflow
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.trySendBlocking
Expand Down Expand Up @@ -267,6 +271,20 @@ class GameViewModel @Inject constructor(
}
}

//todo: тестовая функция, удалить
fun testRealtimeDB() {
viewModelScope.launch (Dispatchers.IO) {
val rltimeDatabase = Firebase.database.reference
rltimeDatabase.child("dictionaries").child("hsk1_en").get().addOnSuccessListener {
myLog("firebase: Got value ${it.value}")
_toastFlow.value = Event("firebase: Got value ${it.value}")
}.addOnFailureListener{
myLog("firebase: Error getting data: $it")
_toastFlow.value = Event("firebase: Error getting data: $it")
}
}
}

companion object {
internal const val EMPTY_CELLS_MINIMUM = 8
private const val EMPTY_CELL = "0"
Expand Down

0 comments on commit 38db4ed

Please sign in to comment.