From 9ee0face84868a3decbb36cada63e3c783766e6e Mon Sep 17 00:00:00 2001 From: Felix Bechstein Date: Wed, 20 Jan 2010 18:33:15 +0100 Subject: [PATCH] performance improves, bugfixes --- src/de/ub0r/android/websms/Preferences.java | 5 +-- src/de/ub0r/android/websms/WebSMS.java | 56 +++++++---------------------- 2 files changed, 16 insertions(+), 45 deletions(-) diff --git a/src/de/ub0r/android/websms/Preferences.java b/src/de/ub0r/android/websms/Preferences.java index 1abb8fa..7dbf865 100644 --- a/src/de/ub0r/android/websms/Preferences.java +++ b/src/de/ub0r/android/websms/Preferences.java @@ -56,9 +56,10 @@ public class Preferences extends PreferenceActivity implements p.registerOnSharedPreferenceChangeListener(this); PreferenceCategory pc = (PreferenceCategory) this .findPreference("settings_connectors"); - for (ConnectorSpec cs : WebSMS.getConnectors( + final ConnectorSpec[] css = WebSMS.getConnectors( ConnectorSpec.CAPABILITIES_NONE, // . - ConnectorSpec.STATUS_INACTIVE)) { + ConnectorSpec.STATUS_INACTIVE); + for (ConnectorSpec cs : css) { final String action = cs.getPrefsIntent(); if (action == null) { continue; diff --git a/src/de/ub0r/android/websms/WebSMS.java b/src/de/ub0r/android/websms/WebSMS.java index c57ae80..51376a8 100644 --- a/src/de/ub0r/android/websms/WebSMS.java +++ b/src/de/ub0r/android/websms/WebSMS.java @@ -18,8 +18,6 @@ */ package de.ub0r.android.websms; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Calendar; @@ -68,6 +66,7 @@ import com.admob.android.ads.AdView; import de.ub0r.android.websms.connector.common.Connector; import de.ub0r.android.websms.connector.common.ConnectorCommand; import de.ub0r.android.websms.connector.common.ConnectorSpec; +import de.ub0r.android.websms.connector.common.Utils; /** * Main Activity. @@ -483,10 +482,11 @@ public class WebSMS extends Activity implements OnClickListener, */ private void updateBalance() { final StringBuilder buf = new StringBuilder(); - - for (ConnectorSpec cs : getConnectors( + // FIXME: this method is run way to often! + final ConnectorSpec[] css = getConnectors( ConnectorSpec.CAPABILITIES_UPDATE, // . - ConnectorSpec.STATUS_ENABLED)) { + ConnectorSpec.STATUS_ENABLED); + for (ConnectorSpec cs : css) { final String b = cs.getBalance(); if (b == null || b.length() == 0) { continue; @@ -555,7 +555,7 @@ public class WebSMS extends Activity implements OnClickListener, prefsMobilesOnly = p.getBoolean(PREFS_MOBILES_ONLY, false); prefsNoAds = false; - String hash = md5(p.getString(PREFS_SENDER, "")); + String hash = Utils.md5(p.getString(PREFS_SENDER, "")); for (String h : NO_AD_HASHS) { if (hash.equals(h)) { prefsNoAds = true; @@ -723,8 +723,9 @@ public class WebSMS extends Activity implements OnClickListener, AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.change_connector_); final ArrayList items = new ArrayList(); - for (ConnectorSpec cs : getConnectors(ConnectorSpec.CAPABILITIES_SEND, - ConnectorSpec.STATUS_ENABLED)) { + final ConnectorSpec[] css = getConnectors( + ConnectorSpec.CAPABILITIES_SEND, ConnectorSpec.STATUS_ENABLED); + for (ConnectorSpec cs : css) { items.add(cs.getName()); } // TODO: add subconnectors @@ -848,9 +849,10 @@ public class WebSMS extends Activity implements OnClickListener, d.setTitle(this.getString(R.string.about_) + " v" + this.getString(R.string.app_version)); StringBuffer authors = new StringBuffer(); - for (ConnectorSpec cs : getConnectors( + final ConnectorSpec[] css = getConnectors( ConnectorSpec.CAPABILITIES_NONE, - ConnectorSpec.STATUS_INACTIVE)) { + ConnectorSpec.STATUS_INACTIVE); + for (ConnectorSpec cs : css) { final String a = cs.getAuthor(); if (a != null && a.length() > 0) { authors.append(cs.getName()); @@ -1127,38 +1129,6 @@ public class WebSMS extends Activity implements OnClickListener, } /** - * Calc MD5 Hash from String. - * - * @param s - * input - * @return hash - */ - static String md5(final String s) { - try { - // Create MD5 Hash - MessageDigest digest = java.security.MessageDigest - .getInstance("MD5"); - digest.update(s.getBytes()); - byte[] messageDigest = digest.digest(); - // Create Hex String - StringBuilder hexString = new StringBuilder(32); - int b; - for (int i = 0; i < messageDigest.length; i++) { - b = 0xFF & messageDigest[i]; - if (b < 0x10) { - hexString.append('0' + Integer.toHexString(b)); - } else { - hexString.append(Integer.toHexString(b)); - } - } - return hexString.toString(); - } catch (NoSuchAlgorithmException e) { - Log.e(TAG, null, e); - } - return ""; - } - - /** * Get MD5 hash of the IMEI (device id). * * @return MD5 hash of IMEI @@ -1170,7 +1140,7 @@ public class WebSMS extends Activity implements OnClickListener, .getSystemService(TELEPHONY_SERVICE); final String did = mTelephonyMgr.getDeviceId(); if (did != null) { - imeiHash = md5(did); + imeiHash = Utils.md5(did); } } return imeiHash; -- 2.11.4.GIT