Skip to content

Commit

Permalink
Display scanned records
Browse files Browse the repository at this point in the history
### Rodyti įrašus išsaugotus duomenų bazėje
Nuskenuotų prekių sąrašą vis atnaujinti įrašais duomenų bazėje

* `MainFragment`e `onResume` metode iškviesti `dbHelper.getScannedItemDao().queryForAll();`
* Sąrašo atvaizdavimui sukurti naują adapterį
* Sąrašo eilutės vaizdavimui sukurti layout'ą (pradžiai tik su `TextView` barkodo atvaizdavimui)
  • Loading branch information
ViliusKraujutis committed Feb 8, 2014
1 parent e8f589d commit 585d87a
Show file tree
Hide file tree
Showing 8 changed files with 139 additions and 38 deletions.
11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,4 +116,13 @@ galima paskaityti/pažiūrėti štai čia:

Pasinaudojant `Helper` klase išsaugoti įrašą duomenų bazėje.

[Pasikeitimai]()
[Pasikeitimai](https://github.com/gdgvilnius/MaistoBankas/commit/e8f589d7b588ebb9ab201e62cf5c1d74cddbd89a)

### Rodyti įrašus išsaugotus duomenų bazėje
Nuskenuotų prekių sąrašą vis atnaujinti įrašais duomenų bazėje

* `MainFragment`e `onResume` metode iškviesti `dbHelper.getScannedItemDao().queryForAll();`
* Sąrašo atvaizdavimui sukurti naują adapterį
* Sąrašo eilutės vaizdavimui sukurti layout'ą (pradžiai tik su `TextView` barkodo atvaizdavimui)

[Pasikeitimai](https://github.com/gdgvilnius/MaistoBankas/commit/)
34 changes: 3 additions & 31 deletions app/src/main/java/lt/andro/maistobankas/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import java.util.Date;

import lt.andro.maistobankas.db.ScannedItem;
import lt.andro.maistobankas.util.ScanUtil;

public class MainActivity extends BaseActivity {

Expand Down Expand Up @@ -49,7 +50,7 @@ public boolean onOptionsItemSelected(MenuItem item) {

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanResult != null) {
if (scanResult != null && resultCode == RESULT_OK) {
final String barcode = scanResult.getContents();
Toast.makeText(this, "ScanResult=" + barcode, Toast.LENGTH_LONG).show();
final ScannedItem scannedItem = new ScannedItem();
Expand All @@ -63,36 +64,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent intent) {
} catch (SQLException e) {
Log.e("MB", "Failed saving scanned Item.", e);
}
// // you get the SQLiteOpenHelper from your Android Activity
// ConnectionSource connectionSource =
// new AndroidConnectionSource(get);
//
//// instantiate the DAO to handle Account with String id
// Dao<Account,String> accountDao =
// BaseDaoImpl.createDao(connectionSource, Account.class);
//
//// if you need to create the 'accounts' table make this call
// TableUtils.createTable(connectionSource, Account.class);
//
//// create an instance of Account
// String name = "Jim Smith";
// Account account = new Account(name, "_secret");
//
//// persist the account object to the database
//// it should return 1 for the 1 row inserted
// if (accountDao.create(account) != 1) {
// throw new Exception("Failure adding account");
// }
//
//// retrieve the account
// Account account2 = accountDao.queryForId(name);
//// show its password
// System.out.println("Account: " + account2.getPassword());
//
//// close the connection source
// connectionSource.close();
// // TODO save scan result into database
ScanUtil.initiateScan(this);
}
// else continue with any other code you need in the method
}
}
40 changes: 35 additions & 5 deletions app/src/main/java/lt/andro/maistobankas/MainFragment.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
package lt.andro.maistobankas;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import android.widget.ListView;

import java.sql.SQLException;
import java.util.List;

import lt.andro.maistobankas.adapter.ScannedItemsAdapter;
import lt.andro.maistobankas.db.DatabaseHelper;
import lt.andro.maistobankas.db.ScannedItem;
import lt.andro.maistobankas.util.ScanUtil;

/**
* A placeholder fragment containing a simple view.
Expand All @@ -33,11 +41,33 @@ public void onClick(View v) {
rootView.findViewById(R.id.buttonScan).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
IntentIntegrator integrator = new IntentIntegrator(getActivity());
integrator.initiateScan();
final FragmentActivity activity = getActivity();
ScanUtil.initiateScan (activity);
}
});

return rootView;
}

@Override
public void onResume() {
super.onResume();
final DatabaseHelper dbHelper = ((BaseActivity) getActivity()).getHelper();
try {
final List<ScannedItem> scannedItems = dbHelper.getScannedItemDao().queryForAll();
showScannedItems(scannedItems);
} catch (SQLException e) {
e.printStackTrace();
}
}

private void showScannedItems(List<ScannedItem> scannedItems) {
if (getView() == null) {
Log.e("MB", "view is null");
return;
}

final ListView itemsList = (ListView) getView().findViewById(R.id.main_items_list);
itemsList.setAdapter(new ScannedItemsAdapter(getActivity(), scannedItems));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package lt.andro.maistobankas.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.List;

import lt.andro.maistobankas.R;
import lt.andro.maistobankas.db.ScannedItem;

/**
* @author Vilius Kraujutis viliusk@gmail.com
* @since 2014-02-08 16:02
*/
public class ScannedItemsAdapter extends BaseAdapter {
private final Context context;
private final List<ScannedItem> scannedItems;

public ScannedItemsAdapter(Context context, List<ScannedItem> scannedItems) {
this.context = context;
this.scannedItems = scannedItems;
}

@Override
public int getCount() {
return scannedItems.size();
}

@Override
public ScannedItem getItem(int position) {
return scannedItems.get(position);
}

@Override
public long getItemId(int position) {
return getItem(position).getId();
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.row_scanned_item, parent, false);
}

final TextView barcodeView = (TextView) convertView.findViewById(R.id.row_scanned_item_barcode);
final ScannedItem item = getItem(position);
barcodeView.setText(item.getBarcode());
return convertView;
}
}
20 changes: 20 additions & 0 deletions app/src/main/java/lt/andro/maistobankas/util/ScanUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package lt.andro.maistobankas.util;

import android.support.v4.app.FragmentActivity;

import lt.andro.maistobankas.IntentIntegrator;
import lt.andro.maistobankas.R;

/**
* @author Vilius Kraujutis viliusk@gmail.com
* @since 2014-02-08 16:30
*/
public class ScanUtil {

public static void initiateScan(FragmentActivity activity) {
IntentIntegrator integrator = new IntentIntegrator(activity);
integrator.setMessage(activity.getString(R.string.barcode_scan_message));
integrator.initiateScan();
}

}
2 changes: 1 addition & 1 deletion app/src/main/res/layout/fragment_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listViewItems" />
android:id="@+id/main_items_list" />
</LinearLayout>
15 changes: 15 additions & 0 deletions app/src/main/res/layout/row_scanned_item.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:id="@+id/row_scanned_item_barcode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="123412341234" />

</LinearLayout>
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
<string name="list_header_items">Prekės</string>
<string name="button_settings">Nustatymai</string>
<string name="button_send">Skenuoti</string>
<string name="barcode_scan_message">Prašome nuskenuoti prekės barkodą</string>

</resources>

0 comments on commit 585d87a

Please sign in to comment.