Fix for app crash

This commit is contained in:
mhutti1 2016-09-25 19:21:41 +01:00
parent ece26a422d
commit b4be999b44

View File

@ -43,6 +43,7 @@ public class DownloadFragment extends Fragment {
private ZimManageActivity zimManageActivity; private ZimManageActivity zimManageActivity;
CoordinatorLayout mainLayout; CoordinatorLayout mainLayout;
private static FragmentActivity faActivity; private static FragmentActivity faActivity;
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
faActivity = (FragmentActivity) super.getActivity(); faActivity = (FragmentActivity) super.getActivity();
@ -81,6 +82,7 @@ public class DownloadFragment extends Fragment {
private LinkedHashMap<Integer, LibraryNetworkEntity.Book> mData = new LinkedHashMap<Integer, LibraryNetworkEntity.Book>(); private LinkedHashMap<Integer, LibraryNetworkEntity.Book> mData = new LinkedHashMap<Integer, LibraryNetworkEntity.Book>();
private Integer[] mKeys; private Integer[] mKeys;
public DownloadAdapter(LinkedHashMap<Integer, LibraryNetworkEntity.Book> data) { public DownloadAdapter(LinkedHashMap<Integer, LibraryNetworkEntity.Book> data) {
mData = data; mData = data;
mKeys = mData.keySet().toArray(new Integer[data.size()]); mKeys = mData.keySet().toArray(new Integer[data.size()]);
@ -102,6 +104,7 @@ public class DownloadFragment extends Fragment {
} }
public void updateProgress(int progress, int notificationID) { public void updateProgress(int progress, int notificationID) {
if (isAdded()) {
int position = Arrays.asList(mKeys).indexOf(notificationID); int position = Arrays.asList(mKeys).indexOf(notificationID);
ViewGroup viewGroup = (ViewGroup) listView.getChildAt(position - listView.getFirstVisiblePosition()); ViewGroup viewGroup = (ViewGroup) listView.getChildAt(position - listView.getFirstVisiblePosition());
ProgressBar downloadProgress = (ProgressBar) viewGroup.findViewById(R.id.downloadProgress); ProgressBar downloadProgress = (ProgressBar) viewGroup.findViewById(R.id.downloadProgress);
@ -109,7 +112,7 @@ public class DownloadFragment extends Fragment {
if (progress == 100) { if (progress == 100) {
ImageView pause = (ImageView) viewGroup.findViewById(R.id.pause); ImageView pause = (ImageView) viewGroup.findViewById(R.id.pause);
pause.setEnabled(false); pause.setEnabled(false);
if (isAdded()) { {
Snackbar completeSnack = Snackbar.make(mainLayout, getResources().getString(R.string.download_complete_snackbar), Snackbar.LENGTH_LONG); Snackbar completeSnack = Snackbar.make(mainLayout, getResources().getString(R.string.download_complete_snackbar), Snackbar.LENGTH_LONG);
String fileName = mDownloadFiles.get(mKeys[position]); String fileName = mDownloadFiles.get(mKeys[position]);
completeSnack.setAction(getResources().getString(R.string.open), new View.OnClickListener() { completeSnack.setAction(getResources().getString(R.string.open), new View.OnClickListener() {
@ -125,6 +128,7 @@ public class DownloadFragment extends Fragment {
updateNoDownloads(); updateNoDownloads();
} }
} }
}
@Override @Override
public View getView(int position, View convertView, ViewGroup parent) { public View getView(int position, View convertView, ViewGroup parent) {
@ -191,18 +195,21 @@ public class DownloadFragment extends Fragment {
public static class Download { public static class Download {
public String title; public String title;
public int progress; public int progress;
public Download(String title) { public Download(String title) {
this.title = title; this.title = title;
progress = 0; progress = 0;
} }
} }
public static void addDownload(int position, LibraryNetworkEntity.Book book, String fileName) { public static void addDownload(int position, LibraryNetworkEntity.Book book, String fileName) {
mDownloads.put(position, book); mDownloads.put(position, book);
mDownloadFiles.put(position, fileName); mDownloadFiles.put(position, fileName);
downloadAdapter.notifyDataSetChanged(); downloadAdapter.notifyDataSetChanged();
updateNoDownloads(); updateNoDownloads();
} }
public Bitmap StringToBitMap(String encodedString) { public Bitmap StringToBitMap(String encodedString) {
try { try {
byte[] encodeByte = Base64.decode(encodedString, Base64.DEFAULT); byte[] encodeByte = Base64.decode(encodedString, Base64.DEFAULT);