import android.content.pm.PackageManager.NameNotFoundException;\r
import android.content.res.Resources.NotFoundException;\r
import android.database.Cursor;\r
+import android.graphics.Bitmap;\r
+import android.graphics.drawable.BitmapDrawable;\r
import android.net.Uri;\r
import android.os.Bundle;\r
import android.os.Handler;\r
private static final int ACTION_SELECT_MULTIPLE_FILES = 2;\r
\r
private static final String TAG = "FileDisplayActivity";\r
+\r
+ private static int[] mMenuIdentifiersToPatch = {R.id.about_app};\r
\r
@Override\r
public void onCreate(Bundle savedInstanceState) {\r
public boolean onCreateOptionsMenu(Menu menu) {\r
MenuInflater inflater = getSherlock().getMenuInflater();\r
inflater.inflate(R.menu.menu, menu);\r
+ \r
+ patchHiddenAccents(menu);\r
+ \r
return true;\r
}\r
\r
+ /**\r
+ * Workaround for this: <a href="http://code.google.com/p/android/issues/detail?id=3974">http://code.google.com/p/android/issues/detail?id=3974</a> \r
+ * \r
+ * @param menu Menu to patch\r
+ */\r
+ private void patchHiddenAccents(Menu menu) {\r
+ for (int i = 0; i < mMenuIdentifiersToPatch.length ; i++) {\r
+ MenuItem aboutItem = menu.findItem(mMenuIdentifiersToPatch[i]);\r
+ if (aboutItem != null && aboutItem.getIcon() instanceof BitmapDrawable) {\r
+ // Clip off the bottom three (density independent) pixels of transparent padding\r
+ Bitmap original = ((BitmapDrawable) aboutItem.getIcon()).getBitmap();\r
+ float scale = getResources().getDisplayMetrics().density;\r
+ int clippedHeight = (int) (original.getHeight() - (3 * scale));\r
+ Bitmap scaled = Bitmap.createBitmap(original, 0, 0, original.getWidth(), clippedHeight);\r
+ aboutItem.setIcon(new BitmapDrawable(getResources(), scaled));\r
+ }\r
+ }\r
+ }\r
+\r
+\r
@Override\r
public boolean onOptionsItemSelected(MenuItem item) {\r
boolean retval = true;\r
dialog.dismiss();\r
}\r
});\r
- builder.setNegativeButton(R.string.common_exit, new OnClickListener() {\r
+ String message = String.format(getString(R.string.common_exit), getString(R.string.app_name));\r
+ builder.setNegativeButton(message, new OnClickListener() {\r
public void onClick(DialogInterface dialog, int which) {\r
dialog.dismiss();\r
finish();\r
PackageInfo pkg;\r
try {\r
pkg = getPackageManager().getPackageInfo(getPackageName(), 0);\r
- builder.setMessage(String.format(getString(R.string.about_message), pkg.versionName));\r
+ builder.setMessage(String.format(getString(R.string.about_message), getString(R.string.app_name), pkg.versionName));\r
builder.setIcon(android.R.drawable.ic_menu_info_details);\r
dialog = builder.create();\r
} catch (NameNotFoundException e) {\r
}\r
\r
setSupportProgressBarIndeterminateVisibility(inProgress);\r
+ removeStickyBroadcast(intent);\r
\r
}\r
\r