diff --git a/README.md b/README.md index 5fda50d..afe895d 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Sąrašiukas, kaip programėlė buvo tobulinama Tie kas atėjo pirmą kartą, reikėjo įsidiegti: * Naujausią [Android Studio](http://developer.android.com/sdk/installing/studio.html) -* [Gradle versiją 1.9](http://services.gradle.org/distributions/gradle-1.9-all.zip) +* [Gradle versiją 1.11](http://services.gradle.org/distributions/gradle-1.11-all.zip) * [Java JDK](http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html) ### Susigeneruoti Android programėlę @@ -126,3 +126,9 @@ Nuskenuotų prekių sąrašą vis atnaujinti įrašais duomenų bazėje * Sąrašo eilutės vaizdavimui sukurti layout'ą (pradžiai tik su `TextView` barkodo atvaizdavimui) [Pasikeitimai](https://github.com/gdgvilnius/MaistoBankas/commit/) + +### Rodyti informaciją apie nuskenuotą prekę + +* Parsisiųsti prekės informaciją +* Susikurti prekės informacijos duomenų modelį ir išsaugoti informaciją į DB +* Atvaizduoti prekės informaciją sąraše diff --git a/app/build.gradle b/app/build.gradle index 7042502..a68f7de 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'android' android { compileSdkVersion 19 - buildToolsVersion "19.0.1" + buildToolsVersion "19.0.3" defaultConfig { minSdkVersion 7 @@ -21,5 +21,8 @@ android { dependencies { compile 'com.android.support:appcompat-v7:+' compile 'com.j256.ormlite:ormlite-android:4.+' + compile 'com.squareup.retrofit:retrofit:1.5.0' compile 'com.android.support:support-v4:13.0.+' + compile 'com.google.code.gson:gson:2.2.4' + compile 'com.google.guava:guava:16.+' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9fa166f..303404d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,15 +1,18 @@ + package="lt.andro.maistobankas"> + + + android:theme="@style/AppTheme"> + android:label="@string/app_name"> diff --git a/app/src/main/java/lt/andro/maistobankas/MainActivity.java b/app/src/main/java/lt/andro/maistobankas/MainActivity.java index 7259bb4..45101ee 100644 --- a/app/src/main/java/lt/andro/maistobankas/MainActivity.java +++ b/app/src/main/java/lt/andro/maistobankas/MainActivity.java @@ -10,8 +10,12 @@ import java.sql.SQLException; import java.util.Date; +import lt.andro.maistobankas.api.entity.ItemInfoResponse; import lt.andro.maistobankas.db.ScannedItem; import lt.andro.maistobankas.util.ScanUtil; +import retrofit.Callback; +import retrofit.RetrofitError; +import retrofit.client.Response; public class MainActivity extends BaseActivity { @@ -59,6 +63,18 @@ public void onActivityResult(int requestCode, int resultCode, Intent intent) { scannedItem.setTime(new Date()); scannedItem.setVolunteer("Vilius"); + MainApplication.mainService.getItemInfo(barcode, new Callback() { + @Override + public void success(ItemInfoResponse itemInfoResponse, Response response) { + Log.d("MainActivity", itemInfoResponse.toString()); + } + + @Override + public void failure(RetrofitError error) { + Log.e("MainActivity", error.getMessage()); + } + }); + try { getHelper().getScannedItemDao().create(scannedItem); } catch (SQLException e) { diff --git a/app/src/main/java/lt/andro/maistobankas/MainApplication.java b/app/src/main/java/lt/andro/maistobankas/MainApplication.java new file mode 100644 index 0000000..76cd3b4 --- /dev/null +++ b/app/src/main/java/lt/andro/maistobankas/MainApplication.java @@ -0,0 +1,25 @@ +package lt.andro.maistobankas; + +import android.app.Application; + +import lt.andro.maistobankas.api.ItemInfoProviders; +import lt.andro.maistobankas.api.MainService; +import lt.andro.maistobankas.util.Utils; +import retrofit.RestAdapter; +import retrofit.converter.GsonConverter; + +/** + * @since 2014-03-29 11:58 + */ +public class MainApplication extends Application { + public static MainService mainService; + + public MainApplication() { + final RestAdapter restAdapter = new RestAdapter.Builder() + .setEndpoint(ItemInfoProviders.getServicesEndpoint()) + .setConverter(new GsonConverter(Utils.getGson())) + .setLogLevel(RestAdapter.LogLevel.FULL).build(); + + mainService = restAdapter.create(MainService.class); + } +} diff --git a/app/src/main/java/lt/andro/maistobankas/api/ItemInfoProviders.java b/app/src/main/java/lt/andro/maistobankas/api/ItemInfoProviders.java new file mode 100644 index 0000000..a217b08 --- /dev/null +++ b/app/src/main/java/lt/andro/maistobankas/api/ItemInfoProviders.java @@ -0,0 +1,12 @@ +package lt.andro.maistobankas.api; + +/** + * @since 2014-03-29 11:55 + */ +public class ItemInfoProviders { + private static final String SERVICES_ENDPOINT = "http://somedomain.com/";//TODO add real service endpoint + + public static String getServicesEndpoint() { + return SERVICES_ENDPOINT; + } +} diff --git a/app/src/main/java/lt/andro/maistobankas/api/MainService.java b/app/src/main/java/lt/andro/maistobankas/api/MainService.java new file mode 100644 index 0000000..6be3bc5 --- /dev/null +++ b/app/src/main/java/lt/andro/maistobankas/api/MainService.java @@ -0,0 +1,15 @@ +package lt.andro.maistobankas.api; + +import lt.andro.maistobankas.api.entity.ItemInfoResponse; +import retrofit.Callback; +import retrofit.http.GET; +import retrofit.http.Path; + +/** + * @since 2014-03-29 11:34 + */ +public interface MainService { + + @GET("/cards/by-gtin/{gtin}?format=json") + void getItemInfo(@Path("gtin") String globalTradeItemNumber, Callback callback); +} diff --git a/app/src/main/java/lt/andro/maistobankas/api/entity/ItemInfoResponse.java b/app/src/main/java/lt/andro/maistobankas/api/entity/ItemInfoResponse.java new file mode 100644 index 0000000..4f90827 --- /dev/null +++ b/app/src/main/java/lt/andro/maistobankas/api/entity/ItemInfoResponse.java @@ -0,0 +1,55 @@ +package lt.andro.maistobankas.api.entity; + +import java.util.Objects; + +/** + * @since 2014-03-29 11:50 + */ +public class ItemInfoResponse { + + String title; + String amount; + boolean isDiscount; + double discount; + double price; + /** + * Global Trade Item Number + */ + String gtin; + + public String getTitle() { + return title; + } + + public String getAmount() { + return amount; + } + + public boolean isDiscount() { + return isDiscount; + } + + public double getDiscount() { + return discount; + } + + public double getPrice() { + return price; + } + + public String getGtin() { + return gtin; + } + + @Override + public String toString() { + return com.google.common.base.Objects.toStringHelper(this) + .add("title", title) + .add("amount", amount) + .add("isDiscount", isDiscount) + .add("discount", discount) + .add("price", price) + .add("gtin", gtin) + .toString(); + } +} diff --git a/app/src/main/java/lt/andro/maistobankas/util/Utils.java b/app/src/main/java/lt/andro/maistobankas/util/Utils.java new file mode 100644 index 0000000..69dd544 --- /dev/null +++ b/app/src/main/java/lt/andro/maistobankas/util/Utils.java @@ -0,0 +1,18 @@ + package lt.andro.maistobankas.util; + + import com.google.gson.Gson; + import com.google.gson.GsonBuilder; + + /** + * @since 2014-03-29 12:23 + */ + public class Utils { + private static Gson gson; + + public static Gson getGson() { + if (gson == null) { + gson = new GsonBuilder().create(); + } + return gson; + } + } diff --git a/build.gradle b/build.gradle index 9597164..80eec1a 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.7.+' + classpath 'com.android.tools.build:gradle:0.9.+' } }