| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \
| |/ / |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently, gl calls can only modify existing GL state
variables. This patch, adds support for GL transformations
that can add items to existing list properties.
As a result, eglCreateContext can now create a specific
context (ES1 or ES2) on demand.
A new IStateTransform interface is introduced, and the
existing GLStateTransform has been renamed to
PropertyChangeTransform that implements this interface.
This patch also enables highlighting of state variables
that change between different GL Calls.
Change-Id: I16fc8286acd6374d66e59e1f7ba76310bdacab5d
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | | |
Change-Id: I819431ec82f0de998b1427e101dc6df426f15cbf
|
| | |
| | |
| | |
| | | |
Change-Id: Ied32345259a8f660e44c3d622ec0487ba36cd53d
|
|/ /
| |
| |
| | |
Change-Id: I64bd4569d939cf561364f4073dc88744f64588be
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The GL State View currently utilizes a single tree and switches
the underlying model depending on which editor is active. This causes
loss of context when switching between editors.
This patch makes the state view behave more like the Eclipse Outline
View. State View now inherits from PageBookView, and it allows each
editor to supply whatever controls it wants to display in the view.
Each editor supplies an instance of StateViewPage based on the state
of the trace in the editor.
This patch also moves the state information out of the GLTrace object
and into the StateViewPage.
Change-Id: Ied827ffc53ebba835f1617126068eb3de50f12d4
|
| |
| |
| |
| |
| |
| |
| |
| | |
Currently, the top level GLTrace object holds a list of
state transformations associated with each GLCall. This
patch moves the state transformations into the GLCall itself.
Change-Id: I320c4b38d1ba19c230adc12c71d57f911582b55a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This changeset adds two new methods to the manifest editor:
1) Add the given list of permissions (if necessary)
2) Remove the given list of permissions (if present)
This method will be used by quickfixes for missing and unused
permissions detected by lint.
Change-Id: I335c869b2301761db8be34ec9ff61fe02d5d42b6
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently, the original protobuf message is retained in
memory as part of a GLCall. It turns out that this takes
up a significant amount of memory.
This patch extracts the necessary fields out of the
protobuf and puts them in GLCall. No references to the
protobuf are maintained in memory anymore, although
they can be recreated by reading in the file again.
Change-Id: I93cb8a41a1d8b274ea14b9ae4cde034f0ce70f83
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the trace contains multiple contexts, calls from multiple
contexts may be out of order. Hence the calls are sorted by start
time when the trace is read.
Currently, calls are assigned to frames when they are first read
in from the trace file. This patch performs this assignment once
the calls are sorted.
Change-Id: I7a1b51fac18249cb965756b567d4245d783647ee
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Having a combined frame selector + call duration viewer seemed
confusing, so this patch removes the frame selector canvas, and moves
the call duration view to the right of the table. The call duration
view now looks like a mini map of the calls displayed in the table.
Change-Id: I82827642aa462809065d1a7945f8903bd6a99e38
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This changeset adds several new Java parsetree-based lint detectors:
(1) String format checker. This checks several issues related to
formatting strings (%1$s), such as
- Is the string format valid?
- Is the string format consistent between different translations,
e.g. if argument #1 is of type "s" in locale A, is it also of
type "s" in locale B?
- Is the string format being called from Java with arguments of
the right type?
- Are strings which are not supposed to be formatted (e.g. ends
with a %) passed to String.format?
(2) View Cast checker. Looks at the views associated with specific
id's in layouts, and makes sure that any casts to views returned
by findViewById in Java is cast-compatible with the type in the
layout. For example, if you have a layout containing a <Button
id="foo">, then a cast to an EditText of findViewById(R.id.foo)
would be invalid.
(3) A security check which flags file creation calls that pass a
context of world-writeable.
(4) An "import android.R" checker. This looks for "import android.R"
in .java files and warns that this is potentially confusing.
(5) A hardcoded "/sdcard" string checker which looks for this prefix
in string literals and when found warns that the method
Environment.getExternalStorageDirectory().getPath() should be
used instead.
Change-Id: I14a4656f0ff6a58f25cde1b4bb23f6c47c47fdba
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This changeset adds Java AST support to Lint. There are new interfaces
for Java parser and specialized Java detectors. Java detectors can
either visit a full parse tree, or they can register interest in
specific methods, or Android resource references, or specific AST node
types -- or a combination of these. They will then be invoked during
an AST visit with the relevant info.
This changeset also rewrites the existing detectors that were using
String-based pattern checking on Java files to using real AST
traversal instead (and it removes the custom Eclipse-specific unused
resource detector since the plain one now does the same AST-based
analysis that the Eclipse one did.)
Change-Id: I4d85f8b785bf41a88dbb29e7017b9c0f588880bc
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This changeset adds a Search field to the top of the Lint options
panel which lets you filter the displayed options (by category prefix,
and id and description substrings).
Change-Id: Ie8f4a66fefe0ea4afb12b53d57207925099db7bc
|
|\ \ \
| |/ / |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This changeset makes a bunch of changes to the Lint Window
in Eclipse:
* First, it changes the view from a flat table into a hierarchical
tree. For any given type of error, there is one top level tree
node, and its children are the remaining occurrences of the same
error.
This makes it much easier to quickly skim through the different
issues without having to scroll; if you see an error you want to
fix, you can expand the node to jump to all the various occurrences.
The top level labels also include a count in the form of "(2 items)"
after the error message so you can get a sense of how many warnings
were found for each type.
* Second, it adds a bunch of new actions to the Lint View toolbar:
expand, collapse, configure (more on that later), settings, and
ignore file and ignore project (ignore global was already there).
It also updates the icons for some of the existing actions; the lint
toolbar action and window should look a bit better now.
* Third, it adds more columns (such as priority and category) to the
lint view, and makes the set of visible columns configurable. You
can click on the Configure toolbar action to bring up a dialog to
show which columns are included, and this selection is persisted
across IDE sessions (and it also persists the column sizes).
Furthermore, instead of separate file, path and line number columns,
there is now a new "Location" column, which is shown by default
instead of the separate file, path and line number columns. This
column displays combined info for all three: the file name, the line
number, the parent folder and the project name. This includes all
the relevant information in a more compact format such that there is
more room for the error message.
* Fourth, the table now supports sorting: you can click on any column
header, and the table will be sorted using that column as a
key. (This is not alphabetical but a logical sort defined for each
column; for line number and priority it's obviously numerical, but
for the default column it continues to be a combination of severity,
priority, issue type etc.)
Change-Id: I42695988780b493ad90aff5aeb5895e0fd8d3998
|
|\ \ \
| |/ / |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This changeset adds support for library projects to lint. Lint now
checks all the library projects for errors as well, and projects that
depend on global analysis (such as the unused resource detector) will
properly handle resource declarations and references across projects.
This changeset also cleans up the multi-project handling for the Lint
window in Eclipse. The "Run Lint" toolbar action, in addition to
operating on multiple selection, now has a dropdown menu for choosing
which projects to check (and there are also actions for checking all
projects, the current file, and clearing markers). Running lint on a
project will also automatically include dependent library projects.
Finally, some misc UI improvements: The Lint preference dialog
includes buttons for quickly enabling and disabling all the checks;
the Lint View includes a Project column which is shown when more than
one project is checked, and the file and linenumber columns are now
blank when the location does not correspond to a specific file.
Change-Id: I733f5258102dfb0aebbc2b75cb02b9ba6ef974e8
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This changeset removes the metadata for <animated-rotate>
drawables. Turns out the underlying class,
android.graphics.drawable.AnimatedRotateDrawable, is marked
hidden. Therefore, the <animated-rotate> and its associated attributes
should not be shown to the user since they cannot be used. This is the
subject of issue http://b.android.com/19248 .
While looking at this I added some instrumentation to the addElement
method (which adds the manually registered style classes and their
attributes). This validates that all added attributes are referenced
in the public.xml file. The above <animated-rotate> class is the only
class that was not public. However, that's only among the manually
registered metadata for animators, drawables and color lists. For the
overall attributes (on layouts etc), there are many attributes picked
up from the attrs.xml file that do not appear in public.xml. In a
subsequent CL we need to add filtering to that import phase as well.
Change-Id: Ia6fba23ca47b12cc9a13cc7e203b6d5849dfe103
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch adds a graphical canvas on which the following elements
are rendered:
- a scale showing the list of frames
- when a particular frame[s] is selected, the duration of
the GL calls is displayed as a graph.
The GL call table view listens to selection events from this canvas
and displays the appropriate function calls based on the selection.
Change-Id: Icc8b2bc13547a06103d90f3d5c1f3a764511752b
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This changeset fixes issue
23747: i and İ character problem in turkish operating Systems...
and probably many other bugs in the Turkish locale.
Basically, we had a lot of String.toLowerCase() and
String.toUpperCase() calls. This performs locale sensitive
conversions, which in many cases is NOT what we want; for "machine
readable" conversions we should be using Locale.US which performs no
special cases.
For more, see
http://developer.android.com/reference/java/util/Locale.html#default_locale
Change-Id: I996b0e70fb377e8dae484c5811deb8bc9afb684c
|
|\ \ \ \ |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This CL fixes
23940: ADT setting Format XML with Android XML Style can corrupt
string resources.
There was a bug in the code which attempts to delete leading and
trailing spaces in text nodes. It could end up deleting the first
character in the string. There's a new unit test covering this
scenario now.
Change-Id: I59b26563391a2020adae51dd2f42e869afbb9f2c
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The XML DOM parser used by the lint CLI driver (which tracks
positions) is needed outside of lint, so pull it out of the lint/cli
project, and refactor it such that it does not directly reference the
lint Position APIs (but can utilize them when subclassed in lint).
In addition, handle non-UTF-8 file encodings. XML files can be encoded
in other character sets, and can specify this via the encoding
attribute in the XML prologue. Until now, the CLI lint runner would
just read the XML file contents in using the default encoding and
parse this. Now there's a new utility method which takes a byte[] and
infers the desired encoding and uses that to convert the byte[] into a
string using the correct encoding. (We can't just pass an InputStream
and let the SAX parser handle this on its own because the XML parser
needs to access the character stream in order to assign correct node
offsets.) This code now also handles the byte order mark more
cleanly.
There are some new unit tests too to check the new encoding, BOM and
offset handling.
Change-Id: Ib0badbbe72172e3408c6d5af2413be51280a7724
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This new lint check looks for XML text content in resource files where
text is not expected, such as layout files. This is typically the
result of a typo.
This CL also improves the command line XML parser's position handling
such that it can handle positions on text nodes (until now it just
supported element and attribute positions), and similarly for Eclipse.
Change-Id: I6f69a8dc725a5b5b19f8ad5bb889ae25ee82600a
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Provide user options that control how much data is collected.
The user can control whether framebuffer data is read on eglSwap()
or glDraw*(), and whether texture images submitted via
glTexImage() are read.
Change-Id: I99b71d31a985295f0793d94887c0efcc25083fc6
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This changeset adds a new @NonNull annotation, to match our existing
@Nullable annotation, and it adds configuration settings for Eclipse
3.8 / Eclipse 4.2 which configures the new null analysis there to use
our own annotations. Note that the annotations only have source
retention so there is no extra size or class-loading overhead. (To use
findbugs you'll need to temporarily change retention to class-level.)
In upcoming CL's I'll use these annotations to clarify the Lint API
and other APIs.
Change-Id: I99096d8b8a7e25ef002624d592da7700195a5872
|
|\ \ \ |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Text fields (without a text attribute) has by default only a single
character visible. To work around this, we automatically set the
layout_width to match_parent instead of wrap_content in LinearLayouts,
but in RelativeLayout and GridLayout etc (and in general) we don't
have this, so text fields show up with a not particularly usable size.
By setting the ems attribute to 10, the wrap_content size of the text
field will show 10 characters which seems like a reasonable default
(and when editing the XML or properties it's more obvious what you'd
want to modify to get a different size, if not match_parent.
Change-Id: Ic0460cea7810076b416f6d7d25a683851465ee9b
|
|\ \ \ |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This changeset adds a new textfield to the bottom of the resource
chooser in some scenarios, such as when editing @string resources via
Edit Text in the layout editor.
This text field updates to show the @string/resourceName value
whenever you update the selection in the filter, but it also allows
you to edit the text to anything else, such as a literla String (not a
resource). This makes it easy to edit simple labels. See the following
adt-dev thread for some background on this:
http://groups.google.com/group/adt-dev/browse_thread/
thread/d53e71c2970ce369?pli=1
There is also a new label below the text field which shows the
"resolved value". For example, if you've chosen "hello" in the filter
list, the new value text will show "@string/hello", and the new label
will show "Hello World". This will hopefully make it more obvious what
it is you're editing. And, similar to the widget render preview for
drawable resources, this makes it easier to browse and pick labels,
especially when browsing framework resources. This is currently only
enabled for @string and @dimen resources, but we could conceivably add
it for other resource types too.
Longer term, we need inline editing of widgets (where values entered
automatically get translated into resources), but this is a stopgap
measure which makes it easier to build simple apps quickly, and which
still makes it simple to create new strings or select existing ones
from the filter list. (And we have both Lint and the Extract String
refactoring to help identify and fix hardcoded strings later on.)
While working on this I also discovered the root cause for this bug:
20589: The reference chooser is not usable for framework styles
Turns out org.eclipse.ui.dialogs.AbstractElementListSelectionDialog
has a handleEmptyList() method which calls setEnabled(false) on the
filter list when the list is empty. Crucially, there is no
corresponding setEnabled(true) call when the list is made non-empty!
When the user switches between framework and project resources, the
list is temporarily empty, so the list gets disabled, and that's why
it's not responding to menu clicks at all. This changeset also fixes
that bug.
Change-Id: Id441104d617fa4440daba3da2dc63e2c999f48c1
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As identified by
http://code.google.com/p/android/issues/detail?id=23383
Change-Id: I1387ae149e4f86989538b8497b30fe2f65a979d2
|
|/ /
| |
| |
| |
| |
| |
| | |
Monitor plugin is not built automatically, so this was not caught
earlier.
Change-Id: Ib115ac5a7bfb7adaad8b44a724611725ad5a72aa
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This changeset makes the SDK codebase compile with source=1.6 (which
means it also requires JDK 6). This means that methods implementing an
interface requires @Override's. It also means we can start using APIs
like the ArrayDeque class and methods like String#isEmpty().
This changeset looks big but the change is trivial: it's basically
adding @Override in all the places that need it, along with some other
automatic Eclipse cleanup in certain files (such as reordering imports
where they were incorrectly ordered (because older versions of Eclipse
didn't always handle inner classes right)), as well as cleaning up
trailing whitespace and removing some $NON-NLS-1$ markers on lines
where there aren't any string literals anymore.
This changeset also sets the source and target JDK level to 6 in the
Eclipse compiler .settings file, and synchronizes this file to all the
other Eclipse SDK projects.
Change-Id: I6a9585aa44c3dee9a5c00739ab22fbdbcb9f8275
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Change-Id: I309af1f1a3a72b4ece1acf5130ec34d88f575c7b
|
|/ /
| |
| |
| |
| |
| |
| | |
DDMS & TraceView do not depend on JDT anymore, so all those dependencies
can be removed from the RCP product definition.
Change-Id: If09a4d1c4bf8acb69669713a5052a607f9137663
|
| |
| |
| |
| |
| |
| | |
Fix build breakage - currently empty implementations.
Change-Id: I48c3c0cc4ab0e7ac2819c8a90e91dfe7da363a31
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently, there are three locations that require the ability
to open a Java file containing a particular method: DDMS stack trace,
logcat and traceview.
The logcat and traceview panels use JDT to open up a Java editor on
a method. As a result, these plugins have a dependency on JDT.
The stack trace panel uses the DDMS plugin's sourceRevealer extension
point to achieve the same purpose. ADT plugin provides an
implementation of the sourceRevealer plugin. As a result, this
introduces a JDT dependency only on the ADT plugin.
This patch makes both the logcat & trace view code to use the same
sourceRevealer extension point. As a result, all source code
involved in revealing the source of a Java method is present in
a single place, and DDMS & Traceview plugins don't depend on JDT
anymore.
Change-Id: I5b840dc4d6ad45e5611a80cff740101c484a99dd
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Make sure that an IResource is accessible before attempting to add a
marker to it. And if it isn't, just add the markers to the original
resource (usually the project) instead.
Change-Id: I679a249ed6e4280f46f041f15990ab79091c4f39
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When ADT plugin starts up, it attempts to set the console to be used
for certain parts of DDMS to be the Android console.
Doing this however causes the DDMS plugin to be activated, which
launches adb server if it is not already there.
Removing this enables us to not touch adb unnecessarily.
This patch moves the initialization of the DDMS console into the
DDMS plugin, and uses the DDMS console as opposed to the Android
console for messages from DDMS.
Change-Id: I010a7028a2f22ac4da1c55903e001dcdd329d91f
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This changeset makes the layout editor no longer assign default id's
to all newly dropped widgets. In particular, it no longer assigns id's
to *Layout widgets, such as LinearLayout and RelativeLayout. These
id's are typically unused, and in the case where you do want an id to
manipulate the widget you probably want to change it to some more
logical name than "linearLayout1" anyway. (It also stops assigning
id's to <include> tags, <merge> tags and <Space> widgets.)
It also changes the label of the "Edit ID..." context menu action to
"Assign ID..." for widgets that do not currently have an id.
Change-Id: Ibf0ec25a6a687e34d3eebf828251d196cadb9d54
|