OSDN Git Service

Wrap getSuVersion() in an AsyncTask as the new version takes > 500 ms
authorChainsDD <chainsdd@gmail.com>
Sun, 29 Aug 2010 01:13:34 +0000 (20:13 -0500)
committerChainsDD <chainsdd@gmail.com>
Sun, 29 Aug 2010 01:13:34 +0000 (20:13 -0500)
src/com/noshufou/android/su/SuPreferences.java

index f5df011..5674831 100644 (file)
@@ -5,6 +5,7 @@ import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.os.AsyncTask;
 import android.os.Bundle;
 import android.preference.Preference;
 import android.preference.PreferenceActivity;
@@ -25,10 +26,11 @@ public class SuPreferences extends PreferenceActivity implements OnSharedPrefere
         DBHelper db = new DBHelper(this);
         versionPreference.setSummary(getString(R.string.pref_version_summary, db.getDBVersion()));
         db.close();
+
         Preference binVersionPreference = getPreferenceScreen().findPreference("pref_bin_version");
-        binVersionPreference.setTitle(getString(R.string.pref_bin_version_title, Su.getSuVersion()));
+        new ShowBinVersion().execute();
         binVersionPreference.setOnPreferenceClickListener(this);
-        
+
         Preference clearLogPreference = getPreferenceScreen().findPreference("pref_clear_log");
         clearLogPreference.setOnPreferenceClickListener(this);
     }
@@ -86,4 +88,21 @@ public class SuPreferences extends PreferenceActivity implements OnSharedPrefere
         
         return versionName;
     }
+    
+    private class ShowBinVersion extends AsyncTask<String, Integer, Boolean> {
+        private String suVersion;
+
+        @Override
+        protected Boolean doInBackground(String... params) {
+            suVersion = Su.getSuVersion();
+            return null;
+        }
+
+        @Override
+        protected void onPostExecute(Boolean result) {
+            getPreferenceScreen().findPreference("pref_bin_version")
+                    .setTitle(getString(R.string.pref_bin_version_title, suVersion));
+        }
+        
+    }
 }