From 5603b238b50e7979fa4aea4a2e2f6d293c666e99 Mon Sep 17 00:00:00 2001 From: Brian Pellin Date: Tue, 21 Sep 2010 22:39:31 -0500 Subject: [PATCH] Add new icon lookup logic, add contributors file --- AndroidManifest.xml | 2 +- CHANGELOG | 3 + CONTRIBUTORS | 5 ++ jni_root/README => README | 0 src/com/keepassdroid/EntryActivity.java | 9 +-- src/com/keepassdroid/EntryEditActivity.java | 12 +-- src/com/keepassdroid/GroupEditActivity.java | 3 +- src/com/keepassdroid/IconPickerActivity.java | 5 +- src/com/keepassdroid/utils/Icons.java | 80 ++++++++++++++++++++ src/com/keepassdroid/view/PwEntryView.java | 11 ++- src/com/keepassdroid/view/PwGroupView.java | 11 ++- 11 files changed, 111 insertions(+), 30 deletions(-) create mode 100644 CONTRIBUTORS rename jni_root/README => README (100%) create mode 100644 src/com/keepassdroid/utils/Icons.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 482d0af2a..38b82d8e1 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,7 +1,7 @@ + android:installLocation="auto" android:versionName="1.7" android:versionCode="55"> . + * + */ +package com.keepassdroid.utils; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +import com.android.keepass.R; + + +public class Icons { + private static Map icons = null; + + private static void buildList() { + if (icons == null) { + icons = new HashMap(); + + Class c = com.android.keepass.R.drawable.class; + + Field[] fields = c.getFields(); + + for (int i = 0; i < fields.length; i++) { + String fieldName = fields[i].getName(); + if (fieldName.matches("ic\\d{2}.*")) { + String sNum = fieldName.substring(2, 4); + int num = Integer.parseInt(sNum); + if (num > 69) { + continue; + } + + int resId; + try { + resId = fields[i].getInt(null); + } catch (Exception e) { + continue; + } + + icons.put(num, resId); + } + } + } + } + + public static int iconToResId(int iconId) { + buildList(); + + Integer resId = icons.get(iconId); + + if (resId == null) { + return R.drawable.ic99_blank; + } + + return resId; + } + + public static int count() { + buildList(); + + return icons.size(); + } + +} diff --git a/src/com/keepassdroid/view/PwEntryView.java b/src/com/keepassdroid/view/PwEntryView.java index 396feb91d..493f31838 100644 --- a/src/com/keepassdroid/view/PwEntryView.java +++ b/src/com/keepassdroid/view/PwEntryView.java @@ -34,6 +34,7 @@ import com.keepassdroid.GroupBaseActivity; import com.keepassdroid.database.PwEntry; import com.keepassdroid.database.PwEntryV3; import com.keepassdroid.settings.PrefsUtil; +import com.keepassdroid.utils.Icons; public class PwEntryView extends ClickView { @@ -59,12 +60,10 @@ public class PwEntryView extends ClickView { mPos = pos; View ev = View.inflate(mAct, R.layout.entry_list_entry, null); - int currIconResId = R.drawable.ic00 + pw.imageId; - if (currIconResId < R.drawable.ic99_blank) - { - ImageView iv = (ImageView) ev.findViewById(R.id.entry_icon); - iv.setImageResource(currIconResId); - } + + ImageView iv = (ImageView) ev.findViewById(R.id.entry_icon); + iv.setImageResource(Icons.iconToResId(pw.imageId)); + TextView tv = (TextView) ev.findViewById(R.id.entry_text); tv.setText(mPw.getDisplayTitle()); tv.setTextSize(PrefsUtil.getListTextSize(act)); diff --git a/src/com/keepassdroid/view/PwGroupView.java b/src/com/keepassdroid/view/PwGroupView.java index 09b263a39..209e22307 100644 --- a/src/com/keepassdroid/view/PwGroupView.java +++ b/src/com/keepassdroid/view/PwGroupView.java @@ -34,6 +34,7 @@ import com.keepassdroid.GroupBaseActivity; import com.keepassdroid.database.PwGroup; import com.keepassdroid.database.PwGroupV3; import com.keepassdroid.settings.PrefsUtil; +import com.keepassdroid.utils.Icons; public class PwGroupView extends ClickView { @@ -57,12 +58,10 @@ public class PwGroupView extends ClickView { mPw = pw; View gv = View.inflate(act, R.layout.group_list_entry, null); - int currIconResId = R.drawable.ic00 + pw.getIconId(); - if (currIconResId < R.drawable.ic99_blank) - { - ImageView iv = (ImageView) gv.findViewById(R.id.group_icon); - iv.setImageResource(currIconResId); - } + + ImageView iv = (ImageView) gv.findViewById(R.id.group_icon); + iv.setImageResource(Icons.iconToResId(pw.getIconId())); + TextView tv = (TextView) gv.findViewById(R.id.group_text); tv.setText(pw.getName()); float size = PrefsUtil.getListTextSize(act);