Skip to content

Commit ad695e4

Browse files
author
Mahalingam
committed
26-02-2020 by maha
# WORK MANAGER (Periodic) # Added Logger
1 parent 4e0cd04 commit ad695e4

File tree

5 files changed

+139
-13
lines changed

5 files changed

+139
-13
lines changed

app/src/main/java/com/example/simplework/activity/FirstActivity.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import androidx.appcompat.app.AppCompatActivity
77
import androidx.lifecycle.Observer
88
import androidx.work.*
99
import com.example.simplework.R
10+
import com.example.simplework.utils.Logger
1011
import com.example.simplework.worker.OneTimeWorker
1112
import com.google.android.material.button.MaterialButton
1213
import com.google.android.material.textfield.TextInputEditText
@@ -26,6 +27,8 @@ class FirstActivity : AppCompatActivity() {
2627
setContentView(R.layout.activity_first)
2728

2829
init()
30+
31+
Logger().e("asa","Show error")
2932
}
3033

3134

app/src/main/java/com/example/simplework/activity/MainActivity.kt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import androidx.databinding.DataBindingUtil
1414
import com.example.simplework.R
1515
import com.example.simplework.databinding.ActivityMainBinding
1616
import com.example.simplework.model.Taskinfo
17+
import com.example.simplework.utils.Logger
1718
import kotlinx.android.synthetic.main.activity_main.view.*
1819

1920
class MainActivity : AppCompatActivity() {
@@ -36,7 +37,17 @@ class MainActivity : AppCompatActivity() {
3637
rocketAnimation = background as AnimationDrawable
3738
}
3839

39-
init()
40+
41+
val quotient = 285 / 60
42+
val remainder = 285 % 60
43+
44+
val aFinalSleepHrs= "$quotient.${remainder.toString()[0]}"
45+
46+
// Log.e("Final string",aFinalSleepHrs)
47+
48+
Logger().e("Final string",aFinalSleepHrs)
49+
50+
// init()
4051
}
4152

