diff options
| -rw-r--r-- | src/de/blinkt/openvpn/fragments/LogFragment.java | 49 | 
1 files changed, 34 insertions, 15 deletions
| diff --git a/src/de/blinkt/openvpn/fragments/LogFragment.java b/src/de/blinkt/openvpn/fragments/LogFragment.java index a03d5160..a2a6e3c4 100644 --- a/src/de/blinkt/openvpn/fragments/LogFragment.java +++ b/src/de/blinkt/openvpn/fragments/LogFragment.java @@ -130,6 +130,7 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar.          public static final int TIME_FORMAT_NONE = 0;          public static final int TIME_FORMAT_SHORT = 1;          public static final int TIME_FORMAT_ISO = 2; +        private static final int MAX_STORED_LOG_ENTRIES = 1000;          private Vector<LogItem> allEntries=new Vector<LogItem>(); @@ -163,7 +164,7 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar.  		String getLogStr() {  			String str = "";  			for(LogItem entry:allEntries) { -				str+=entry.getString(getActivity()) + '\n'; +				str+=getTime(entry, TIME_FORMAT_ISO) + entry.getString(getActivity()) + '\n';  			}  			return str;  		} @@ -218,17 +219,7 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar.  			LogItem le = currentLevelEntries.get(position);  			String msg = le.getString(getActivity()); -            String time =""; -			if (mTimeFormat != TIME_FORMAT_NONE) { -				Date d = new Date(le.getLogtime()); -				java.text.DateFormat timeformat; -				if (mTimeFormat== TIME_FORMAT_ISO) -					timeformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.getDefault()); -				else -					timeformat = DateFormat.getTimeFormat(getActivity()); -				 time = timeformat.format(d) + " "; - -			} +            String time = getTime(le, mTimeFormat);              msg =  time +  msg;              int spanStart = time.length(); @@ -240,6 +231,23 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar.  			return v;  		} +        private String getTime(LogItem le, int time) { +            if (time != TIME_FORMAT_NONE) { +                Date d = new Date(le.getLogtime()); +                java.text.DateFormat timeformat; +                if (time== TIME_FORMAT_ISO) +                    timeformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); +                else +                    timeformat = DateFormat.getTimeFormat(getActivity()); + +                return timeformat.format(d) + " "; + +            } else { +                return ""; +            } + +        } +          private ImageSpan getSpanImage(LogItem li, int imageSize) {              int imageRes = android.R.drawable.ic_menu_call; @@ -352,11 +360,22 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar.           */          private boolean addLogMessage(LogItem logmessage) {              allEntries.add(logmessage); -            if (logmessage.getVerbosityLevel() <= mLogLevel) { -                 currentLevelEntries.add(logmessage); + +            if (allEntries.size() > MAX_STORED_LOG_ENTRIES) { +                Vector<LogItem> oldAllEntries = allEntries; +                allEntries = new Vector<LogItem>(allEntries.size()); +                for (int i=50;i<oldAllEntries.size();i++) { +                    allEntries.add(oldAllEntries.elementAt(i)); +                } +                initCurrentMessages();                  return true;              } else { -                return false; +                if (logmessage.getVerbosityLevel() <= mLogLevel) { +                    currentLevelEntries.add(logmessage); +                    return true; +                } else { +                    return false; +                }              }          } | 
