diff --git a/app/app-release.apk b/app/app-release.apk index e6d845fc84ee..5ee42e358f4f 100644 Binary files a/app/app-release.apk and b/app/app-release.apk differ diff --git a/app/build.gradle b/app/build.gradle index 978f87a01c62..44cb19ea2f56 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "openfoodfacts.github.scrachx.openfood" minSdkVersion 16 targetSdkVersion 24 - versionCode 23 - versionName "0.2.5" + versionCode 24 + versionName "0.2.6" } dexOptions { @@ -57,11 +57,11 @@ apply plugin: 'com.neenbedankt.android-apt' dependencies { - compile 'com.android.support:appcompat-v7:23.4.0' - compile 'com.android.support:preference-v14:23.4.0' - compile 'com.android.support:support-v4:23.4.0' + compile 'com.android.support:appcompat-v7:24.2.1' + compile 'com.android.support:preference-v14:24.2.1' + compile 'com.android.support:support-v4:24.2.1' compile 'com.android.support:multidex:1.0.1' - compile 'com.android.support:recyclerview-v7:23.4.0' + compile 'com.android.support:recyclerview-v7:24.2.1' compile 'com.jakewharton:butterknife:8.4.0' apt 'com.jakewharton:butterknife-compiler:8.4.0' diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/fragments/AlertUserFragment.java b/app/src/main/java/openfoodfacts/github/scrachx/openfood/fragments/AlertUserFragment.java index 423d965f5ad0..3d6f2ed4d06c 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/fragments/AlertUserFragment.java +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/fragments/AlertUserFragment.java @@ -9,6 +9,7 @@ import android.support.annotation.Nullable; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -22,8 +23,11 @@ import org.apache.commons.collections.IteratorUtils; import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; +import java.util.Map; import butterknife.BindView; import butterknife.OnClick; @@ -75,29 +79,38 @@ public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) @OnClick(R.id.fab) protected void onAddAllergens() { final List all = IteratorUtils.toList(Allergen.findAll(Allergen.class)); - List allS = new ArrayList<>(); + final LinkedHashMap allS = new LinkedHashMap<>(); + int index = 0; for (Allergen a : all) { if (Locale.getDefault().getLanguage().contains("fr")){ - if(a.getIdAllergen().contains("fr:")) allS.add(a.getName().substring(a.getName().indexOf(":")+1)); + if(a.getIdAllergen().contains("fr:")) allS.put(index, a.getName().substring(a.getName().indexOf(":")+1)); } else if (Locale.getDefault().getLanguage().contains("en")) { - if(a.getIdAllergen().contains("en:")) allS.add(a.getName().substring(a.getName().indexOf(":")+1)); + if(a.getIdAllergen().contains("en:")) allS.put(index, a.getName().substring(a.getName().indexOf(":")+1)); } + index++; } if(allS.size() > 0) { new MaterialDialog.Builder(mView.getContext()) .title(R.string.title_dialog_alert) - .items(allS) + .items(allS.values()) .itemsCallback(new MaterialDialog.ListCallback() { @Override public void onSelection(MaterialDialog dialog, View view, int which, CharSequence text) { - all.get(which).setEnable("true"); - all.get(which).save(); boolean canAdd = true; + int index = -1; + String alergeneStringByPos = new ArrayList(allS.values()).get(which); for(Allergen a : mAllergens) { if(a.getName().equals(all.get(which).getName())) canAdd = false; } - if(canAdd) { - mAllergens.add(all.get(which)); + for(Allergen a : all) { + if(a.getName().substring(a.getName().indexOf(":")+1).equalsIgnoreCase(alergeneStringByPos)) { + index = getKey(allS, alergeneStringByPos); + all.get(index).setEnable("true"); + all.get(index).save(); + } + } + if(canAdd && index != -1) { + mAllergens.add(all.get(index)); mAdapter.notifyItemInserted(mAllergens.size() - 1); mRvAllergens.scrollToPosition(mAdapter.getItemCount() - 1); } @@ -152,4 +165,15 @@ public void onAllergensResponse(boolean value) { } + public static Integer getKey(HashMap map, String value) { + Integer key = null; + for(Map.Entry entry : map.entrySet()) { + if((value == null && entry.getValue() == null) || (value != null && value.equals(entry.getValue()))) { + key = entry.getKey(); + break; + } + } + return key; + } + } diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/views/adapters/AllergensAdapter.java b/app/src/main/java/openfoodfacts/github/scrachx/openfood/views/adapters/AllergensAdapter.java index c5ba1b6dc0c4..97bba6912db9 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/views/adapters/AllergensAdapter.java +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/views/adapters/AllergensAdapter.java @@ -46,7 +46,7 @@ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { public void onBindViewHolder(final ViewHolder holder, final int position) { final Allergen allergen = mAllergens.get(position); TextView textView = holder.nameTextView; - textView.setText(allergen.getName()); + textView.setText(allergen.getName().substring(allergen.getName().indexOf(":")+1)); Button button = holder.messageButton; button.setText(R.string.delete_txt); button.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/res/drawable-hdpi/nnc_a.png b/app/src/main/res/drawable-hdpi/nnc_a.png index 80a0c392dea3..1ff073f26ea4 100644 Binary files a/app/src/main/res/drawable-hdpi/nnc_a.png and b/app/src/main/res/drawable-hdpi/nnc_a.png differ diff --git a/app/src/main/res/drawable-hdpi/nnc_b.png b/app/src/main/res/drawable-hdpi/nnc_b.png index a0c669dab167..6233a7c2e23c 100644 Binary files a/app/src/main/res/drawable-hdpi/nnc_b.png and b/app/src/main/res/drawable-hdpi/nnc_b.png differ diff --git a/app/src/main/res/drawable-hdpi/nnc_c.png b/app/src/main/res/drawable-hdpi/nnc_c.png index 652a369778fd..8e357476de25 100644 Binary files a/app/src/main/res/drawable-hdpi/nnc_c.png and b/app/src/main/res/drawable-hdpi/nnc_c.png differ diff --git a/app/src/main/res/drawable-hdpi/nnc_d.png b/app/src/main/res/drawable-hdpi/nnc_d.png index f6fc07c45285..60110c076122 100644 Binary files a/app/src/main/res/drawable-hdpi/nnc_d.png and b/app/src/main/res/drawable-hdpi/nnc_d.png differ diff --git a/app/src/main/res/drawable-hdpi/nnc_e.png b/app/src/main/res/drawable-hdpi/nnc_e.png index c5c15def21bc..14ad82a19e23 100644 Binary files a/app/src/main/res/drawable-hdpi/nnc_e.png and b/app/src/main/res/drawable-hdpi/nnc_e.png differ