use of org.edx.mobile.module.db.IDatabase in project edx-app-android by edx.
the class BaseVideosDownloadStateActivityTest method downloadProgressViewTest.
/**
* Testing download progress menu visibility states and click behaviour
* (starting DownloadActivity). Only when both AppConstants.offline_flag
* is true and there is a downloading entry in the database, should the
* progress bar be visible.
*/
@Test
public void downloadProgressViewTest() {
connectToNetwork();
assertFalse(Shadows.shadowOf(Robolectric.buildActivity(getActivityClass()).withIntent(getIntent()).setup().get()).getOptionsMenu().findItem(R.id.download_progress).isVisible());
disconnectFromNetwork();
assertFalse(Shadows.shadowOf(Robolectric.buildActivity(getActivityClass()).withIntent(getIntent()).setup().get()).getOptionsMenu().findItem(R.id.download_progress).isVisible());
IDatabase db = environment.getDatabase();
DownloadEntry de = new DownloadEntry();
de.username = "unittest";
de.title = "title";
de.videoId = "videoId-" + System.currentTimeMillis();
de.size = 1024;
de.duration = 3600;
de.filepath = "/fakepath";
de.url = "http://fake/url";
de.eid = "fake_eid";
de.chapter = "fake_chapter";
de.section = "fake_section";
de.lastPlayedOffset = 0;
de.lmsUrl = "http://fake/lms/url";
de.isCourseActive = 1;
de.downloaded = DownloadEntry.DownloadedState.DOWNLOADING;
Long rowId = db.addVideoData(de, null);
assertNotNull(rowId);
assertThat(rowId).isGreaterThan(0);
assertFalse(Shadows.shadowOf(Robolectric.buildActivity(getActivityClass()).withIntent(getIntent()).setup().get()).getOptionsMenu().findItem(R.id.download_progress).isVisible());
connectToNetwork();
BaseVideosDownloadStateActivity activity = Robolectric.buildActivity(getActivityClass()).withIntent(getIntent()).setup().get();
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
MenuItem downloadProgressMenuItem = shadowActivity.getOptionsMenu().findItem(R.id.download_progress);
assertTrue(downloadProgressMenuItem.isVisible());
assertTrue(downloadProgressMenuItem.getActionView().performClick());
assertNextStartedActivity(activity, DownloadListActivity.class);
}
use of org.edx.mobile.module.db.IDatabase in project edx-app-android by edx.
the class Storage method getDownloadProgressOfCourseVideos.
@Override
public void getDownloadProgressOfCourseVideos(@Nullable String courseId, final DataCallback<NativeDownloadModel> callback) {
final IDatabase db = DatabaseFactory.getInstance(DatabaseFactory.TYPE_DATABASE_NATIVE);
db.getListOfOngoingDownloadsByCourseId(courseId, new DataCallback<List<VideoModel>>() {
@Override
public void onResult(List<VideoModel> result) {
final long[] dmids = new long[result.size()];
for (int i = 0; i < result.size(); i++) {
dmids[i] = result.get(i).getDmId();
}
callback.onResult(dm.getProgressDetailsForDownloads(dmids));
}
@Override
public void onFail(Exception ex) {
callback.onFail(ex);
}
});
}
use of org.edx.mobile.module.db.IDatabase in project edx-app-android by edx.
the class Storage method getAverageDownloadProgress.
@Override
public void getAverageDownloadProgress(final DataCallback<Integer> callback) {
IDatabase db = DatabaseFactory.getInstance(DatabaseFactory.TYPE_DATABASE_NATIVE);
db.getListOfOngoingDownloads(new DataCallback<List<VideoModel>>() {
@Override
public void onResult(List<VideoModel> result) {
long[] dmids = new long[result.size()];
for (int i = 0; i < result.size(); i++) {
dmids[i] = result.get(i).getDmId();
}
int averageProgress = dm.getAverageProgressForDownloads(dmids);
callback.onResult(averageProgress);
}
@Override
public void onFail(Exception ex) {
callback.onFail(ex);
}
});
}
Aggregations