Compare commits

...

7 Commits

Author SHA1 Message Date
sathwikcs
e3435f2182 131-STABLE-super-server 2025-03-13 15:50:04 +05:30
sathwikcs
f6cdd64ef6 131-STABLE-super-server 2025-03-13 15:49:25 +05:30
sathwikcs
7ad21ea5a9 131-STABLE-super-server 2025-03-13 15:23:15 +05:30
sathwikcs
6c89efeb5e 131-STABLE-smi... 2025-03-13 14:08:04 +05:30
sathwikcs
63eaf1cadc Merge remote-tracking branch 'origin/dev-server-2.1.131-stable-smi' into dev-server-2.1.131-stable-smi 2025-03-13 12:45:23 +05:30
sathwikcs
c180f7be31 131-STABLE-smi... 2025-03-13 12:45:04 +05:30
sathwikcs
c243ec6c8f 131-STABLE-smi... 2025-03-13 12:37:23 +05:30
8 changed files with 69 additions and 206 deletions

View File

@@ -28,8 +28,8 @@ object Constants {
const val DOCUMENT_ID_FOR_UPDATE ="2o71vBKLqdgEKYtFG8Lb"
const val ABHA_APP_PACKAGE = "in.ndhm.phr"
const val MOLBIO_INTEGRATION = true
const val FIREBASE_INTEGRATION = false
var MOLBIO_INTEGRATION = true
var FIREBASE_INTEGRATION = false
const val deviceProvisionEmail = "HPOS_provisioner@bigtec.co.in"
const val deviceProvisionPassword = "f2ab0e7f9d69"
const val DEVICE_ID_API = "deviceIDAPI"

View File

@@ -243,9 +243,10 @@ object AppModule {
@Provides
@Singleton
fun provideNetworkMonitor(@ApplicationContext context: Context): NetworkMonitor {
return NetworkMonitor(context)
fun provideNetworkMonitor(
@ApplicationContext context: Context
): NetworkMonitor {
return NetworkMonitor(context).apply { startMonitoring() }
}
}

View File

@@ -15,6 +15,7 @@ import android.content.Context
import android.content.Intent
import android.os.Process
import androidx.core.content.edit
import com.example.hpostesting.data.constant.Constants
import com.google.firebase.FirebaseApp
import com.google.firebase.FirebaseOptions
import com.google.firebase.firestore.FirebaseFirestore
@@ -37,7 +38,8 @@ class FirebaseManager @Inject constructor(private val context: Context) {
private val defaultServers = listOf(
// i have it in different place look down
firebaseConfigProd, firebaseConfigDev , firebaseConfigQaQc, firebaseConfigPreProd
firebaseConfigProd, firebaseConfigDev , firebaseConfigQaQc, firebaseConfigPreProd,
configMolbio //not a firebase config
)
init {
@@ -61,11 +63,17 @@ class FirebaseManager @Inject constructor(private val context: Context) {
fun getCurrentStorage(): FirebaseStorage = currentStorage
fun switchServer(firebaseConfig: FirebaseConfig) {
saveSelectedServer(firebaseConfig)
val firebaseApp = getOrInitializeFirebaseApp(firebaseConfig)
currentFirestore = FirebaseFirestore.getInstance(firebaseApp)
currentStorage = FirebaseStorage.getInstance(firebaseApp)
updateStatus = true
if (firebaseConfig.serverName =="molbio" ||firebaseConfig.apiKey == "molbio"){
saveSelectedServer(firebaseConfig)
makeMolbioAsBackEnd()
}else {
makeSMIBackEnd()
saveSelectedServer(firebaseConfig)
val firebaseApp = getOrInitializeFirebaseApp(firebaseConfig)
currentFirestore = FirebaseFirestore.getInstance(firebaseApp)
currentStorage = FirebaseStorage.getInstance(firebaseApp)
updateStatus = true
}
}
@@ -73,7 +81,6 @@ class FirebaseManager @Inject constructor(private val context: Context) {
val existingApp = FirebaseApp.getApps(context).find { it.name == firebaseConfig.serverName }
return if (existingApp != null) {
existingApp
} else {
@@ -125,6 +132,16 @@ class FirebaseManager @Inject constructor(private val context: Context) {
fun getAvailableServers(): List<FirebaseConfig> {
return defaultServers
}
private fun makeMolbioAsBackEnd(){
Constants.FIREBASE_INTEGRATION = false
Constants.MOLBIO_INTEGRATION = true
restartApp()
}
private fun makeSMIBackEnd(){
Constants.FIREBASE_INTEGRATION = true
Constants.MOLBIO_INTEGRATION = false
}
}
fun restartApp(context: Context) {
@@ -172,3 +189,11 @@ private val firebaseConfigPreProd = FirebaseConfig(
projectId = "hpos-preprod",
storageBucket = "hpos-preprod.appspot.com"
)
private val configMolbio = FirebaseConfig(
serverName = "molbio",
apiKey = "molbio",
appId = "molbio",
projectId = "molbio",
storageBucket = "molbio"
)

View File

@@ -28,11 +28,8 @@ import androidx.fragment.app.Fragment
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
import androidx.preference.SwitchPreferenceCompat
import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.Constants.FIREBASE_INTEGRATION
import com.example.hpostesting.data.constant.Constants.MOLBIO_INTEGRATION
import com.example.hpostesting.data.constant.DataHolder
import com.example.hpostesting.data.constant.LanguageManager
import com.example.hpostesting.data.repository.DatabaseRepository
@@ -203,22 +200,20 @@ class PrefsFragment : PreferenceFragmentCompat() {
}
}
val shouldEnableCurrentServerVersion = FIREBASE_INTEGRATION && !MOLBIO_INTEGRATION
val appVersionPreference = Preference(requireContext()).apply {
title = "App Version"
summary =
getAppVersion(requireContext()) + " [ " + getAppEnvironment(requireContext()) + "->" + if (shouldEnableCurrentServerVersion) currentServer else "molbio"+ "]"
getAppVersion(requireContext()) + " [ " + getAppEnvironment(requireContext()) + "->" + currentServer + "]"
icon = ContextCompat.getDrawable(requireContext(), R.drawable.baseline_info_24)
setOnPreferenceClickListener {
tapManager.registerTap {
firebaseManager.setDevModeOn(true)
val devConfig = servers.find { it.serverName == "dev" }
if (firebaseManager.getDevMode() && currentServer != "dev") {
Toast.makeText(requireContext(), "Now you are a Developer", Toast.LENGTH_SHORT).show()
Toast.makeText(requireContext(), "Setting Up developer Environmnet", Toast.LENGTH_SHORT).show()
switchFirebaseServer(devConfig!!)
}
if (preferenceScreen.findPreference<SwitchPreferenceCompat>("developer_options") == null) {

View File

@@ -1,5 +1,6 @@
package com.example.hpostesting.util
import android.annotation.SuppressLint
import android.content.Context
import android.net.ConnectivityManager
import android.net.Network
@@ -12,6 +13,8 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.cancel
import kotlinx.coroutines.delay
import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch
import java.net.HttpURLConnection
import java.net.URL
@@ -23,7 +26,7 @@ import javax.inject.Singleton
class NetworkMonitor @Inject constructor(
@ApplicationContext private val context: Context
) {
private var isMonitoringStarted = false
private val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
@@ -49,7 +52,10 @@ class NetworkMonitor @Inject constructor(
}
}
@SuppressLint("NewApi")
fun startMonitoring() {
if (isMonitoringStarted) return // Already started, do nothing.
isMonitoringStarted = true
// Check initial connectivity status
val network = connectivityManager.activeNetwork
val capabilities = connectivityManager.getNetworkCapabilities(network)
@@ -66,6 +72,8 @@ class NetworkMonitor @Inject constructor(
.build()
connectivityManager.registerNetworkCallback(networkRequest, networkCallback)
// Start periodic checks:
startPeriodicPingCheck()
}
fun stopMonitoring() { // never needed to call
@@ -96,4 +104,14 @@ class NetworkMonitor @Inject constructor(
}
}
}
private fun startPeriodicPingCheck(intervalMillis: Long = 1 * 60_000L) {
networkScope.launch {
while (isActive) {
performPingCheck()
delay(intervalMillis)
}
}
}
}

View File

@@ -13,68 +13,9 @@
<resources>
<string-array name="district">
<item>अररिया</item>
<item>अरवल</item>
<item>औरंगाबाद</item>
<item>बांका</item>
<item>बेगूसराय</item>
<item>भागलपुर</item>
<item>भोजपुर</item>
<item>बक्सर</item>
<item>दरभंगा</item>
<item>पूर्वी चंपारण</item>
<item>गया</item>
<item>गोपालगंज</item>
<item>जमुई</item>
<item>जहानाबाद</item>
<item>कैमूर</item>
<item>कटिहार</item>
<item>खगड़िया</item>
<item>किशनगंज</item>
<item>लखीसराय</item>
<item>मधेपुरा</item>
<item>मधुबनी</item>
<item>मुंगेर</item>
<item>मुजफ्फरपुर</item>
<item>नालंदा</item>
<item>नवादा</item>
<item>पटना</item>
<item>पूर्णिया</item>
<item>रोहतास</item>
<item>सहरसा</item>
<item>समस्तीपुर</item>
<item>सारण</item>
<item>शेखपुरा</item>
<item>शिवहर</item>
<item>सीतामढ़ी</item>
<item>सिवान</item>
<item>सुपौल</item>
<item>वैशाली</item>
<item>पश्चिमी चंपारण</item>
<item>बोकारो</item>
<item>चतरा</item>
<item>देवघर</item>
<item>धनबाद</item>
<item>दुमका</item>
<item>पूर्वी सिंहभूम</item>
<item>गढवा</item>
<item>गिरिडीह</item>
<item>गोड्डा</item>
<item>गुमला</item>
<item>हजारीबाग</item>
<item>जामताड़ा</item>
<item>खूंटी</item>
<item>कोडरमा</item>
<item>लातेहार</item>
<item>लोहरदगा</item>
<item>पाकुड़</item>
<item>पलामू</item>
<item>रामगढ़</item>
<item>रांची</item>
<item>साहिबगंज</item>
<item>सरायकेला खरसावां</item>
<item>सिमडेगा</item>
<item>पश्चिमी सिंहभूम</item>
<item>Mysuru</item>
<item>Kodagu</item>
<item>Chamarajanagar</item>
<item>Other</item>
</string-array>
</resources>

View File

@@ -13,68 +13,9 @@
<resources>
<string-array name="district">
<item>Araria</item>
<item>Arwal</item>
<item>Aurangabad</item>
<item>Banka</item>
<item>Begusarai</item>
<item>Bhagalpur</item>
<item>Bhojpur</item>
<item>Buxar</item>
<item>Darbhanga</item>
<item>East Champaran</item>
<item>Gaya</item>
<item>Gopalganj</item>
<item>Jamui</item>
<item>Jehanabad</item>
<item>Kaimur</item>
<item>Katihar</item>
<item>Khagaria</item>
<item>Kishanganj</item>
<item>Lakhisarai</item>
<item>Madhepura</item>
<item>Madhubani</item>
<item>Munger</item>
<item>Muzaffarpur</item>
<item>Nalanda</item>
<item>Nawada</item>
<item>Patna</item>
<item>Purnia</item>
<item>Rohtas</item>
<item>Saharsa</item>
<item>Samastipur</item>
<item>Saran</item>
<item>Sheikhpura</item>
<item>Sheohar</item>
<item>Sitamarhi</item>
<item>Siwan</item>
<item>Supaul</item>
<item>Vaishali</item>
<item>West Champaran</item>
<item>Bokaro</item>
<item>Chatra</item>
<item>Deoghar</item>
<item>Dhanbad</item>
<item>Dumka</item>
<item>East Singhbhum</item>
<item>Garhwa</item>
<item>Giridih</item>
<item>Godda</item>
<item>Gumla</item>
<item>Hazaribagh</item>
<item>Jamtara</item>
<item>Khunti</item>
<item>Koderma</item>
<item>Latehar</item>
<item>Lohardaga</item>
<item>Pakur</item>
<item>Palamu</item>
<item>Ramgarh</item>
<item>Ranchi</item>
<item>Sahibganj</item>
<item>Seraikela Kharsawan</item>
<item>Simdega</item>
<item>West Singhbhum</item>
<item>Mysuru</item>
<item>Kodagu</item>
<item>Chamarajanagar</item>
<item>Other</item>
</string-array>
</resources>

View File

@@ -25,69 +25,11 @@
<item>ka</item>
<!-- Use language codes (e.g., en, kn) as values -->
</string-array>
<string-array name="district">
<item>Araria</item>
<item>Arwal</item>
<item>Aurangabad</item>
<item>Banka</item>
<item>Begusarai</item>
<item>Bhagalpur</item>
<item>Bhojpur</item>
<item>Buxar</item>
<item>Darbhanga</item>
<item>East Champaran</item>
<item>Gaya</item>
<item>Gopalganj</item>
<item>Jamui</item>
<item>Jehanabad</item>
<item>Kaimur</item>
<item>Katihar</item>
<item>Khagaria</item>
<item>Kishanganj</item>
<item>Lakhisarai</item>
<item>Madhepura</item>
<item>Madhubani</item>
<item>Munger</item>
<item>Muzaffarpur</item>
<item>Nalanda</item>
<item>Nawada</item>
<item>Patna</item>
<item>Purnia</item>
<item>Rohtas</item>
<item>Saharsa</item>
<item>Samastipur</item>
<item>Saran</item>
<item>Sheikhpura</item>
<item>Sheohar</item>
<item>Sitamarhi</item>
<item>Siwan</item>
<item>Supaul</item>
<item>Vaishali</item>
<item>West Champaran</item>
<item>Bokaro</item>
<item>Chatra</item>
<item>Deoghar</item>
<item>Dhanbad</item>
<item>Dumka</item>
<item>East Singhbhum</item>
<item>Garhwa</item>
<item>Giridih</item>
<item>Godda</item>
<item>Gumla</item>
<item>Hazaribagh</item>
<item>Jamtara</item>
<item>Khunti</item>
<item>Koderma</item>
<item>Latehar</item>
<item>Lohardaga</item>
<item>Pakur</item>
<item>Palamu</item>
<item>Ramgarh</item>
<item>Ranchi</item>
<item>Sahibganj</item>
<item>Seraikela Kharsawan</item>
<item>Simdega</item>
<item>West Singhbhum</item>
<item>Mysuru</item>
<item>Kodagu</item>
<item>Chamarajanagar</item>
<item>Other</item>
</string-array>