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