turn inline Install button into Cancel button during download
This commit is contained in:
		
							parent
							
								
									bc14e62e46
								
							
						
					
					
						commit
						89f5127f6d
					
				@ -41,6 +41,7 @@ import org.fdroid.fdroid.data.App;
 | 
				
			|||||||
import org.fdroid.fdroid.data.AppProvider;
 | 
					import org.fdroid.fdroid.data.AppProvider;
 | 
				
			||||||
import org.fdroid.fdroid.data.Repo;
 | 
					import org.fdroid.fdroid.data.Repo;
 | 
				
			||||||
import org.fdroid.fdroid.data.Schema.AppMetadataTable;
 | 
					import org.fdroid.fdroid.data.Schema.AppMetadataTable;
 | 
				
			||||||
 | 
					import org.fdroid.fdroid.installer.InstallManagerService;
 | 
				
			||||||
import org.fdroid.fdroid.localrepo.SwapView;
 | 
					import org.fdroid.fdroid.localrepo.SwapView;
 | 
				
			||||||
import org.fdroid.fdroid.net.Downloader;
 | 
					import org.fdroid.fdroid.net.Downloader;
 | 
				
			||||||
import org.fdroid.fdroid.net.DownloaderService;
 | 
					import org.fdroid.fdroid.net.DownloaderService;
 | 
				
			||||||
