From 2bd9f79795b5b0b97ed7d2ca8abb4b0604cdb3b8 Mon Sep 17 00:00:00 2001 From: mohamedkaif356 Date: Tue, 18 Jul 2023 17:58:27 +0530 Subject: [PATCH] Molbio Data upload error fix --- .../example/hpostesting/data/FileUploader.kt | 46 ------------------- .../hpostesting/domain/UploadJobScheduler.kt | 11 ++++- .../hpostesting/domain/di/AppModule.kt | 19 ++++++-- 3 files changed, 25 insertions(+), 51 deletions(-) delete mode 100644 app/src/main/java/com/example/hpostesting/data/FileUploader.kt diff --git a/app/src/main/java/com/example/hpostesting/data/FileUploader.kt b/app/src/main/java/com/example/hpostesting/data/FileUploader.kt deleted file mode 100644 index e76d929..0000000 --- a/app/src/main/java/com/example/hpostesting/data/FileUploader.kt +++ /dev/null @@ -1,46 +0,0 @@ -package com.example.hpostesting.data - -import android.util.Log -import com.example.hpostesting.data.model.Response -import com.example.hpostesting.data.repository.DatabaseRepository -import com.example.hpostesting.util.MyUtils -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch - -class FileUploader { - - private val TAG = "FileUploader" - val repository = DatabaseRepository() - - suspend fun start() { - - val listOfFiles = repository.getAllFromPendingQueue() - - for (each in listOfFiles){ - // Checking internet connectivity & mobile as same or not - if (MyUtils.isInternetConnected() && each.mobileId == DataHolder.mobileUniqueId) { - - Log.d(TAG, "uploading file ${each.pendingId}") - GlobalScope.launch { - val response = repository.uploadFileToStorage(each.patientId, each.filePath) - - when (response) { - is Response.Success -> { - Log.d(TAG, "File Uploaded ${each.pendingId}") - repository.removeFromPendingQueue(each.pendingId) - } - - is Response.Error -> { - Log.d(TAG, response.exception.toString()) - } - } - }.join() - - } else { - return - } - } - return - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/domain/UploadJobScheduler.kt b/app/src/main/java/com/example/hpostesting/domain/UploadJobScheduler.kt index 7beee30..dc2ea21 100644 --- a/app/src/main/java/com/example/hpostesting/domain/UploadJobScheduler.kt +++ b/app/src/main/java/com/example/hpostesting/domain/UploadJobScheduler.kt @@ -2,8 +2,10 @@ package com.example.hpostesting.domain import android.app.job.JobParameters import android.app.job.JobService +import android.content.Context import android.content.SharedPreferences import android.util.Log +import androidx.lifecycle.ViewModelProvider import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.presentation.testRight.TestRightViewModel import dagger.hilt.android.AndroidEntryPoint @@ -12,12 +14,19 @@ import javax.inject.Inject @AndroidEntryPoint class MyJobScheduler : JobService(){ - private lateinit var sharedPreference: SharedPreferences @Inject + lateinit var sharedPreference: SharedPreferences private lateinit var viewModel: TestRightViewModel + override fun onCreate() { + super.onCreate() + viewModel = ViewModelProvider.AndroidViewModelFactory.getInstance(application) + .create(TestRightViewModel::class.java) + } + override fun onStartJob(p0: JobParameters?): Boolean { Log.d("jober","job started") + sharedPreference = this.getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE) viewModel.networkStatusLiveData.observeForever { if (it) { fetchInternalDataAndUpload() diff --git a/app/src/main/java/com/example/hpostesting/domain/di/AppModule.kt b/app/src/main/java/com/example/hpostesting/domain/di/AppModule.kt index c946013..7a3f144 100644 --- a/app/src/main/java/com/example/hpostesting/domain/di/AppModule.kt +++ b/app/src/main/java/com/example/hpostesting/domain/di/AppModule.kt @@ -2,13 +2,14 @@ package com.example.hpostesting.domain.di import android.app.Application import android.content.Context +import android.content.SharedPreferences +import androidx.lifecycle.ViewModelProvider import androidx.room.Room import com.example.hpostesting.data.api.MolbioApi import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.dao.MyDatabase import com.example.hpostesting.data.dao.UserDao import com.example.hpostesting.data.datasource.LocalFileDataSource -import com.example.hpostesting.data.repository.DatabaseRepository import com.example.hpostesting.data.repository.LocalFileRepository import com.example.hpostesting.domain.SaveRawData import com.example.hpostesting.domain.SaveRawDataTest @@ -17,10 +18,8 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent -import okhttp3.OkHttpClient import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory -import retrofit2.create import javax.inject.Singleton @Module @@ -63,7 +62,7 @@ object AppModule { @Provides @Singleton - fun provideRetrofit(client: OkHttpClient): Retrofit = + fun provideRetrofit(): Retrofit = Retrofit .Builder() .baseUrl(Constants.BASE_URL) @@ -75,4 +74,16 @@ object AppModule { @Singleton fun provideMolbioApi(retrofit: Retrofit): MolbioApi = retrofit.create(MolbioApi::class.java) + + @Provides + @Singleton + fun provideSharedPreferences(@ApplicationContext context: Context): SharedPreferences { + return context.getSharedPreferences("my_preferences", Context.MODE_PRIVATE) + } + + @Provides + @Singleton + fun provideViewModelFactory(application: Application): ViewModelProvider.Factory { + return ViewModelProvider.AndroidViewModelFactory.getInstance(application) + } } \ No newline at end of file