Refactor setProgress code for the header view.
Each call site of the `getHeaderView()` method needed to do a null check and then it would call `setProgress()`. This has been replaced with two methods `setProgress()` and `clearProgress()` to make it a bit less repetative and harder to accidentally get a NPE in the future by invoking `getHeaderView()` incorrectly.
This commit is contained in:
parent
7d2d22cf96
commit
1eb7d389f2
@ -303,15 +303,11 @@ public class AppDetails2 extends AppCompatActivity implements ShareChooserDialog
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
switch (intent.getAction()) {
|
||||
case Downloader.ACTION_STARTED:
|
||||
if (mAdapter.getHeaderView() != null) {
|
||||
mAdapter.getHeaderView().setProgress(-1, -1, R.string.download_pending);
|
||||
}
|
||||
mAdapter.setProgress(-1, -1, R.string.download_pending);
|
||||
break;
|
||||
case Downloader.ACTION_PROGRESS:
|
||||
if (mAdapter.getHeaderView() != null) {
|
||||
mAdapter.getHeaderView().setProgress(intent.getIntExtra(Downloader.EXTRA_BYTES_READ, -1),
|
||||
intent.getIntExtra(Downloader.EXTRA_TOTAL_BYTES, -1), 0);
|
||||
}
|
||||
mAdapter.setProgress(intent.getIntExtra(Downloader.EXTRA_BYTES_READ, -1),
|
||||
intent.getIntExtra(Downloader.EXTRA_TOTAL_BYTES, -1), 0);
|
||||
break;
|
||||
case Downloader.ACTION_COMPLETE:
|
||||
// Starts the install process once the download is complete.
|
||||
@ -341,21 +337,15 @@ public class AppDetails2 extends AppCompatActivity implements ShareChooserDialog
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
switch (intent.getAction()) {
|
||||
case Installer.ACTION_INSTALL_STARTED:
|
||||
if (mAdapter.getHeaderView() != null) {
|
||||
mAdapter.getHeaderView().setProgress(-1, -1, R.string.installing);
|
||||
}
|
||||
mAdapter.setProgress(-1, -1, R.string.installing);
|
||||
break;
|
||||
case Installer.ACTION_INSTALL_COMPLETE:
|
||||
if (mAdapter.getHeaderView() != null) {
|
||||
mAdapter.getHeaderView().setProgress(0, 0, 0); // Remove
|
||||
}
|
||||
mAdapter.clearProgress();
|
||||
unregisterInstallReceiver();
|
||||
onAppChanged();
|
||||
break;
|
||||
case Installer.ACTION_INSTALL_INTERRUPTED:
|
||||
if (mAdapter.getHeaderView() != null) {
|
||||
mAdapter.getHeaderView().setProgress(0, 0, 0); // Remove
|
||||
}
|
||||
mAdapter.clearProgress();
|
||||
onAppChanged();
|
||||
|
||||
String errorMessage =
|
||||
@ -398,21 +388,15 @@ public class AppDetails2 extends AppCompatActivity implements ShareChooserDialog
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
switch (intent.getAction()) {
|
||||
case Installer.ACTION_UNINSTALL_STARTED:
|
||||
if (mAdapter.getHeaderView() != null) {
|
||||
mAdapter.getHeaderView().setProgress(-1, -1, R.string.uninstalling);
|
||||
}
|
||||
mAdapter.setProgress(-1, -1, R.string.uninstalling);
|
||||
break;
|
||||
case Installer.ACTION_UNINSTALL_COMPLETE:
|
||||
if (mAdapter.getHeaderView() != null) {
|
||||
mAdapter.getHeaderView().setProgress(0, 0, 0); // Remove
|
||||
}
|
||||
mAdapter.clearProgress();
|
||||
onAppChanged();
|
||||
unregisterUninstallReceiver();
|
||||
break;
|
||||
case Installer.ACTION_UNINSTALL_INTERRUPTED:
|
||||
if (mAdapter.getHeaderView() != null) {
|
||||
mAdapter.getHeaderView().setProgress(0, 0, 0); // Remove
|
||||
}
|
||||
mAdapter.clearProgress();
|
||||
String errorMessage =
|
||||
intent.getStringExtra(Installer.EXTRA_ERROR_MESSAGE);
|
||||
|
||||
@ -477,9 +461,7 @@ public class AppDetails2 extends AppCompatActivity implements ShareChooserDialog
|
||||
*/
|
||||
private void cleanUpFinishedDownload() {
|
||||
mActiveDownloadUrlString = null;
|
||||
if (mAdapter.getHeaderView() != null) {
|
||||
mAdapter.getHeaderView().setProgress(0, 0, 0); // Remove
|
||||
}
|
||||
mAdapter.clearProgress();
|
||||
unregisterDownloaderReceiver();
|
||||
}
|
||||
|
||||
|
@ -160,8 +160,14 @@ public class AppDetailsRecyclerViewAdapter
|
||||
uriIsSetAndCanBeOpened(mApp.flattrID);
|
||||
}
|
||||
|
||||
public HeaderViewHolder getHeaderView() {
|
||||
return mHeaderView;
|
||||
public void clearProgress() {
|
||||
setProgress(0, 0, 0);
|
||||
}
|
||||
|
||||
public void setProgress(int bytesDownloaded, int totalBytes, int resIdString) {
|
||||
if (mHeaderView != null) {
|
||||
mHeaderView.setProgress(bytesDownloaded, totalBytes, resIdString);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user