@@ -20,7 +20,6 @@ import android.widget.Toast
20
20
import androidx.activity.result.contract.ActivityResultContracts
21
21
import androidx.activity.viewModels
22
22
import androidx.appcompat.app.AppCompatActivity
23
- import androidx.compose.animation.core.updateTransition
24
23
import androidx.core.content.ContextCompat
25
24
import com.google.firebase.FirebaseNetworkException
26
25
import com.google.firebase.Timestamp
@@ -31,26 +30,21 @@ import com.google.firebase.firestore.FirebaseFirestore
31
30
import com.google.firebase.firestore.Source
32
31
import com.google.firebase.messaging.FirebaseMessaging
33
32
import com.ncs.o2.Constants.Errors
34
- import com.ncs.o2.Constants.Pref
35
33
import com.ncs.o2.Constants.TestingConfig
36
- import com.ncs.o2.Data.Room.NotificationRepository.NotificationDatabase
37
34
import com.ncs.o2.Data.Room.TasksRepository.TasksDatabase
38
35
import com.ncs.o2.Domain.Interfaces.Repository
39
- import com.ncs.o2.Domain.Models.CurrentUser
40
36
import com.ncs.o2.Domain.Models.ServerResult
41
- import com.ncs.o2.Domain.Models.Task
37
+ import com.ncs.o2.Domain.Models.Update
42
38
import com.ncs.o2.Domain.Utility.ExtensionsUtil.isNull
43
39
import com.ncs.o2.Domain.Utility.Codes
44
40
import com.ncs.o2.Domain.Utility.ExtensionsUtil.animFadein
45
- import com.ncs.o2.Domain.Utility.ExtensionsUtil.blink
46
41
import com.ncs.o2.Domain.Utility.ExtensionsUtil.blinkinfi
47
42
import com.ncs.o2.Domain.Utility.ExtensionsUtil.deleteDownloadedFile
48
43
import com.ncs.o2.Domain.Utility.ExtensionsUtil.getVersionName
49
44
import com.ncs.o2.Domain.Utility.ExtensionsUtil.gone
50
45
import com.ncs.o2.Domain.Utility.ExtensionsUtil.isGreaterThanVersion
51
46
import com.ncs.o2.Domain.Utility.ExtensionsUtil.performHapticFeedback
52
47
import com.ncs.o2.Domain.Utility.ExtensionsUtil.performShakeHapticFeedback
53
- import com.ncs.o2.Domain.Utility.ExtensionsUtil.popInfinity
54
48
import com.ncs.o2.Domain.Utility.ExtensionsUtil.rotateInfinity
55
49
import com.ncs.o2.Domain.Utility.ExtensionsUtil.setOnClickThrottleBounceListener
56
50
import com.ncs.o2.Domain.Utility.ExtensionsUtil.visible
@@ -60,7 +54,6 @@ import com.ncs.o2.HelperClasses.NetworkChangeReceiver
60
54
import com.ncs.o2.HelperClasses.PrefManager
61
55
import com.ncs.o2.HelperClasses.ShakeDetector
62
56
import com.ncs.o2.R
63
- import com.ncs.o2.Services.Updater.UpdateDownloaderService
64
57
import com.ncs.o2.UI.Auth.AuthScreenActivity
65
58
import com.ncs.o2.UI.Auth.SignupScreen.SignUpScreenFragment
66
59
import com.ncs.o2.UI.MainActivity
@@ -73,11 +66,9 @@ import com.ncs.o2.UI.UpdateScreen.UpdaterActivity
73
66
import com.ncs.o2.databinding.ActivitySplashScreenBinding
74
67
import com.ncs.versa.Constants.Endpoints
75
68
import dagger.hilt.android.AndroidEntryPoint
76
- import io.reactivex.internal.util.HalfSerializer.onComplete
77
69
import kotlinx.coroutines.CoroutineScope
78
70
import kotlinx.coroutines.Dispatchers
79
71
import kotlinx.coroutines.launch
80
- import kotlinx.coroutines.tasks.await
81
72
import kotlinx.coroutines.withContext
82
73
import timber.log.Timber
83
74
import java.io.File
@@ -126,7 +117,6 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
126
117
PrefManager .setOfflineDialogShown(false )
127
118
PrefManager .setAppMode(Endpoints .ONLINE_MODE )
128
119
binding.fragLogoContainer.blinkinfi(this )
129
-
130
120
binding.fragLogoContainer.visible()
131
121
132
122
if (PrefManager .getAppMode()== Endpoints .ONLINE_MODE ){
@@ -138,39 +128,50 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
138
128
139
129
}
140
130
131
+
132
+
141
133
private fun initialise () {
142
134
143
135
binding.fragContainer.gone()
144
136
145
137
// Check for updates
146
138
viewModel.getUpdateDocumentLiveData().observe(this ) { update ->
147
139
val currentVersion = getVersionName(this )
148
-
149
140
currentVersion?.let {
141
+
142
+ // New Update
150
143
if (update.VERSION_CODE .isGreaterThanVersion(currentVersion)) {
151
- util.singleBtnDialog(
152
- getString(R .string.new_update),
153
- getString(R .string.a_new_version_of_o2_has_been_released_proceed_to_install),
154
- " Proceed"
155
- ) {
156
- val intent = Intent (this , UpdaterActivity ::class .java)
157
- intent.putExtra(" UPDATE" , update)
158
- startActivity(intent)
159
- finishAffinity()
160
- }
144
+ startUpdateProcess(update)
161
145
return @let
162
-
163
- } else {
164
-
165
- binding.fragContainer.clearAnimation()
166
-
167
- removeRedundantUpdatePackages()
168
- askNotificationPermission()
146
+ }
147
+ // Current is latest
148
+ else {
149
+ startScreenProcess()
169
150
}
170
151
}
171
152
}
172
153
}
173
154
155
+
156
+ private fun startUpdateProcess (update : Update ){
157
+ util.singleBtnDialog(
158
+ getString(R .string.new_update),
159
+ getString(R .string.a_new_version_of_o2_has_been_released_proceed_to_install),
160
+ " Proceed"
161
+ ) {
162
+ val intent = Intent (this , UpdaterActivity ::class .java)
163
+ intent.putExtra(" UPDATE" , update)
164
+ startActivity(intent)
165
+ finishAffinity()
166
+ }
167
+ }
168
+ private fun startScreenProcess (){
169
+ binding.fragContainer.clearAnimation()
170
+ removeRedundantUpdatePackages()
171
+ setUpViews()
172
+ }
173
+
174
+
174
175
private fun removeRedundantUpdatePackages () {
175
176
if (PrefManager .getDownloadID()!= - 1L ){
176
177
val downloadID = PrefManager .getDownloadID()
@@ -203,8 +204,10 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
203
204
}
204
205
}
205
206
206
- private fun askNotificationPermission () {
207
+ private fun setUpViews () {
208
+
207
209
210
+ // Check for Notification permission for android 12
208
211
if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) {
209
212
if (ContextCompat .checkSelfPermission(
210
213
this ,
@@ -231,8 +234,10 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
231
234
requestPermissionLauncher.launch(android.Manifest .permission.POST_NOTIFICATIONS )
232
235
}
233
236
} else {
237
+
234
238
setBallAnimator()
235
239
setUpViews(TestingConfig .isTesting)
240
+
236
241
}
237
242
}
238
243
@@ -325,14 +330,17 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
325
330
326
331
viewModel.checkMaintenanceThroughRepository().observe(this ) {
327
332
328
- if (Codes .STRINGS .isMaintaining != null ) {
333
+ if (Codes .STRINGS .isMaintaining != " " ) {
329
334
if (Codes .STRINGS .isMaintaining == " true" ) {
330
- Log .d(" maintainenceCheck" , " maintaining" )
331
- val intent = Intent (this , MaintainingScreen ::class .java)
335
+
336
+ Timber .tag(" maintainenceCheck" ).d(" maintaining" )
337
+ val intent = Intent (this , MaintainanceScreen ::class .java)
332
338
startActivity(intent)
333
339
finishAffinity()
340
+
334
341
} else {
335
342
if (PrefManager .getPopUpVisibility()){
343
+
336
344
val intent = Intent (this , NewChanges ::class .java)
337
345
intent.putExtra(" type" ," popup" )
338
346
startActivity(intent)
@@ -447,8 +455,6 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
447
455
448
456
}
449
457
}
450
-
451
-
452
458
}
453
459
454
460
private fun setUpProcesses () {
@@ -468,7 +474,6 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
468
474
}
469
475
470
476
val document = task.result
471
-
472
477
if (! document.exists()) {
473
478
showBallError(Errors .AccountErrors .ACCOUNT_FIELDS_NULL , task.exception!! )
474
479
return @addOnCompleteListener
@@ -548,8 +553,6 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
548
553
549
554
}
550
555
551
-
552
-
553
556
}
554
557
else {
555
558
val intent = Intent (this , AuthScreenActivity ::class .java)
@@ -862,8 +865,6 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
862
865
863
866
}
864
867
865
-
866
-
867
868
private fun setUpFCMTokenIfRequired (document : DocumentSnapshot ) {
868
869
869
870
val fcmToken = document.getString(Endpoints .User .FCM_TOKEN ) ? : " "
@@ -961,7 +962,6 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
961
962
}
962
963
963
964
private var receiverRegistered = false
964
-
965
965
private val intentFilter by lazy{
966
966
IntentFilter (ConnectivityManager .CONNECTIVITY_ACTION )
967
967
}
@@ -1008,7 +1008,6 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
1008
1008
}
1009
1009
}
1010
1010
}
1011
-
1012
1011
fun takeScreenshot (activity : Activity ) {
1013
1012
Log .e(" takeScreenshot" , activity.localClassName)
1014
1013
val rootView = activity.window.decorView.rootView
@@ -1036,7 +1035,6 @@ class StartScreen @Inject constructor() : AppCompatActivity(), NetworkChangeRece
1036
1035
intent.putExtra(" type" ," report" )
1037
1036
startActivity(intent)
1038
1037
}
1039
-
1040
1038
fun moveToShakeSettings () {
1041
1039
val intent = Intent (this , ShakeDetectedActivity ::class .java)
1042
1040
intent.putExtra(" type" ," settings" )
0 commit comments