|
@@ -21,13 +21,16 @@ import android.view.MenuItem
|
|
|
import android.view.View
|
|
|
import android.view.View.GONE
|
|
|
import android.view.View.VISIBLE
|
|
|
+import android.widget.Toast
|
|
|
import androidx.appcompat.app.AlertDialog
|
|
|
import androidx.core.content.res.ResourcesCompat
|
|
|
import androidx.fragment.app.FragmentTransaction
|
|
|
import androidx.lifecycle.ViewModelProvider
|
|
|
import androidx.lifecycle.lifecycleScope
|
|
|
import androidx.work.Data
|
|
|
+import androidx.work.ExistingWorkPolicy
|
|
|
import androidx.work.OneTimeWorkRequest
|
|
|
+import androidx.work.WorkInfo
|
|
|
import androidx.work.WorkManager
|
|
|
import autodagger.AutoInjector
|
|
|
import com.afollestad.materialdialogs.LayoutMode.WRAP_CONTENT
|
|
@@ -635,17 +638,40 @@ class ConversationInfoActivity :
|
|
|
}
|
|
|
|
|
|
private fun leaveConversation() {
|
|
|
- workerData?.let {
|
|
|
- WorkManager.getInstance(context).enqueue(
|
|
|
- OneTimeWorkRequest.Builder(
|
|
|
- LeaveConversationWorker::class
|
|
|
- .java
|
|
|
- ).setInputData(it).build()
|
|
|
- )
|
|
|
+ workerData?.let { data ->
|
|
|
+ val workRequest = OneTimeWorkRequest.Builder(LeaveConversationWorker::class.java)
|
|
|
+ .setInputData(data)
|
|
|
+ .build()
|
|
|
|
|
|
- val intent = Intent(context, MainActivity::class.java)
|
|
|
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
|
|
- startActivity(intent)
|
|
|
+
|
|
|
+ WorkManager.getInstance(context)
|
|
|
+ .enqueueUniqueWork(
|
|
|
+ "leave_conversation_work",
|
|
|
+ ExistingWorkPolicy.REPLACE,
|
|
|
+ workRequest
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+ WorkManager.getInstance(context).getWorkInfoByIdLiveData(workRequest.id)
|
|
|
+ .observe(this, { workInfo: WorkInfo? ->
|
|
|
+ if (workInfo != null) {
|
|
|
+ when (workInfo.state) {
|
|
|
+ WorkInfo.State.SUCCEEDED -> {
|
|
|
+
|
|
|
+ val intent = Intent(context, MainActivity::class.java)
|
|
|
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
|
|
+ startActivity(intent)
|
|
|
+ }
|
|
|
+ WorkInfo.State.FAILED -> {
|
|
|
+
|
|
|
+ Toast.makeText(context, R.string.nc_last_moderator_leaving_room_warning, Toast.LENGTH_LONG).show()
|
|
|
+ }
|
|
|
+ else -> {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
|