|
49 | 49 | import android.view.MenuItem; |
50 | 50 | import android.view.View; |
51 | 51 |
|
| 52 | +import com.firebase.jobdispatcher.Constraint; |
| 53 | +import com.firebase.jobdispatcher.FirebaseJobDispatcher; |
| 54 | +import com.firebase.jobdispatcher.GooglePlayDriver; |
| 55 | +import com.firebase.jobdispatcher.Job; |
| 56 | +import com.firebase.jobdispatcher.Lifetime; |
| 57 | +import com.firebase.jobdispatcher.RetryStrategy; |
| 58 | +import com.firebase.jobdispatcher.Trigger; |
| 59 | +import com.google.android.gms.common.GoogleApiAvailability; |
52 | 60 | import com.mikepenz.aboutlibraries.Libs; |
53 | 61 | import com.mikepenz.aboutlibraries.LibsBuilder; |
54 | 62 |
|
|
60 | 68 | import org.havenapp.main.model.Event; |
61 | 69 | import org.havenapp.main.resources.IResourceManager; |
62 | 70 | import org.havenapp.main.resources.ResourceManager; |
| 71 | +import org.havenapp.main.service.RemoveDeletedFilesService; |
63 | 72 | import org.havenapp.main.service.SignalSender; |
64 | 73 | import org.havenapp.main.ui.EventActivity; |
65 | 74 | import org.havenapp.main.ui.EventAdapter; |
|
74 | 83 | import static org.havenapp.main.database.DbConstantsKt.DB_INIT_END; |
75 | 84 | import static org.havenapp.main.database.DbConstantsKt.DB_INIT_START; |
76 | 85 | import static org.havenapp.main.database.DbConstantsKt.DB_INIT_STATUS; |
| 86 | +import static org.havenapp.main.service.RemoveDeletedFilesServiceKt.SERVICE_TAG; |
77 | 87 |
|
78 | 88 | public class ListActivity extends AppCompatActivity { |
79 | 89 |
|
@@ -198,6 +208,8 @@ public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { |
198 | 208 | initializeRecyclerViewComponents(); |
199 | 209 |
|
200 | 210 | fetchEventList(); |
| 211 | + |
| 212 | + scheduleCleanupJob(this); |
201 | 213 | } |
202 | 214 |
|
203 | 215 | private void initializeRecyclerViewComponents() { |
@@ -234,6 +246,29 @@ private void fetchEventList() { |
234 | 246 | } |
235 | 247 | } |
236 | 248 |
|
| 249 | + private static void scheduleCleanupJob(Context context) { |
| 250 | + if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context) == 0) { |
| 251 | + return; |
| 252 | + } |
| 253 | + |
| 254 | + FirebaseJobDispatcher dispatcher = new |
| 255 | + FirebaseJobDispatcher(new GooglePlayDriver(context)); |
| 256 | + dispatcher.mustSchedule(createJob(dispatcher)); |
| 257 | + } |
| 258 | + |
| 259 | + private static Job createJob(FirebaseJobDispatcher dispatcher) { |
| 260 | + return dispatcher.newJobBuilder() |
| 261 | + .setLifetime(Lifetime.FOREVER) |
| 262 | + .setService(RemoveDeletedFilesService.class) |
| 263 | + .setTag(SERVICE_TAG) |
| 264 | + .setReplaceCurrent(true) |
| 265 | + .setRecurring(true) |
| 266 | + .setTrigger(Trigger.executionWindow(0, 24 * 60 * 60)) |
| 267 | + .setRetryStrategy(RetryStrategy.DEFAULT_LINEAR) |
| 268 | + .setConstraints(Constraint.ON_ANY_NETWORK, Constraint.DEVICE_CHARGING) |
| 269 | + .build(); |
| 270 | + } |
| 271 | + |
237 | 272 | private void showEmptyState() { |
238 | 273 | recyclerView.setVisibility(View.GONE); |
239 | 274 | findViewById(R.id.empty_view).setVisibility(View.VISIBLE); |
|
0 commit comments