Use custom Logging methods

(also, code formatting, add final modifiers)
This commit is contained in:
fkloft 2014-01-22 19:14:11 +01:00
parent 278f1e0684
commit 80f7d0e601

View File

@ -40,7 +40,7 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
private static int mDeletedPlugins = 0; private static int mDeletedPlugins = 0;
@Override @Override
public void setListAdapter(ListAdapter adapter) { public void setListAdapter(final ListAdapter adapter) {
if (adapter == null) { if (adapter == null) {
super.setListAdapter(null); super.setListAdapter(null);
} else { } else {
@ -49,11 +49,11 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
} }
@Override @Override
public void onBuildHeaders(List<Header> target) { public void onBuildHeaders(final List<Header> target) {
getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true);
// notify about external plugins // notify about external plugins
IITC_NotificationHelper nh = new IITC_NotificationHelper(this); final IITC_NotificationHelper nh = new IITC_NotificationHelper(this);
nh.showNotice(IITC_NotificationHelper.NOTICE_EXTPLUGINS); nh.showNotice(IITC_NotificationHelper.NOTICE_EXTPLUGINS);
mHeaders = target; mHeaders = target;
@ -70,7 +70,7 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
} }
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(final Bundle savedInstanceState) {
// on tablets, select a default fragment BEFORE calling super onCreate // on tablets, select a default fragment BEFORE calling super onCreate
// otherwise the application will crash, because the first header (the // otherwise the application will crash, because the first header (the
// category) does not have a fragment assigned // category) does not have a fragment assigned
@ -104,7 +104,7 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
} }
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {
case android.R.id.home: // exit settings when home button (iitc icon) is pressed case android.R.id.home: // exit settings when home button (iitc icon) is pressed
onBackPressed(); onBackPressed();
@ -115,23 +115,23 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
} }
@Override @Override
protected boolean isValidFragment(String s) { protected boolean isValidFragment(final String s) {
return true; return true;
} }
// called by Plugins Fragment // called by Plugins Fragment
public static ArrayList<IITC_PluginPreference> getPluginPreference(String key, boolean userPlugin) { public static ArrayList<IITC_PluginPreference> getPluginPreference(final String key, final boolean userPlugin) {
if (userPlugin) return sUserPlugins.get(key); if (userPlugin) return sUserPlugins.get(key);
else return sAssetPlugins.get(key);
return sAssetPlugins.get(key);
} }
private String[] getAssetPlugins() { private String[] getAssetPlugins() {
AssetManager am = getAssets(); final AssetManager am = getAssets();
String[] asset_array = null; String[] asset_array = null;
try { try {
asset_array = am.list("plugins"); asset_array = am.list("plugins");
} catch (IOException e) { } catch (final IOException e) {
// TODO Auto-generated catch block
Log.w(e); Log.w(e);
} }
if (asset_array == null) { if (asset_array == null) {
@ -141,9 +141,9 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
} }
private File[] getUserPlugins() { private File[] getUserPlugins() {
String iitc_path = Environment.getExternalStorageDirectory().getPath() final String iitc_path = Environment.getExternalStorageDirectory().getPath()
+ "/IITC_Mobile/"; + "/IITC_Mobile/";
File directory = new File(iitc_path + "plugins/"); final File directory = new File(iitc_path + "plugins/");
File[] files = directory.listFiles(); File[] files = directory.listFiles();
if (files == null) { if (files == null) {
files = new File[0]; files = new File[0];
@ -152,13 +152,13 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
} }
void checkForNewPlugins() { void checkForNewPlugins() {
File[] userPlugins = getUserPlugins(); final File[] userPlugins = getUserPlugins();
String[] officialPlugins = getAssetPlugins(); final String[] officialPlugins = getAssetPlugins();
int numPlugins = 0; int numPlugins = 0;
for (Map.Entry<String, ArrayList<IITC_PluginPreference>> entry : sUserPlugins.entrySet()) { for (final Map.Entry<String, ArrayList<IITC_PluginPreference>> entry : sUserPlugins.entrySet()) {
numPlugins += entry.getValue().size(); numPlugins += entry.getValue().size();
} }
for (Map.Entry<String, ArrayList<IITC_PluginPreference>> entry : sAssetPlugins.entrySet()) { for (final Map.Entry<String, ArrayList<IITC_PluginPreference>> entry : sAssetPlugins.entrySet()) {
numPlugins += entry.getValue().size(); numPlugins += entry.getValue().size();
} }
if ((userPlugins.length + officialPlugins.length) != (numPlugins + mDeletedPlugins)) { if ((userPlugins.length + officialPlugins.length) != (numPlugins + mDeletedPlugins)) {
@ -170,41 +170,38 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
void setUpPluginPreferenceScreen() { void setUpPluginPreferenceScreen() {
// get all plugins from asset manager // get all plugins from asset manager
String[] assets = getAssetPlugins(); final String[] assets = getAssetPlugins();
for (String asset : assets) { for (final String asset : assets) {
// find user plugin name for user readable entries // find user plugin name for user readable entries
try { try {
InputStream is = getAssets().open("plugins/" + asset); final InputStream is = getAssets().open("plugins/" + asset);
addPluginPreference(IITC_FileManager.readStream(is), asset, false); addPluginPreference(IITC_FileManager.readStream(is), asset, false);
} catch (FileNotFoundException e) { } catch (final FileNotFoundException e) {
e.printStackTrace(); Log.e(asset + " not found", e);
Log.e(asset + " not found"); } catch (final IOException e) {
} catch (IOException e) { Log.e("couldn't read plugin " + asset, e);
e.printStackTrace();
Log.e("couldn't read plugin " + asset);
} }
} }
// load user plugins from <storage-path>/IITC_Mobile/plugins/ // load user plugins from <storage-path>/IITC_Mobile/plugins/
File[] files = getUserPlugins(); final File[] files = getUserPlugins();
for (File file : files) { for (final File file : files) {
try { try {
InputStream is = new FileInputStream(file); final InputStream is = new FileInputStream(file);
addPluginPreference(IITC_FileManager.readStream(is), file.toString(), true); addPluginPreference(IITC_FileManager.readStream(is), file.toString(), true);
} catch (FileNotFoundException e) { } catch (final FileNotFoundException e) {
e.printStackTrace(); Log.e("couldn't read plugin " + file.toString(), e);
Log.e("couldn't read plugin " + file.toString());
} }
} }
} }
void addPluginPreference(String src, String plugin_key, boolean userPlugin) { void addPluginPreference(final String src, final String plugin_key, final boolean userPlugin) {
// parse plugin name, description and category // parse plugin name, description and category
// we need default versions here otherwise iitcm may crash // we need default versions here otherwise iitcm may crash
HashMap<String, String> info = IITC_FileManager.getScriptInfo(src); final HashMap<String, String> info = IITC_FileManager.getScriptInfo(src);
String plugin_name = info.get("name"); String plugin_name = info.get("name");
String plugin_cat = info.get("category"); final String plugin_cat = info.get("category");
String plugin_desc = info.get("description"); final String plugin_desc = info.get("description");
// remove IITC plugin prefix from plugin_name // remove IITC plugin prefix from plugin_name
plugin_name = plugin_name.replace("IITC Plugin: ", ""); plugin_name = plugin_name.replace("IITC Plugin: ", "");
@ -231,40 +228,41 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
} }
// now build a new checkable preference for the plugin // now build a new checkable preference for the plugin
IITC_PluginPreference plugin_pref = new IITC_PluginPreference(this); final IITC_PluginPreference plugin_pref = new IITC_PluginPreference(this);
plugin_pref.setKey(plugin_key); plugin_pref.setKey(plugin_key);
plugin_pref.setTitle(plugin_name); plugin_pref.setTitle(plugin_name);
plugin_pref.setSummary(plugin_desc); plugin_pref.setSummary(plugin_desc);
plugin_pref.setDefaultValue(false); plugin_pref.setDefaultValue(false);
plugin_pref.setPersistent(true); plugin_pref.setPersistent(true);
ArrayList<IITC_PluginPreference> list = (userPlugin) ? sUserPlugins.get(plugin_cat) : sAssetPlugins.get(plugin_cat); final ArrayList<IITC_PluginPreference> list =
userPlugin ? sUserPlugins.get(plugin_cat) : sAssetPlugins.get(plugin_cat);
list.add(plugin_pref); list.add(plugin_pref);
} }
void addHeaders() { void addHeaders() {
if (sUserPlugins.size() > 0) { if (sUserPlugins.size() > 0) {
Header category = new Header(); final Header category = new Header();
category.title = "User Plugins"; category.title = "User Plugins";
mHeaders.add(category); mHeaders.add(category);
for(Map.Entry<String, ArrayList<IITC_PluginPreference>> entry : sUserPlugins.entrySet()) { for (final Map.Entry<String, ArrayList<IITC_PluginPreference>> entry : sUserPlugins.entrySet()) {
addHeader(entry.getKey(), true); addHeader(entry.getKey(), true);
} }
} }
if (sAssetPlugins.size() > 0) { if (sAssetPlugins.size() > 0) {
Header category = new Header(); final Header category = new Header();
category.title = "Official Plugins"; category.title = "Official Plugins";
mHeaders.add(category); mHeaders.add(category);
for(Map.Entry<String, ArrayList<IITC_PluginPreference>> entry : sAssetPlugins.entrySet()) { for (final Map.Entry<String, ArrayList<IITC_PluginPreference>> entry : sAssetPlugins.entrySet()) {
addHeader(entry.getKey(), false); addHeader(entry.getKey(), false);
} }
} }
} }
private void addHeader(String title, boolean userPlugin) { private void addHeader(final String title, final boolean userPlugin) {
Bundle bundle = new Bundle(); final Bundle bundle = new Bundle();
bundle.putString("category", title); bundle.putString("category", title);
bundle.putBoolean("userPlugin", userPlugin); bundle.putBoolean("userPlugin", userPlugin);
Header newHeader = new Header(); final Header newHeader = new Header();
newHeader.title = title; newHeader.title = title;
newHeader.fragmentArguments = bundle; newHeader.fragmentArguments = bundle;
newHeader.fragment = "com.cradle.iitc_mobile.fragments.PluginsFragment"; newHeader.fragment = "com.cradle.iitc_mobile.fragments.PluginsFragment";
@ -287,7 +285,7 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
private final LayoutInflater mInflater; private final LayoutInflater mInflater;
static int getHeaderType(Header header) { static int getHeaderType(final Header header) {
if (header.fragment == null && header.intent == null) { if (header.fragment == null && header.intent == null) {
return HEADER_TYPE_CATEGORY; return HEADER_TYPE_CATEGORY;
} else { } else {
@ -296,8 +294,8 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
} }
@Override @Override
public int getItemViewType(int position) { public int getItemViewType(final int position) {
Header header = getItem(position); final Header header = getItem(position);
return getHeaderType(header); return getHeaderType(header);
} }
@ -307,7 +305,7 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
} }
@Override @Override
public boolean isEnabled(int position) { public boolean isEnabled(final int position) {
return getItemViewType(position) != HEADER_TYPE_CATEGORY; return getItemViewType(position) != HEADER_TYPE_CATEGORY;
} }
@ -321,37 +319,32 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
return true; return true;
} }
public HeaderAdapter(Context context, List<Header> objects) { public HeaderAdapter(final Context context, final List<Header> objects) {
super(context, 0, objects); super(context, 0, objects);
mInflater = (LayoutInflater) context mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
} }
@Override @Override
public View getView(int position, View convertView, ViewGroup parent) { public View getView(final int position, final View convertView, final ViewGroup parent) {
HeaderViewHolder holder; HeaderViewHolder holder;
Header header = getItem(position); final Header header = getItem(position);
int headerType = getHeaderType(header); final int headerType = getHeaderType(header);
View view = null; View view = null;
if (convertView == null) { if (convertView == null) {
holder = new HeaderViewHolder(); holder = new HeaderViewHolder();
switch (headerType) { switch (headerType) {
case HEADER_TYPE_CATEGORY: case HEADER_TYPE_CATEGORY:
view = new TextView(getContext(), null, view = new TextView(getContext(), null, android.R.attr.listSeparatorTextViewStyle);
android.R.attr.listSeparatorTextViewStyle);
holder.title = (TextView) view; holder.title = (TextView) view;
break; break;
case HEADER_TYPE_NORMAL: case HEADER_TYPE_NORMAL:
view = mInflater.inflate(R.layout.preference_header_item, view = mInflater.inflate(R.layout.preference_header_item, parent, false);
parent, false); holder.title = (TextView) view.findViewById(R.id.plug_pref_title);
holder.title = (TextView) view holder.summary = (TextView) view.findViewById(R.id.plug_pref_summary);
.findViewById(R.id.plug_pref_title);
holder.summary = (TextView) view
.findViewById(R.id.plug_pref_summary);
break; break;
} }
view.setTag(holder); view.setTag(holder);
@ -360,18 +353,14 @@ public class IITC_PluginPreferenceActivity extends PreferenceActivity {
holder = (HeaderViewHolder) view.getTag(); holder = (HeaderViewHolder) view.getTag();
} }
// All view fields must be updated every time, because the view may // All view fields must be updated every time, because the view may be recycled
// be recycled
switch (headerType) { switch (headerType) {
case HEADER_TYPE_CATEGORY: case HEADER_TYPE_CATEGORY:
holder.title.setText(header.getTitle(getContext() holder.title.setText(header.getTitle(getContext().getResources()));
.getResources()));
break; break;
case HEADER_TYPE_NORMAL: case HEADER_TYPE_NORMAL:
holder.title.setText(header.getTitle(getContext() holder.title.setText(header.getTitle(getContext().getResources()));
.getResources())); final CharSequence summary = header.getSummary(getContext().getResources());
CharSequence summary = header.getSummary(getContext()
.getResources());
if (!TextUtils.isEmpty(summary)) { if (!TextUtils.isEmpty(summary)) {
holder.summary.setVisibility(View.VISIBLE); holder.summary.setVisibility(View.VISIBLE);
holder.summary.setText(summary); holder.summary.setText(summary);