A simple tool to allow easy bug report capturing within your app.
Place a TelescopeLayout
at the root of your hierarchy.
Add a callback to the view group with setLens(Lens)
. Telescope provides two default
implementations:
EmailLens
: Compose an email with the provided addresses and subject (optional).EmailDeviceInfoLens
: Enhances EmailLens
by pre-populating the email body with app and device
infoScreenshots will be stored on the external storage in your app's private directory. To have
Telescope clean up the screenshots folder, call TelescopeLayout.cleanUp(Context)
. Ideally, this
would be called in the onDestroy()
method of your Activity
or Fragment
.
If you are using the Gradle-based build system, you can wrap this view group around your activity layouts only in the debug builds.
See the u2020 project for a more advanced example.
Pre-KitKat, WRITE_EXTERNAL_STORAGE
is required for saving screenshots. Screenshots can be disabled
using the configuration options below.
The view group can be configured as follows:
app:telescope_pointerCount
/ setPointerCount(int)
app:telescope_progressColor
/ setProgressColor(int)
app:telescope_screenshotMode
/
setScreenshotMode(ScreenshotMode)
app:telescope_screenshotChildrenOnly
/
setScreenshotChildrenOnly(boolean)
setScreenshotTarget(View)
app:telescope_vibrate
/ setVibrate(boolean)
Gradle:
compile 'com.mattprecious.telescope:telescope:2.4.0'
or Maven:
<dependency>
<groupId>com.mattprecious.telescope</groupId>
<artifactId>telescope</artifactId>
<version>2.4.0</version>
<type>apklib</type>
</dependency>
Copyright 2014 Matthew Precious
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.