fix :Upload count or number of contribution does not get updated when media is successful uploaded (#4399)

* * fix:Number of Contributions not updated
 * Add javadocs

* minor changes

* made minor changes
This commit is contained in:
Prince kushwaha 2021-06-18 16:31:37 +05:30 committed by GitHub
parent 2a2d2879a9
commit 13528bcabd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 2 deletions

View file

@ -9,6 +9,7 @@ import android.annotation.SuppressLint;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
@ -33,6 +34,8 @@ import fr.free.nrw.commons.theme.BaseActivity;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import androidx.work.WorkInfo;
import androidx.work.WorkManager;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.CommonsApplication;
@ -60,6 +63,7 @@ import fr.free.nrw.commons.notification.Notification;
import fr.free.nrw.commons.notification.NotificationActivity; import fr.free.nrw.commons.notification.NotificationActivity;
import fr.free.nrw.commons.notification.NotificationController; import fr.free.nrw.commons.notification.NotificationController;
import fr.free.nrw.commons.theme.BaseActivity; import fr.free.nrw.commons.theme.BaseActivity;
import fr.free.nrw.commons.upload.worker.UploadWorker;
import fr.free.nrw.commons.utils.ConfigUtils; import fr.free.nrw.commons.utils.ConfigUtils;
import fr.free.nrw.commons.utils.DialogUtil; import fr.free.nrw.commons.utils.DialogUtil;
import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.NetworkUtils;
@ -154,7 +158,7 @@ public class ContributionsFragment
} }
initFragments(); initFragments();
upDateUploadCount();
if(shouldShowMediaDetailsFragment){ if(shouldShowMediaDetailsFragment){
showMediaDetailPagerFragment(); showMediaDetailPagerFragment();
}else{ }else{
@ -644,6 +648,21 @@ public class ContributionsFragment
return mediaDetailPagerFragment; return mediaDetailPagerFragment;
} }
/**
* this function updates the number of contributions
*/
void upDateUploadCount() {
WorkManager.getInstance(getContext())
.getWorkInfosForUniqueWorkLiveData(UploadWorker.class.getSimpleName()).observe(
getViewLifecycleOwner(), workInfos -> {
if (workInfos.size() > 0) {
setUploadCount();
}
});
}
/** /**
* Reload media detail fragment once media is nominated * Reload media detail fragment once media is nominated
* *
@ -674,5 +693,6 @@ public class ContributionsFragment
} }
}; };
} }

View file

@ -6,6 +6,7 @@ import android.graphics.BitmapFactory
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat import androidx.core.app.NotificationManagerCompat
import androidx.work.CoroutineWorker import androidx.work.CoroutineWorker
import androidx.work.Data
import androidx.work.WorkerParameters import androidx.work.WorkerParameters
import com.google.gson.Gson import com.google.gson.Gson
import com.mapbox.mapboxsdk.plugins.localization.BuildConfig import com.mapbox.mapboxsdk.plugins.localization.BuildConfig
@ -142,6 +143,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
} }
override suspend fun doWork(): Result { override suspend fun doWork(): Result {
var countUpload = 0
notificationManager = NotificationManagerCompat.from(appContext) notificationManager = NotificationManagerCompat.from(appContext)
val processingUploads = getNotificationBuilder( val processingUploads = getNotificationBuilder(
CommonsApplication.NOTIFICATION_CHANNEL_ID_ALL CommonsApplication.NOTIFICATION_CHANNEL_ID_ALL
@ -192,6 +194,8 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
contribution.transferred = 0 contribution.transferred = 0
contribution.state = Contribution.STATE_IN_PROGRESS contribution.state = Contribution.STATE_IN_PROGRESS
contributionDao.saveSynchronous(contribution) contributionDao.saveSynchronous(contribution)
setProgressAsync(Data.Builder().putInt("progress", countUpload).build())
countUpload++
uploadContribution(contribution = contribution) uploadContribution(contribution = contribution)
} }
}.collect() }.collect()