Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
daca60c
ビルドにマップ関連の依存関係などを追加しました
scitheAX Sep 16, 2022
2668460
mapを追加してManifestが少しだけ偏向しました
scitheAX Sep 16, 2022
ce0cbc8
MapsFragmentを追加し、viewModelも追加しました
scitheAX Sep 16, 2022
dcd36b0
DirectionAPIの処理を行うクラスを追加しました
scitheAX Sep 17, 2022
9e79296
微修正&コメントを追加
scitheAX Sep 18, 2022
a083b13
Merge branch 'dev' into add_traial
scitheAX Sep 18, 2022
7fbaad8
ビルドにマップ関連の依存関係などを追加しました
scitheAX Sep 16, 2022
90c1319
MapsFragmentを追加し、viewModelも追加しました
scitheAX Sep 16, 2022
c355f0b
DirectionAPIの処理を行うクラスを追加しました
scitheAX Sep 17, 2022
e52fa22
微修正&コメントを追加
scitheAX Sep 18, 2022
b2115a7
build.gradleの依存関係を追加しました
scitheAX Sep 18, 2022
a614611
Merge branch 'add_traial' into feature/create_trial
scitheAX Sep 18, 2022
107a089
追加し忘れていたbuild.gradleの依存関係を追加しました
scitheAX Sep 18, 2022
4c27e6f
DirectionsApiHelper.ktのimportを最適化しました
scitheAX Sep 20, 2022
381f0af
AddTrialMapsViewModel.ktでリポジトリのcreatTrialメソッドを呼び出すようにしました
scitheAX Sep 24, 2022
660a6e3
activity_main.xmlのpaddingTopを削除しました
scitheAX Oct 1, 2022
f8c542a
Trialのoriginを設定するAddTrialOriginFragmentとViewModelを追加しました
scitheAX Oct 1, 2022
78b8a16
Trialのdestを設定するAddTrialDestFragmentとViewModelを追加しました
scitheAX Oct 1, 2022
1a7ab69
AddTrialFragment.ktとAddTrialViewModel.ktをトライアル制作画面に遷移できるようにボタンを追加しました
scitheAX Oct 1, 2022
4eaf762
AddTrialMapsFragment.ktとAddTrialMapsViewModel.ktをトライアルのリポジトリへの追加、スタート…
scitheAX Oct 1, 2022
6414561
AddTrialOriginFragmentとAddTrialDestFragmentのlayoutファイルを追加しました
scitheAX Oct 1, 2022
ba4751f
AddTrialMapsFragmentに遷移用のボタンを追加しました
scitheAX Oct 1, 2022
42be093
navigation用のCreateTrialFragment.ktを追加して、AddTrialFragmentを参照していたファイルの参…
scitheAX Oct 1, 2022
439e4f5
navigation関連の依存関係をbuild.gradleに追加しました
scitheAX Oct 1, 2022
08e6ecb
commitし忘れていたAddTrialFragmentのlayoutファイルを追加しました
scitheAX Oct 1, 2022
b8c7713
waypointなしでDirectionApiを使用するメソッドをDirectionsApiHelper.ktに追加しました
scitheAX Oct 1, 2022
245f70c
作成したトライアルのリストを表示するRecyclerViewのAdapterを追加しました
scitheAX Oct 3, 2022
9c384ee
作成したトライアルのリストを表示するRecyclerViewのitemのlayoutを追加しました
scitheAX Oct 3, 2022
541955f
トライアルの詳細を表示するFragmentを追加しました
scitheAX Oct 3, 2022
9d5719b
AddTrialFragment.ktとAddTrialViewModel.ktに作成したトライアルのリストをRecyclerViewで表…
scitheAX Oct 3, 2022
d46b26e
画面ごとにFragmentとViewModelをクラス分けしました
scitheAX Oct 4, 2022
6c04069
微修正&コメントを追加
scitheAX Sep 18, 2022
ad86bce
ビルドにマップ関連の依存関係などを追加しました
scitheAX Sep 16, 2022
d53a155
MapsFragmentを追加し、viewModelも追加しました
scitheAX Sep 16, 2022
4ac5ca7
DirectionAPIの処理を行うクラスを追加しました
scitheAX Sep 17, 2022
dbd7a06
微修正&コメントを追加
scitheAX Sep 18, 2022
88b41d6
build.gradleの依存関係を追加しました
scitheAX Sep 18, 2022
8738637
追加し忘れていたbuild.gradleの依存関係を追加しました
scitheAX Sep 18, 2022
076ca71
DirectionsApiHelper.ktのimportを最適化しました
scitheAX Sep 20, 2022
661056c
AddTrialMapsViewModel.ktでリポジトリのcreatTrialメソッドを呼び出すようにしました
scitheAX Sep 24, 2022
27bc09e
Trialのoriginを設定するAddTrialOriginFragmentとViewModelを追加しました
scitheAX Oct 1, 2022
6451360
Trialのdestを設定するAddTrialDestFragmentとViewModelを追加しました
scitheAX Oct 1, 2022
a21f016
AddTrialFragment.ktとAddTrialViewModel.ktをトライアル制作画面に遷移できるようにボタンを追加しました
scitheAX Oct 1, 2022
3f684b7
AddTrialMapsFragment.ktとAddTrialMapsViewModel.ktをトライアルのリポジトリへの追加、スタート…
scitheAX Oct 1, 2022
090c98b
AddTrialOriginFragmentとAddTrialDestFragmentのlayoutファイルを追加しました
scitheAX Oct 1, 2022
75ac982
AddTrialMapsFragmentに遷移用のボタンを追加しました
scitheAX Oct 1, 2022
c5b3917
navigation用のCreateTrialFragment.ktを追加して、AddTrialFragmentを参照していたファイルの参…
scitheAX Oct 1, 2022
28588c6
navigation関連の依存関係をbuild.gradleに追加しました
scitheAX Oct 1, 2022
04729ef
commitし忘れていたAddTrialFragmentのlayoutファイルを追加しました
scitheAX Oct 1, 2022
8b539be
waypointなしでDirectionApiを使用するメソッドをDirectionsApiHelper.ktに追加しました
scitheAX Oct 1, 2022
61e2e4e
トライアルの詳細を表示するFragmentを追加しました
scitheAX Oct 3, 2022
d988a80
AddTrialFragment.ktとAddTrialViewModel.ktに作成したトライアルのリストをRecyclerViewで表…
scitheAX Oct 3, 2022
8d9c651
画面ごとにFragmentとViewModelをフォルダ分けしました。TrialDetailFragmentも実装しました。
scitheAX Oct 4, 2022
c092dbb
CreatedTrialAdapter.ktの冗長な記述を削除しました
scitheAX Oct 4, 2022
0f26447
AddTrial関連のクラスにコメントを追加し、importを最適化しました。
scitheAX Oct 5, 2022
ba8611a
HomeFragment.ktにmapを追加し、トライアルのマーカーを表示できるようにしました。そして、マーカーをクリックしたら、そのトラ…
scitheAX Oct 5, 2022
e770c79
HomeFragmentのnavigationとnavGraph用のfragmentを実装しました。bottomNavigationの遷移…
scitheAX Oct 5, 2022
a8309bc
CheckRecordListFragmentとそのViewModelを実装しました。
scitheAX Oct 5, 2022
9863bdf
RecordRepositoryに自分のRecordを取得するgetMyRecordsとRecordRepositoryDummyを追加し…
scitheAX Oct 5, 2022
be394ca
Recordの詳細画面へ遷移するためのNavGraphFragmentを作成しました。そして、navigationリソースも作成しました
scitheAX Oct 5, 2022
d1a6a50
Recordの詳細画面のFragmentを作成しました。実装はしていません
scitheAX Oct 5, 2022
223d839
HomeFragmentで現在地の表示が出来るようにしました
scitheAX Oct 6, 2022
1906594
themes.xmlをbrand_tameを使うように変更しました
scitheAX Oct 6, 2022
337d7a8
Record.ktにtrialIdとtrialName、recordIdを追加しました。
scitheAX Oct 6, 2022
73c0a0a
RecordRepository.ktにrecordIdからRecordを取得する関数getRecordByRecordIdを追加しました
scitheAX Oct 6, 2022
8ac8f5f
RecordRepositoryDummy.ktのtestDataを変更し、getRecordByRecordIdの実装を追加しました
scitheAX Oct 6, 2022
8f14c09
トライアルの詳細画面で、トライアルの距離が表示されるようにしました
scitheAX Oct 6, 2022
178de06
レコードの詳細画面への引数を追加しました。recordIdとtrialIdを追加
scitheAX Oct 6, 2022
4d0fbbb
レコードの詳細画面をタイム、距離、スピード、コースが表示できるようにしました。
scitheAX Oct 6, 2022
1d80f89
RecordRepositoryのgetRecordsをtestDataを取得できるように実装しました。
scitheAX Oct 6, 2022
5b75f70
RecordDetailFragmentにRecordRankingFragmentへ遷移する用のButtonを追加しました
scitheAX Oct 6, 2022
025e2ed
選択したトライアルのランキングを表示するRecordRankingFragmentを作成しました。RecordRepositoryのget…
scitheAX Oct 6, 2022
771b8ca
RecordRankingViewModel.ktのimportを最適化しました
scitheAX Oct 6, 2022
be6843f
TrialDetailFragmentからもランキングを確認出来るようにボタンを作成しました
scitheAX Oct 6, 2022
32126a1
RecordRepositoryDummyにランキングのソート機能を追加しました。
scitheAX Oct 6, 2022
3d90730
Merge remote-tracking branch 'origin/dev' into feature/create_trial
scitheAX Oct 7, 2022
446d4e6
トライアル作成画面のマーカを変更しました。また、AlertDialogも追加しました
scitheAX Oct 14, 2022
581ee21
colorにbrand_tameを追加しました
scitheAX Oct 14, 2022
6cff93d
マーカのベクターアセットを追加しました
scitheAX Oct 14, 2022
917e26f
waypointsのマーカのベクターアセットを追加しました。
scitheAX Oct 14, 2022
d032cd7
時間のフォーマットを作るTimeFormat.ktと、ベクターアセットをビットマップに変換するConverterVectorToBitma…
scitheAX Oct 14, 2022
9e01ecd
trialとrecordとrankingのlayoutファイルと、recordとlistのadapterを変更しました
scitheAX Oct 14, 2022
203df2b
under_line.xmlのdrawableリソースを追加しました
scitheAX Oct 14, 2022
9a83fea
HomeFragment.ktのマーカーを変更しました
scitheAX Oct 14, 2022
bbf3238
TrialDetailFragmentとRecordDetailFragmentのdistanceの値が上手く表示されないバグを修正しました
scitheAX Oct 14, 2022
edb0ecb
MarathonRecordにdistanceのパラメータを追加しました。
scitheAX Oct 14, 2022
1b1d0dd
TrialRepositoryDummyのtestDataの値をそれっぽくしました。
scitheAX Oct 14, 2022
9ef6279
作成したトライアルのリストのUIを変更しました。
scitheAX Oct 14, 2022
2e3dd9b
HomeFragmentで現在地にmapを移動させるようにしました
scitheAX Oct 14, 2022
cfc408a
AddTrialOriginFragmentでmapを現在地に移動するようにしました
scitheAX Oct 14, 2022
d400061
CheckRecordListFragmentのUIを変更しました
scitheAX Oct 14, 2022
e546d89
RecordDetailFragmentのdistanceの値が増え続けるバグを修正しました
scitheAX Oct 14, 2022
54bf628
トライアル作成関連のファイルのpackage名をaddtrialからadd_trialに変更しました
scitheAX Oct 14, 2022
a97ffa7
パッケージ名をキャメルケースからスネークケースにリファクタリングしました
scitheAX Oct 14, 2022
929af66
TrialRepositoryDummyのtestDataListをcompanion objectにし、トライアル作成し追加できるように…
scitheAX Oct 14, 2022
93cb140
縦画面固定になるようにManifestにscreenOrientationを追加しました。
scitheAX Oct 14, 2022
f9d1923
checkrecordをcheck_recordにリファクタリングしたことにより、起こったバグを修正しました
scitheAX Oct 14, 2022
26adb60
デモ版に修正しました
scitheAX Oct 15, 2022
3bf4eff
トライアルの作成時にトライアル名を設定できるようにしました
scitheAX Oct 15, 2022
681f270
TrialDetailFragment.ktのカメラのzoom_sizeを16fから14fに変更しました
scitheAX Oct 15, 2022
bf060bf
トライアル名を設定するためのdialogのxmlファイルを追加しました。
scitheAX Oct 15, 2022
8f9bb56
保存するトライアルの日付を今日2022年10月16日にしました。
scitheAX Oct 15, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 13 additions & 12 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ plugins {
id 'org.jetbrains.kotlin.android'
id 'com.google.gms.google-services' // Google Services Gradle Plugin
id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' // Secrets Gradle Plugin
id 'androidx.navigation.safeargs.kotlin' // Navigation Safe Args
id "androidx.navigation.safeargs"
}

