Skip to content

Commit fc33f96

Browse files
author
Mahalingam
committed
18-02-2020
# WORK MANAGER (one time) #Swipe to delete
1 parent bed0370 commit fc33f96

File tree

5 files changed

+153
-10
lines changed

5 files changed

+153
-10
lines changed

app/build.gradle

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ android {
3333
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
3434
}
3535
}
36+
37+
compileOptions {
38+
sourceCompatibility JavaVersion.VERSION_1_8
39+
targetCompatibility JavaVersion.VERSION_1_8
40+
}
41+
42+
kotlinOptions {
43+
jvmTarget = JavaVersion.VERSION_1_8.toString()
44+
}
3645
}
3746

3847
ext {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ class MainActivity : AppCompatActivity() {
7777
}
7878

7979
fun button2Click(view: View) {
80-
// startActivity(Intent(this, ThirdActivity::class.java))
80+
startActivity(Intent(this, ThirdActivity::class.java))
8181
//view.button2.setBackgroundResource(R.drawable.shake_anim)
82-
rocketAnimation.start()
82+
//rocketAnimation.start()
8383
}
8484

8585
fun button3Click(view: View) {

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

Lines changed: 76 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,89 @@ package com.example.simplework.activity
33
import androidx.appcompat.app.AppCompatActivity
44
import android.os.Bundle
55
import android.util.Log
6+
import android.view.View
7+
import androidx.databinding.DataBindingUtil
8+
import androidx.lifecycle.Observer
9+
import androidx.work.*
610
import com.example.simplework.R
11+
import com.example.simplework.databinding.ActivityMainBinding
12+
import com.example.simplework.databinding.ActivityThirdBinding
13+
import com.example.simplework.worker.PeriodicTimeWorker
14+
import java.util.concurrent.TimeUnit
715

816
class ThirdActivity : AppCompatActivity() {
917

18+
lateinit var binding: ActivityThirdBinding
19+
lateinit var aPeriodicWork: PeriodicWorkRequest
20+
1021
override fun onCreate(savedInstanceState: Bundle?) {
1122
super.onCreate(savedInstanceState)
12-
setContentView(R.layout.activity_third)
23+
binding = DataBindingUtil.setContentView(
24+
this, R.layout.activity_third
25+
) as ActivityThirdBinding
26+
27+
binding.act = this
28+
29+
30+
31+
aPeriodicWork = PeriodicWorkRequestBuilder<PeriodicTimeWorker>(
32+
15,
33+
TimeUnit.MINUTES,
34+
10,
35+
TimeUnit.MINUTES
36+
).setConstraints(setConstraint()).build()
1337

14-
/* var p : String? = null
15-
p?.let { Log.e("let","p is $p") } ?: run {
16-
Log.e("run","p was null. Setting default value to: ") }
38+
}
39+
40+
41+
private fun setConstraint(): Constraints {
42+
43+
return Constraints.Builder()
44+
.setRequiredNetworkType(NetworkType.CONNECTED) // check internet connectivity
45+
.setRequiresBatteryNotLow(true) // check battery level
46+
.setRequiresCharging(true) // check charging mode
47+
// .setRequiresStorageNotLow(true) // check storage
48+
// .setRequiresDeviceIdle(false) // check device idle state
49+
.build()
1750

18-
Log.e("final",p)*/
1951
}
52+
53+
fun startTask(aView: View) {
54+
WorkManager.getInstance(this)
55+
.enqueueUniquePeriodicWork("UNIQUE", ExistingPeriodicWorkPolicy.REPLACE, aPeriodicWork)
56+
57+
WorkManager.getInstance(this).getWorkInfoByIdLiveData(aPeriodicWork.id).observe(this,
58+
Observer {
59+
if (it != null) {
60+
when (it.state) {
61+
62+
WorkInfo.State.SUCCEEDED -> {
63+
//val myResult = it.outputData.getString("Success")
64+
// Log.e("Out put", myResult)
65+
Log.e("STATUS", "SUCCEEDED")
66+
}
67+
68+
WorkInfo.State.RUNNING -> {
69+
Log.e("STATUS", "RUNNING")
70+
}
71+
72+
WorkInfo.State.CANCELLED -> {
73+
Log.e("STATUS", "CANCELLED")
74+
}
75+
76+
WorkInfo.State.FAILED -> {
77+
Log.e("STATUS", "FAILED")
78+
}
79+
else -> {
80+
Log.e("STATUS", "STATUS")
81+
}
82+
}
83+
}
84+
})
85+
}
86+
87+
fun cancelTask(aView: View) {
88+
WorkManager.getInstance(this).cancelUniqueWork("UNIQUE")
89+
}
90+
2091
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.example.simplework.worker
2+
3+
import android.content.Context
4+
import android.util.Log
5+
import androidx.work.Worker
6+
import androidx.work.WorkerParameters
7+
8+
class PeriodicTimeWorker(context: Context, workerParams: WorkerParameters) : Worker(
9+
context,
10+
workerParams
11+
) {
12+
override fun doWork(): Result {
13+
14+
Log.e("Periodic", "PeriodicTimeWorker")
15+
16+
return Result.success()
17+
}
18+
}
Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,54 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:app="http://schemas.android.com/apk/res-auto"
2+
3+
<layout xmlns:android="http://schemas.android.com/apk/res/android"
4+
xmlns:app="http://schemas.android.com/apk/res-auto">
5+
6+
<data>
7+
8+
<import type="android.view.View" />
9+
10+
11+
<variable
12+
name="act"
13+
type="com.example.simplework.activity.ThirdActivity" />
14+
15+
</data>
16+
17+
<androidx.constraintlayout.widget.ConstraintLayout
418
xmlns:tools="http://schemas.android.com/tools"
519
android:layout_width="match_parent"
620
android:layout_height="match_parent"
721
tools:context=".activity.ThirdActivity">
822

9-
</androidx.constraintlayout.widget.ConstraintLayout>
23+
<androidx.constraintlayout.widget.ConstraintLayout
24+
android:layout_width="match_parent"
25+
android:layout_height="wrap_content"
26+
app:layout_constraintBottom_toBottomOf="parent"
27+
app:layout_constraintEnd_toEndOf="parent"
28+
app:layout_constraintStart_toStartOf="parent"
29+
android:layout_margin="16dp"
30+
app:layout_constraintTop_toTopOf="parent">
31+
32+
<androidx.appcompat.widget.AppCompatButton
33+
android:id="@+id/start_task"
34+
android:layout_width="match_parent"
35+
android:layout_height="wrap_content"
36+
android:text="START"
37+
android:onClick="@{v->act.startTask(v)}"
38+
tools:ignore="MissingConstraints" />
39+
40+
<androidx.appcompat.widget.AppCompatButton
41+
android:id="@+id/cancel_task"
42+
android:layout_width="match_parent"
43+
android:layout_height="wrap_content"
44+
android:text="Cancel"
45+
android:onClick="@{v->act.cancelTask(v)}"
46+
app:layout_constraintTop_toBottomOf="@+id/start_task"
47+
tools:ignore="MissingConstraints" />
48+
49+
50+
</androidx.constraintlayout.widget.ConstraintLayout>
51+
52+
</androidx.constraintlayout.widget.ConstraintLayout>
53+
54+
</layout>

0 commit comments

Comments
 (0)