@ -210,7 +211,6 @@ public class SwapSuccessView extends SwapView implements LoaderManager.LoaderCal
 | 
				
			|||||||
                        default:
 | 
					                        default:
 | 
				
			||||||
                            throw new RuntimeException("intent action not handled!");
 | 
					                            throw new RuntimeException("intent action not handled!");
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -261,6 +261,25 @@ public class SwapSuccessView extends SwapView implements LoaderManager.LoaderCal
 | 
				
			|||||||
                resetView();
 | 
					                resetView();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            private final OnClickListener cancelListener = new OnClickListener() {
 | 
				
			||||||
 | 
					                @Override
 | 
				
			||||||
 | 
					                public void onClick(View v) {
 | 
				
			||||||
 | 
					                    if (apk != null) {
 | 
				
			||||||
 | 
					                        InstallManagerService.cancel(getContext(), apk.getCanonicalUrl());
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            private final OnClickListener installListener = new OnClickListener() {
 | 
				
			||||||
 | 
					                @Override
 | 
				
			||||||
 | 
					                public void onClick(View v) {
 | 
				
			||||||
 | 
					                    if (apk != null && (app.hasUpdates() || app.compatible)) {
 | 
				
			||||||
 | 
					                        getActivity().install(app, apk);
 | 
				
			||||||
 | 
					                        showProgress();
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            private void resetView() {
 | 
					            private void resetView() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (app == null) {
 | 
					                if (app == null) {
 | 
				
			||||||
@ -279,6 +298,7 @@ public class SwapSuccessView extends SwapView implements LoaderManager.LoaderCal
 | 
				
			|||||||
                if (app.hasUpdates()) {
 | 
					                if (app.hasUpdates()) {
 | 
				
			||||||
                    btnInstall.setText(R.string.menu_upgrade);
 | 
					                    btnInstall.setText(R.string.menu_upgrade);
 | 
				
			||||||
                    btnInstall.setVisibility(View.VISIBLE);
 | 
					                    btnInstall.setVisibility(View.VISIBLE);
 | 
				
			||||||
 | 
					                    btnInstall.setOnClickListener(installListener);
 | 
				
			||||||
                    statusIncompatible.setVisibility(View.GONE);
 | 
					                    statusIncompatible.setVisibility(View.GONE);
 | 
				
			||||||
                    statusInstalled.setVisibility(View.GONE);
 | 
					                    statusInstalled.setVisibility(View.GONE);
 | 
				
			||||||
                } else if (app.isInstalled(getContext())) {
 | 
					                } else if (app.isInstalled(getContext())) {
 | 
				
			||||||
@ -289,29 +309,26 @@ public class SwapSuccessView extends SwapView implements LoaderManager.LoaderCal
 | 
				
			|||||||
                    btnInstall.setVisibility(View.GONE);
 | 
					                    btnInstall.setVisibility(View.GONE);
 | 
				
			||||||
                    statusIncompatible.setVisibility(View.VISIBLE);
 | 
					                    statusIncompatible.setVisibility(View.VISIBLE);
 | 
				
			||||||
                    statusInstalled.setVisibility(View.GONE);
 | 
					                    statusInstalled.setVisibility(View.GONE);
 | 
				
			||||||
 | 
					                } else if (progressView.getVisibility() == View.VISIBLE) {
 | 
				
			||||||
 | 
					                    btnInstall.setText(R.string.cancel);
 | 
				
			||||||
 | 
					                    btnInstall.setVisibility(View.VISIBLE);
 | 
				
			||||||
 | 
					                    btnInstall.setOnClickListener(cancelListener);
 | 
				
			||||||
 | 
					                    statusIncompatible.setVisibility(View.GONE);
 | 
				
			||||||
 | 
					                    statusInstalled.setVisibility(View.GONE);
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    btnInstall.setText(R.string.menu_install);
 | 
					                    btnInstall.setText(R.string.menu_install);
 | 
				
			||||||
                    btnInstall.setVisibility(View.VISIBLE);
 | 
					                    btnInstall.setVisibility(View.VISIBLE);
 | 
				
			||||||
 | 
					                    btnInstall.setOnClickListener(installListener);
 | 
				
			||||||
                    statusIncompatible.setVisibility(View.GONE);
 | 
					                    statusIncompatible.setVisibility(View.GONE);
 | 
				
			||||||
                    statusInstalled.setVisibility(View.GONE);
 | 
					                    statusInstalled.setVisibility(View.GONE);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					 | 
				
			||||||
                OnClickListener installListener = new OnClickListener() {
 | 
					 | 
				
			||||||
                    @Override
 | 
					 | 
				
			||||||
                    public void onClick(View v) {
 | 
					 | 
				
			||||||
                        if (apk != null && (app.hasUpdates() || app.compatible)) {
 | 
					 | 
				
			||||||
                            getActivity().install(app, apk);
 | 
					 | 
				
			||||||
                            showProgress();
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                btnInstall.setOnClickListener(installListener);
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            private void showProgress() {
 | 
					            private void showProgress() {
 | 
				
			||||||
 | 
					                btnInstall.setText(R.string.cancel);
 | 
				
			||||||
 | 
					                btnInstall.setVisibility(View.VISIBLE);
 | 
				
			||||||
 | 
					                btnInstall.setOnClickListener(cancelListener);
 | 
				
			||||||
                progressView.setVisibility(View.VISIBLE);
 | 
					                progressView.setVisibility(View.VISIBLE);
 | 
				
			||||||
                btnInstall.setVisibility(View.GONE);
 | 
					 | 
				
			||||||
                statusInstalled.setVisibility(View.GONE);
 | 
					                statusInstalled.setVisibility(View.GONE);
 | 
				
			||||||
                statusIncompatible.setVisibility(View.GONE);
 | 
					                statusIncompatible.setVisibility(View.GONE);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
				
			|||||||
@ -82,14 +82,14 @@
 | 
				
			|||||||
            android:layout_height="wrap_content"
 | 
					            android:layout_height="wrap_content"
 | 
				
			||||||
            android:indeterminate="true"
 | 
					            android:indeterminate="true"
 | 
				
			||||||
            style="?android:attr/progressBarStyleHorizontal"
 | 
					            style="?android:attr/progressBarStyleHorizontal"
 | 
				
			||||||
            android:layout_toEndOf="@android:id/icon"
 | 
					 | 
				
			||||||
            android:paddingStart="5dp"
 | 
					            android:paddingStart="5dp"
 | 
				
			||||||
            android:paddingLeft="5dp"
 | 
					            android:paddingLeft="5dp"
 | 
				
			||||||
            android:paddingEnd="5dp"
 | 
					            android:paddingEnd="5dp"
 | 
				
			||||||
            android:paddingRight="5dp"
 | 
					            android:paddingRight="5dp"
 | 
				
			||||||
 | 
					            android:layout_toEndOf="@android:id/icon"
 | 
				
			||||||
            android:layout_toRightOf="@android:id/icon"
 | 
					            android:layout_toRightOf="@android:id/icon"
 | 
				
			||||||
            android:layout_alignParentRight="true"
 | 
					            android:layout_toStartOf="@+id/button_or_text"
 | 
				
			||||||
            android:layout_alignParentEnd="true"
 | 
					            android:layout_toLeftOf="@+id/button_or_text"
 | 
				
			||||||
            android:layout_below="@+id/name"
 | 
					            android:layout_below="@+id/name"
 | 
				
			||||||
    />
 | 
					    />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user