android {
compileSdk 32

defaultConfig {
applicationId "jp.ac.okinawa_ct.nitoc_ict.aroa"
minSdk 31
minSdk 26
targetSdk 32
versionCode 1
versionName "1.0"
Expand Down Expand Up @@ -42,8 +42,6 @@ dependencies {
// 基本的なライブラリ
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.5.0'
implementation 'androidx.activity:activity-ktx:1.5.1'
implementation 'androidx.fragment:fragment-ktx:1.5.2'

// レイアウト系
implementation 'com.google.android.material:material:1.6.1'
Expand All @@ -52,27 +50,30 @@ dependencies {
// ライフサイクル対応コンポーネント
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'

// Navigation
def nav_version = "2.5.2"
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"

// Preferences DataStore
implementation "androidx.datastore:datastore-preferences:1.0.0"
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.1'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'

testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

// Google Maps SDK
implementation 'com.google.android.gms:play-services-maps:18.1.0'
implementation "com.google.maps:google-maps-services:0.2.11"
implementation 'com.google.maps.android:android-maps-utils:2.2.0'

//位置情報関係
implementation 'com.google.android.gms:play-services-location:16.0.0'
// implementation 'com.google.android.libraries.places:places:1.1.0'

// Firebase
implementation platform('com.google.firebase:firebase-bom:30.2.0') // Firebase BoM
implementation 'com.google.firebase:firebase-analytics-ktx' // Firebase Analytics
implementation 'com.google.firebase:firebase-firestore-ktx' // Firebase FireStore

implementation "androidx.datastore:datastore-preferences:1.0.0"

}
33 changes: 8 additions & 25 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
package="jp.ac.okinawa_ct.nitoc_ict.aroa">

<!-- BluetoothLEに対応していないデバイスにはインストール出来ないようにしている -->
<uses-feature
android:name="android.hardware.bluetooth_le"
android:required="true" />

<!-- Bluetooth関連のパーミッション -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
android:allowBackup="true"
Expand All @@ -20,34 +15,22 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AROA"
tools:targetApi="32">
tools:targetApi="31">

<!-- Google Map API Key -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${MAPS_API_KEY}" />

<activity
android:name=".ui.MainActivity"
android:exported="true">
android:exported="true"
android:screenOrientation="portrait">
<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>

<activity
android:name=".ui.trial_detail.TrialDetailActivity"
android:exported="false">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ui.MainActivity" />
</activity>

<service
android:name=".ui.TrialService"
android:enabled="true"
android:exported="true" />
</application>

</manifest>
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package jp.ac.okinawa_ct.nitoc_ict.aroa.data.dto

import java.util.*

/**
* トライアルの記録を表現するクラス
*
Expand All @@ -9,7 +11,10 @@ package jp.ac.okinawa_ct.nitoc_ict.aroa.data.dto
sealed class Record {
abstract val userId: String
abstract val trialId: String
abstract val trialName: String
abstract val date: String
abstract val rank: Int
abstract val recordId: String

/**
* マラソンのトライアルの記録を表現するクラス
Expand All @@ -19,8 +24,12 @@ sealed class Record {
data class MarathonRecord(
override val userId: String,
override val trialId: String,
override val trialName: String,
override val date: String,
val distance: Long,
val time: Long,
override val rank: Int = -1,
override val recordId: String = UUID.randomUUID().toString(),
): Record()

/**
Expand All @@ -31,7 +40,10 @@ sealed class Record {
data class DanglingRecord(
override val userId: String,
override val trialId: String,
override val trialName: String,
override val date: String,
val time: Long,
override val rank: Int = -1,
override val recordId: String,
): Record()
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ sealed class Trial {
abstract val name: String
abstract val authorUserId: String
abstract val position: LatLng
abstract val createDate: String
abstract val id: String

/**
Expand All @@ -27,6 +28,7 @@ sealed class Trial {
override val authorUserId: String,
override val position: LatLng,
val course: List<LatLng>,
override val createDate: String,
override val id: String = UUID.randomUUID().toString(),
) : Trial()

Expand All @@ -40,6 +42,7 @@ sealed class Trial {
override val authorUserId: String,
override val position: LatLng,
val goalCount: Int,
override val createDate: String,
override val id: String = UUID.randomUUID().toString(),
) : Trial()
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ interface RecordRepository {
* @param startRank 何位から取得するか. 1以上である必要がある。
* @param maxResult startRankで指定された順位から最大でいくつの[Record]を取得するか
*/
fun getRecords(trial: Trial, startRank: Int, maxResult: Int): Flow<Result<List<Record>>>
fun getRecords(trialId: String, startRank: Int, maxResult: Int): Flow<Result<List<Record>>>

/**
* 指定された[Trial]のランキングに[Record]を追加する.すでに同じユーザーの記録がある場合は上書きする
Expand All @@ -37,4 +37,8 @@ interface RecordRepository {
* @return データベースへの送信委成功した時は実際のランキングが保存された[Record]
*/
fun createOrUpdateRecord(trial: Trial, record: Record): Flow<Result<Record>>

fun getMyRecords(userId: String): Flow<Result<List<Record>>>

fun getRecordByTrialIdAndRecordId(trialId: String, recordId: String): Flow<Result<Record>>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
package jp.ac.okinawa_ct.nitoc_ict.aroa.data.repository

import jp.ac.okinawa_ct.nitoc_ict.aroa.data.dto.Record
import jp.ac.okinawa_ct.nitoc_ict.aroa.data.dto.Result
import jp.ac.okinawa_ct.nitoc_ict.aroa.data.dto.Trial
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.*

class RecordRepositoryDummy: RecordRepository {
companion object {
private val trial1RecordList = mutableListOf<Record>(
Record.MarathonRecord(
"サイス", "testTrialID_1","沖縄高専外周コース1","2022年10月15日",487,140,2,"testRecordId1"
),
Record.MarathonRecord(
"知念","testTrialID_1","沖縄高専外周コース1","2022年10月14日",487,150,3,"testRecordId2"
),
Record.MarathonRecord(
"ひじかた","testTrialID_1","沖縄高専外周コース1","2022年10月13日",487,110,1,"testRecordId3"
),
)
private val trial2RecordList = mutableListOf<Record>(
Record.MarathonRecord(
"サイス", "testTrialID_2","沖縄高専外周コース2","2022年10月15日",975,310,2,"testRecordId1"
),
Record.MarathonRecord(
"知念","testTrialID_2","沖縄高専外周コース2","2022年10月14日",975,340,3,"testRecordId2"
),
Record.MarathonRecord(
"ひじかた","testTrialID_2","沖縄高専外周コース2","2022年10月13日",975,250,1,"testRecordId3"
),
)
private val trial3RecordList = mutableListOf<Record>(
Record.MarathonRecord(
"サイス", "testTrialID_3","沖縄高専外周コース3","2022年10月15日",616,210,2,"testRecordId1"
),
Record.MarathonRecord(
"知念","testTrialID_3","沖縄高専外周コース3","2022年10月14日",616,290,3,"testRecordId2"
),
Record.MarathonRecord(
"ひじかた","testTrialID_3","沖縄高専外周コース3","2022年10月13日",616,180,1,"testRecordId3"
),
)

private val myRecordList = mutableListOf<Record>(
Record.MarathonRecord(
"ひじかた","testTrialID_1","沖縄高専外周コース1","2022年10月13日",487,110,1,"testRecordId1"
),
Record.MarathonRecord(
"ひじかた","testTrialID_2","沖縄高専外周コース2","2022年10月13日",975,250,1,"testRecordId2"
),
Record.MarathonRecord(
"ひじかた","testTrialID_3","沖縄高専外周コース3","2022年10月13日",616,180,1,"testRecordId3"
),
)
}


override fun getRecordByUserId(trial: Trial, userId: String): Flow<Result<Record?>> {
TODO("Not yet implemented")
}

override fun getRecords(
trialId: String,
startRank: Int,
maxResult: Int
): Flow<Result<List<Record>>> =
flow<Result<List<Record>>> {
delay(1000)
val comparator : Comparator<Record> = compareBy { it.rank }
when(trialId) {
trial1RecordList.get(0).trialId -> emit(Result.Success(trial1RecordList.sortedWith(comparator)))
trial2RecordList.get(0).trialId -> emit(Result.Success(trial2RecordList.sortedWith(comparator)))
trial3RecordList.get(0).trialId -> emit(Result.Success(trial3RecordList.sortedWith(comparator)))
}
}.catch {
when(it) {
is Exception -> {
emit(Result.Error(true, it))
}
}
}.onStart {
emit(Result.Loading)
}.flowOn(Dispatchers.IO)

override fun createOrUpdateRecord(trial: Trial, record: Record): Flow<Result<Record>> {
TODO("Not yet implemented")
}

override fun getMyRecords(userId: String): Flow<Result<List<Record>>> =
flow<Result<List<Record>>> {
delay(1000)
emit(Result.Success(myRecordList))
}.catch {
when(it) {
is Exception -> {
emit(Result.Error(true, it))
}
}
}.onStart {
emit(Result.Loading)
}.flowOn(Dispatchers.IO)

override fun getRecordByTrialIdAndRecordId(trialId: String, recordId: String): Flow<Result<Record>> =
flow<Result<Record>> {
delay(1000)
when(trialId) {
trial1RecordList.get(0).trialId -> {
for (data in trial1RecordList) {
if (data.recordId == recordId) {
emit(Result.Success(data))
}
}
}
trial2RecordList.get(0).trialId -> {
for (data in trial2RecordList) {
if (data.recordId == recordId) {
emit(Result.Success(data))
}
}
}
trial3RecordList.get(0).trialId -> {
for (data in trial3RecordList) {
if (data.recordId == recordId) {
emit(Result.Success(data))
}
}
}
}
}.catch {
when(it) {
is Exception -> {
emit(Result.Error(true, it))
}
}
}.onStart {
emit(Result.Loading)
}.flowOn(Dispatchers.IO)
}

Loading