Donwload button added to long-press menu on the updates page

This commit is contained in:
Sergey Eremin
2017-11-17 15:40:28 +03:00
parent cd5556edb7
commit f89b2ea408
2 changed files with 22 additions and 39 deletions

View File

@@ -1,12 +1,14 @@
package com.github.yeriomin.yalpstore;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import com.github.yeriomin.yalpstore.fragment.details.ButtonDownload;
import com.github.yeriomin.yalpstore.fragment.details.ButtonUninstall;
import com.github.yeriomin.yalpstore.fragment.details.DownloadOptions;
import com.github.yeriomin.yalpstore.model.App;
@@ -45,27 +47,36 @@ abstract public class AppListActivity extends YalpStoreActivity {
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
DetailsActivity.app = getAppByListPosition(info.position);
DownloadOptions menuManager = new DownloadOptions(this, DetailsActivity.app);
menuManager.inflate(menu);
if (DetailsActivity.app.isInstalled()) {
menu.findItem(R.id.action_uninstall).setVisible(true);
}
new DownloadOptions(this, DetailsActivity.app).inflate(menu);
menu.findItem(R.id.action_download).setVisible(new ButtonDownload(this, DetailsActivity.app).shouldBeVisible());
menu.findItem(R.id.action_uninstall).setVisible(DetailsActivity.app.isInstalled());
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
DetailsActivity.app = getAppByListPosition(info.position);
if (item.getItemId() == R.id.action_uninstall) {
ButtonUninstall buttonUninstall = new ButtonUninstall(this, DetailsActivity.app);
buttonUninstall.uninstall();
} else {
DownloadOptions menuManager = new DownloadOptions(this, DetailsActivity.app);
menuManager.onContextItemSelected(item);
switch (item.getItemId()) {
case R.id.action_download:
new ButtonDownload(this, DetailsActivity.app).checkAndDownload();
break;
case R.id.action_uninstall:
new ButtonUninstall(this, DetailsActivity.app).uninstall();
break;
default:
return new DownloadOptions(this, DetailsActivity.app).onContextItemSelected(item);
}
return true;
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
if (isGranted(requestCode, permissions, grantResults)) {
Log.i(getClass().getName(), "User granted the write permission");
new ButtonDownload(this, DetailsActivity.app).download();
}
}
@Override
public void onContentChanged() {
super.onContentChanged();

View File

@@ -71,34 +71,6 @@ abstract public class EndlessScrollActivity extends AppListActivity {
iterator = null;
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
DetailsActivity.app = getAppByListPosition(info.position);
menu.findItem(R.id.action_download).setVisible(new ButtonDownload(this, DetailsActivity.app).shouldBeVisible());
}
@Override
public boolean onContextItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_download) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
App app = getAppByListPosition(info.position);
new ButtonDownload(this, app).checkAndDownload();
return true;
} else {
return super.onContextItemSelected(item);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
if (isGranted(requestCode, permissions, grantResults)) {
Log.i(getClass().getName(), "User granted the write permission");
new ButtonDownload(this, DetailsActivity.app).download();
}
}
protected EndlessScrollTask prepareTask(EndlessScrollTask task) {
task.setContext(this);
task.setErrorView((TextView) getListView().getEmptyView());