package com.almalence.plugins.vf.barcodescanner;
import android.app.Activity;
import android.content.Context;
import android.graphics.Rect;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
/* <!-- +++
import com.almalence.opencam_plus.ApplicationScreen;
import com.almalence.opencam_plus.R;
+++ --> */
//<!-- -+-
import com.almalence.opencam.ApplicationScreen;
import com.almalence.opencam.R;
//-+- -->
import com.almalence.ui.RotateLayout;
import com.almalence.ui.RotateDialog;
public class BarcodeHistoryListDialog extends RotateDialog implements android.view.View.OnClickListener
{
Context mainContext;
ListView list;
public BarcodeHistoryListDialog(Context context)
{
super(context);
mainContext = context;
requestWindowFeature(Window.FEATURE_NO_TITLE);
layoutView = (LinearLayout) getLayoutInflater().inflate(R.layout.plugin_vf_barcodescanner_list_layout, null);
// Set dialog size
Rect displayRectangle = new Rect();
Window window = ApplicationScreen.instance.getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle);
layoutView.setMinimumWidth((int) (displayRectangle.width() * 0.7f));
layoutView.setMinimumHeight((int) (displayRectangle.height() * 0.7f));
setContentView(layoutView);
list = (ListView) findViewById(R.id.barcodesHistoryList);
BarcodeArrayAdapter adapter = new BarcodeArrayAdapter(ApplicationScreen.instance,
BarcodeStorageHelper.getBarcodesList());
list.setAdapter(adapter);
Button clearBarcodesButton = (Button) findViewById(R.id.clearBarcodesButton);
clearBarcodesButton.setOnClickListener(this);
registerForContextMenu(list);
TextView barcodesHistoryEmpty = (TextView) findViewById(R.id.barcodesHistoryEmpty);
if (adapter.getCount() > 0)
{
barcodesHistoryEmpty.setVisibility(View.GONE);
}
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = ((Activity) mainContext).getMenuInflater();
inflater.inflate(R.menu.context_menu_plugin_vf_barcodescanner, menu);
// Delete button onClick listener.
menu.getItem(0).setOnMenuItemClickListener(new OnMenuItemClickListener()
{
public boolean onMenuItemClick(MenuItem item)
{
BarcodeArrayAdapter adapter = (BarcodeArrayAdapter) list.getAdapter();
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
Barcode barcode = adapter.getItem(info.position);
BarcodeStorageHelper.removeBarcode(barcode);
adapter.notifyDataSetChanged();
TextView barcodesHistoryEmpty = (TextView) findViewById(R.id.barcodesHistoryEmpty);
if (adapter.getCount() == 0)
{
barcodesHistoryEmpty.setVisibility(View.VISIBLE);
}
return true;
}
});
}
@Override
public void onClick(View v)
{
if (v.getId() == R.id.clearBarcodesButton)
{
BarcodeArrayAdapter adapter = (BarcodeArrayAdapter) list.getAdapter();
BarcodeStorageHelper.removeAll();
adapter.notifyDataSetChanged();
TextView barcodesHistoryEmpty = (TextView) findViewById(R.id.barcodesHistoryEmpty);
if (adapter.getCount() == 0)
{
barcodesHistoryEmpty.setVisibility(View.VISIBLE);
}
}
}
@Override
public void setRotate(int degree)
{
degree = degree >= 0 ? degree % 360 : degree % 360 + 360;
if (degree == currentOrientation)
{
return;
}
currentOrientation = degree;
RotateLayout r = (RotateLayout) findViewById(R.id.rotateLayout);
r.setAngle(degree);
r.requestLayout();
r.invalidate();
}
}