4253
private fun init() {
@@ -77,6 +88,8 @@ class MainActivity : AppCompatActivity() {
7788
}
7889

7990
fun button2Click(view: View) {
91+
Logger().e("Final string","button2Click")
92+
8093
startActivity(Intent(this, ThirdActivity::class.java))
8194
//view.button2.setBackgroundResource(R.drawable.shake_anim)
8295
//rocketAnimation.start()

app/src/main/java/com/example/simplework/activity/ThirdActivity.kt

Lines changed: 57 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class ThirdActivity : AppCompatActivity() {
1717

1818
lateinit var binding: ActivityThirdBinding
1919
lateinit var aPeriodicWork: PeriodicWorkRequest
20+
lateinit var mPeroidRequest:PeriodicWorkRequest.Builder
2021

2122
override fun onCreate(savedInstanceState: Bundle?) {
2223
super.onCreate(savedInstanceState)
@@ -26,15 +27,35 @@ class ThirdActivity : AppCompatActivity() {
2627

2728
binding.act = this
2829

30+
setWrokManager()
2931

3032

31-
aPeriodicWork = PeriodicWorkRequestBuilder<PeriodicTimeWorker>(
33+
34+
}
35+
36+
/**
37+
* TODO
38+
* call work manager every 15 minutes
39+
*/
40+
private fun setWrokManager() {
41+
/* aPeriodicWork = PeriodicWorkRequestBuilder<PeriodicTimeWorker>(
3242
15,
3343
TimeUnit.MINUTES,
3444
10,
3545
TimeUnit.MINUTES
36-
).setConstraints(setConstraint()).build()
46+
).setConstraints(setConstraint())
47+
.setInputData(createInputData())
48+
.setBackoffCriteria(
49+
BackoffPolicy.LINEAR,
50+
OneTimeWorkRequest.MIN_BACKOFF_MILLIS,
51+
TimeUnit.MILLISECONDS)
3752
53+
.build()*/
54+
55+
56+
mPeroidRequest=PeriodicWorkRequest.Builder(PeriodicTimeWorker::class.java,15,TimeUnit.MINUTES)
57+
.setConstraints(setConstraint())
58+
aPeriodicWork=mPeroidRequest.build()
3859
}
3960

4061

@@ -43,39 +64,49 @@ class ThirdActivity : AppCompatActivity() {
4364
return Constraints.Builder()
4465
.setRequiredNetworkType(NetworkType.CONNECTED) // check internet connectivity
4566
.setRequiresBatteryNotLow(true) // check battery level
46-
.setRequiresCharging(true) // check charging mode
67+
//.setRequiresCharging(true) // check charging mode
4768
// .setRequiresStorageNotLow(true) // check storage
4869
// .setRequiresDeviceIdle(false) // check device idle state
4970
.build()
5071

5172
}
5273

5374
fun startTask(aView: View) {
54-
WorkManager.getInstance(this)
55-
.enqueueUniquePeriodicWork("UNIQUE", ExistingPeriodicWorkPolicy.REPLACE, aPeriodicWork)
75+
/*WorkManager.getInstance(this)
76+
.enqueueUniquePeriodicWork("UNIQUE", ExistingPeriodicWorkPolicy.KEEP, aPeriodicWork)*/
77+
78+
WorkManager.getInstance(this).enqueue(aPeriodicWork)
79+
5680

5781
WorkManager.getInstance(this).getWorkInfoByIdLiveData(aPeriodicWork.id).observe(this,
5882
Observer {
5983
if (it != null) {
6084
when (it.state) {
6185

6286
WorkInfo.State.SUCCEEDED -> {
63-
//val myResult = it.outputData.getString("Success")
64-
// Log.e("Out put", myResult)
87+
val myResult = it.outputData.getString("Success")
88+
Log.e("Out put", myResult?:"")
6589
Log.e("STATUS", "SUCCEEDED")
6690
}
67-
6891
WorkInfo.State.RUNNING -> {
92+
val myResult = it.outputData.getString("Success")
93+
Log.e("Out put", myResult?:"")
6994
Log.e("STATUS", "RUNNING")
7095
}
71-
7296
WorkInfo.State.CANCELLED -> {
7397
Log.e("STATUS", "CANCELLED")
7498
}
75-
7699
WorkInfo.State.FAILED -> {
77100
Log.e("STATUS", "FAILED")
78101
}
102+
WorkInfo.State.ENQUEUED -> {
103+
val myResult = it.outputData.getString("Success")
104+
Log.e("Out put", myResult?:"")
105+
Log.e("STATUS", "ENQUEUED")
106+
}
107+
WorkInfo.State.BLOCKED -> {
108+
Log.e("STATUS", "BLOCKED")
109+
}
79110
else -> {
80111
Log.e("STATUS", "STATUS")
81112
}
@@ -90,4 +121,20 @@ class ThirdActivity : AppCompatActivity() {
90121
WorkManager.getInstance(this).cancelUniqueWork("UNIQUE")
91122
}
92123

124+
private fun createInputData(): Data {
125+
126+
return Data.Builder()
127+
.putString("username", "Maha")
128+
.putString("password", "Lingam").build()
129+
130+
131+
}
132+
133+
134+
override fun onDestroy() {
135+
super.onDestroy()
136+
WorkManager.getInstance(this).cancelAllWork()
137+
WorkManager.getInstance(this).cancelUniqueWork("UNIQUE")
138+
}
139+
93140
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.example.simplework.utils
2+
3+
import android.util.Log
4+
import com.example.simplework.BuildConfig
5+
6+
class Logger {
7+
8+
private val TAG: String = BuildConfig.APPLICATION_ID
9+
10+
fun e(Msg: String) {
11+
LogIt(Log.ERROR, TAG, Msg)
12+
}
13+
14+
fun e(Tag: String?, Msg: String) {
15+
LogIt(Log.ERROR, Tag, Msg)
16+
}
17+
18+
fun i(Msg: String) {
19+
LogIt(Log.INFO, TAG, Msg)
20+
}
21+
22+
fun i(Tag: String?, Msg: String) {
23+
LogIt(Log.INFO, Tag, Msg)
24+
}
25+
26+
fun d(Msg: String) {
27+
LogIt(Log.DEBUG, TAG, Msg)
28+
}
29+
30+
fun d(Tag: String?, Msg: String) {
31+
LogIt(Log.DEBUG, Tag, Msg)
32+
}
33+
34+
fun v(Msg: String) {
35+
LogIt(Log.VERBOSE, TAG, Msg)
36+
}
37+
38+
fun v(Tag: String?, Msg: String) {
39+
LogIt(Log.VERBOSE, Tag, Msg)
40+
}
41+
42+
fun w(Msg: String) {
43+
LogIt(Log.WARN, TAG, Msg)
44+
}
45+
46+
fun w(Tag: String?, Msg: String) {
47+
LogIt(Log.WARN, Tag, Msg)
48+
}
49+
50+
private fun LogIt(LEVEL: Int, Tag: String?, Message: String) {
51+
if (BuildConfig.DEBUG) Log.println(LEVEL, Tag ?: TAG, Message)
52+
}
53+
}

app/src/main/java/com/example/simplework/worker/PeriodicTimeWorker.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,27 @@ package com.example.simplework.worker
22

33
import android.content.Context
44
import android.util.Log
5+
import androidx.work.Data
56
import androidx.work.Worker
67
import androidx.work.WorkerParameters
78

8-
class PeriodicTimeWorker(context: Context, workerParams: WorkerParameters) : Worker(
9+
class PeriodicTimeWorker(context: Context, val workerParams: WorkerParameters) : Worker(
910
context,
1011
workerParams
1112
) {
1213
override fun doWork(): Result {
1314

1415
Log.e("Periodic", "PeriodicTimeWorker")
1516

16-
return Result.success()
17+
val aData = workerParams.inputData
18+
19+
Log.e("User ", "" + aData.getString("username") ?: "1")
20+
Log.e("Password ", "" + aData.getString("password") ?: "1")
21+
22+
return Result.success(createOutputData())
23+
}
24+
25+
private fun createOutputData(): Data {
26+
return Data.Builder().putString("Success", "1").build()
1727
}
1828
}

0 commit comments

Comments
 (0)