package com.novoda.downloadmanager.demo.simple; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import com.novoda.downloadmanager.DownloadManagerBuilder; import com.novoda.downloadmanager.demo.R; import com.novoda.downloadmanager.lib.DownloadManager; import com.novoda.downloadmanager.notifications.NotificationVisibility; import com.novoda.downloadmanager.lib.Query; import com.novoda.downloadmanager.lib.Request; import java.util.List; public class MainActivity extends AppCompatActivity implements QueryForDownloadsAsyncTask.Callback { private static final String BIG_FILE = "http://ipv4.download.thinkbroadband.com/200MB.zip"; private static final String PENGUINS_IMAGE = "http://i.imgur.com/Y7pMO5Kb.jpg"; private DownloadManager downloadManager; private RecyclerView recyclerView; private View emptyView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); emptyView = findViewById(R.id.main_no_downloads_view); recyclerView = (RecyclerView) findViewById(R.id.main_downloads_list); recyclerView.setLayoutManager(new LinearLayoutManager(this)); downloadManager = DownloadManagerBuilder.from(this) .build(); setupDownloadingExample(); setupQueryingExample(); } private void setupDownloadingExample() { Uri uri = Uri.parse(BIG_FILE); final Request request = new Request(uri) .setDestinationInInternalFilesDir(Environment.DIRECTORY_MOVIES, "penguins.dat") .setNotificationVisibility(NotificationVisibility.ACTIVE_OR_COMPLETE) .setTitle("Family of Penguins") .setDescription("These are not the beards you're looking for") .setBigPictureUrl(PENGUINS_IMAGE); findViewById(R.id.main_download_button).setOnClickListener( new View.OnClickListener() { @Override public void onClick(@NonNull View v) { downloadManager.enqueue(request); } }); } private void setupQueryingExample() { queryForDownloads(); findViewById(R.id.main_refresh_button).setOnClickListener( new View.OnClickListener() { @Override public void onClick(@NonNull View v) { queryForDownloads(); } } ); } private void queryForDownloads() { QueryForDownloadsAsyncTask.newInstance(downloadManager, MainActivity.this).execute(new Query()); } @Override public void onQueryResult(List<BeardDownload> beardDownloads) { recyclerView.setAdapter(new BeardDownloadAdapter(beardDownloads)); emptyView.setVisibility(beardDownloads.isEmpty() ? View.VISIBLE : View.GONE); } }