Saturday, February 25, 2017

Shuttle Music Player is now Open Source

Music is a major part of everyone's life, and our smartphones allow us to truly enjoy our music anywhere. Over the years, Android has received a fair share of  excellent music player apps, and Shuttle Music Player has managed to stand out.

Shuttle is a music player following Google's Material Design guidelines, and its listing is nearing 4 Million downloads. Currently, the app offers two versions: free and paid. The paid version is priced at $0.99 and has received over 50 thousand downloads on the Play Store already.

Recently, the lead developer of Shuttle Music Player made a post at r/Android stating that the music player has now been open-sourced. The lead developer is looking for contributors and the project is set to experience an active development.

In the same post at r/Android, the developer of Shuttle also states that Shuttle Music Player was his first ever project. What started out as a bunch of emails to Andrew Neal (lead developer of Apollo Music Player) made him an approximated amount of $AU150k. Moreover, the lead developer is now a full time app developer for Android and iOS.

This clearly shows that anyone with the spirit and attitude to learn can make it big in Android. Keeping this in mind, we're launching a series called "Anyone Can GitHub" very soon. Stay tuned!

Shuttle Music Player on GitHub
Grab Shuttle Music Player right here!



from xda-developers http://ift.tt/2mq6Wab
via IFTTT

Using Manual Camera Controls: Improving the Quality and Versatility of Your Photography

In the last several weeks, I have been exploring mobile photography and have striven to offer our readers some advice for editing their own photography and shooting in RAW, and have also made a case for modern smartphones as valuable tools in and of themselves for anyone interested in exploring the art.

I hope to have assisted readers in beginning or continuing their exploration of photography by demonstrating the capabilities of the device(s) already in your pocket and by providing tips for better editing the photos you take.

Missing from this omnibus, of course, is a guide for users who are inexperienced with the actual process of taking photos, whether be it on your smartphone or a dedicated camera. Almost all cameras marketed towards the majority of modern consumers utilize automatic camera modes by default. As of late, Android cameras have furthermore been marked by a move to "auto-HDR" software features, a feature which Google's Pixel line has widely popularized among Android fans following a barrage of (arguably well-deserved) praise that was bestowed upon its camera after release.

Automatic camera modes have significantly improved over time, but any photographer with experience in manual settings will be well aware that a completely automatic camera mode is at best a tool for specific times and places and at worst an attempt to cram a vast array of photographic situations into a one-size-fits-all tool. Thus, an automatic camera mode may ultimately deteriorate the quality of all photos taken for the sake of user simplicity.

The universality of by-default automatic cameras is ultimately a self-fulfilling prophecy, and it is hard to imagine consumers ever incentivizing device and software manufacturers to promote manual photography. The general consumer prefers ease of use and a device that "just works" over something that might require constant adjustments. This is understandable, however, a great number of devices and applications either come with or support manual camera controls.

If you have ever struggled desperately against an automatic camera to produce an accurate or desirable photo, taking the leap into manual photography has the potential to benefit you immensely. It also is typically necessary to shoot in manual mode if one wants to shoot in RAW, something I have previously argued as being a boon to the potential quality of smartphone photography. Hence, I will guide you through how to use manual camera controls so you can improve your photography skill.


Manual Photography Settings

If you have a device available, open up the camera and take a look in the settings or in any other menus presented. Once you find the 'modes' settings (Auto, Panorama, Timelapse, etc.), scan for a "Manual" option or something phrased similarly to that.

As can be seen above, different device manufacturers and their (ahem) diverse collection of Android skins expose manual camera settings with a broad range of usability, utility, and setting names. Thankfully, most choose to go with the default, precise terms normally used in photography: ISO, shutter speed (often shown as a clock or stopwatch), white balance (typically WB), manual focus (usually a dashed square), and manual exposure tweaking (often a box with a + and – inside it). Each different implementation is likely to be dissimilar, however, and some manual settings will forego exposure tweaking or add additional options (like LG's very well-featured manual video settings).

ISO

ISO is first and foremost a product of the International Standards Organization, hence the acronym. ISO is a standardized scale used in the camera industry for measuring a sensor's sensitivity to light. As ISO increases, sensitivity to light also increases, as illustrated in the photo above. The viewfinder of my OnePlus 3T demonstrates the blown highlights produced by increasing the ISO in conditions with lots of light.

As a general rule of utilizing ISO, a lower ISO should always be your goal if you are attempting to produce high-quality photography. While ISO mainly increases sensitivity to light, a consequence of this sensitivity is a significant increase in image noise. This is partially what makes low-light photography much more difficult than photography in conditions with more light, as any automatic camera mode will increase ISO, and thus also noise, in low-light situations. This is intrinsically connected to shutter speed.

Shutter Speed

Innately connected to the goal of ISO manipulation is shutter speed, better understood as the length of light exposure a given image will receive. Shutter speed is measured in fractions of a second, and most cameras will feature an exposure range of 1/8000th of a second to 30 seconds. As with all aspects of manual photography, users will come to discover that each modification of settings results in other changes that may be less desirable.

With exposure length, a very brief exposure is optimal for anything moving, as this will prevent motion blur. However, shorter exposures, like 1/8000 as shown above, mean that the image sensor will receive only a small amount of light. In bright conditions, this is usually optimal and helps to prevent blown highlights while also contributing to less motion blur if there is motion in the frame.

However, it is often impossible to use faster exposures when lighting conditions are darker, and this is where ISO becomes a crucial aspect of photography in low-light. Automatic cameras, for example, will detect low-light environments and subsequently raise ISO in order to keep exposure times as short as possible. Readers may have noted that low-light photos they take are often very noisy and sometimes blurred or generally lacking in fine detail.

When there is little light available to a sensor, it needs to expose for considerably longer to produce a useful image. This is good in principle, but a longer exposure also means more opportunities for a human's shaky hands or a moving subject to introduce considerable blur. Automatic camera modes try to prevent taking a blurry image by aggressively increasing ISO to allow for faster exposures and thus hopefully less blur.

These are all valuable things to keep in mind while dipping one's feet into manual photography. Shutter speed and ISO are by far the main methods through which one controls the appearance of the final product, and it effectively becomes a balancing act between limiting motion blur/image noise and capturing the subject in a manner you intended. The added control of having those settings, however, is absolutely invaluable in an array of situations.

White Balance

White balancing is a process in which a camera will attempt to detect the type of white light largely visible in different environments. This is typically utilized to account for different light sources (fluorescent, incandescent, etc.), as well as different weather types and times of day (overcast, sunny, sunset, etc.). White balance generally focuses on collecting the proper temperature of white light in a scene, which ranges from cold (blue-tinted) to warm (orange or gold-tinted).

This is one setting that is often best left on automatic settings, unless the viewfinder suggests that the automatic white balance is obviously wrong. Of note, RAW images will have to be manually white balanced in post-processing, as RAW shooting will not modify the white balance in-camera.

Manual Focus

Manual focus controls are a more recent and much-appreciated addition to the control suite of manual smartphone photographers. OnePlus features a simple and intuitive circular slider which can be used to accurately set focus manually in lieu of the jumpier and imperfect auto-focus, something which is often exaggerated when trying to take photos of close subjects.

A wonderful feature of the OnePlus camera app, nevertheless, is the ability to select the automatic alternative for any of the four settings that can be controlled, including focus. Manual focus is typically unnecessary, as modern auto-focus methods are typically extremely capable and will rarely falter.

Manual Exposure

While I do not have any sample photos to use from my OnePlus 3T, manual exposure is a small supplement to ISO and shutter speed settings, and it is one of the rarer manual settings one will find in smartphone camera applications. If a combination of shutter speed and ISO produce an unsatisfying image, manual exposure is often offered as a way of tweaking the brightness of an image in-camera. It can quite easily be replaced by simply modifying brightness after taking the photo, but it can sometimes be more efficient to get the image right the first time.


Manual Camera Apps

While auto modes in modern cameras and camera apps have gotten increasingly versatile and intelligent, they are still often akin to using a hammer to kill a fly. Even if manual settings are only adopted while shooting in JPEG, the resultant images will often be much sharper and in control when compared to auto versions of the same scene. There is also something distinctly satisfying about understanding the different features manual cameras offer and applying that knowledge for the production of beautiful images. One could delve very deeply into an exploration of the homogeneous photography modern automatic cameras produce, but that is a rabbit hole we won't dive into today.

Of course, manual photography is simply another tool for the photographer, and it is not intended as an either/or choice for users. Automatic modes simply cannot always cope with the vast number of different situations and individual tastes they will be faced with and forced to conform to. Shooting manually can simply offer an experienced user a more fluid, less fickle method of consistently producing beautiful photography, something that anyone who has dealt with exceedingly stubborn automatic camera modes can likely sympathize with.

Unfortunately, while many manufacturers support manual photography in their stock software, there are still many who do not. Whatever the reason, there are certain cases where users of the shunned devices will be able to download Android camera apps which will offer manual controls. Due to the nature of software and how cameras function, however, certain devices simply will not have the API or kernel support necessary to manually control the devices' cameras.

Nevertheless, I will still recommend a handful of manual photography-enabling apps available through the Google Play Store. My personal favorite, which I used frequently before I purchased my OnePlus 3T, is Manual Camera. This application is minimally designed, but still quite beautiful and functional, and it only costs $3. Camera FV-5 is another highly-rated and functional paid option at $4. Regarding free camera apps with manual settings, I would recommend Open Camera or Adobe Photoshop Lightroom, which both feature capable and ad-free camera alternatives to your default app.

Regardless of the application you use, learning to use manual camera settings is a way to both better understand photography and also potentially improve your own photos. As always, the best method of learning these photography-related skills is to simply go and take some pictures while challenging yourself to make use of the manual settings you have at your disposal. You may experience missteps and some ugly pictures initially, but developing an intuitive grasp of manual photography is a reasonably quick process and should not require more than a healthy dose of frustration.


Have you taken any photos lately that you are particularly proud of? Share your work in the comments for a chance to have it featured in an upcoming article featuring XDA reader photography!



from xda-developers http://ift.tt/2mpRElF
via IFTTT

BlackBerry Launches the Keyboard-Equipped KEYone at MWC 2017

Mobile World Congress 2017 is just upon us, and one of the announcements before the event kicks off comes to us from BlackBerry. At their keynote right before MWC 2017, BlackBerry has revealed the rest of the specifications of the BlackBerry 'Mercury', which is now officially known as BlackBerry KEYone.

TCL had already unveiled the BlackBerry KEYone back at CES 2017, albeit in a limited fashion. Today's announcement reveals all there is to the new device from TCL bearing the BlackBerry branding and their security software expertise.

The new BlackBerry KEYone comes with a 4.5″ IPS LCD display with a resolution of 1620 x 1080 (3:2 aspect ratio) and pixel density of 433 PPI. While the BlackBerry Priv had a slide-out keyboard, the BlackBerry KEYone trades in screen size for a keyboard right on the front. The keyboard on the device also packs in neat features by itself, such as the ability to program each key as a separate shortcut, predictive flick typing and scrolling gesture support.

On the inside of the BlackBerry KEYone is the Qualcomm Snapdragon 625 octa-core SoC along with Adreno 506 GPU. The phone comes with 3GB of RAM and 32GB of internal storage, plus you can expand for more storage with a microSD card. There is also a decent sized 3,505 mAh battery along with Quick Charge 3.0 support; additionally, BlackBerry touts a "Boost mode" for charging speeds, although this merely consists of turning on Power Saving mode when the device is charging. Seeing how battery efficient the Snapdragon 625 SoC is, how small the display is and how large the battery is, the BlackBerry KEYone will easily be able to provide more than a day's worth of battery life.

For the camera, the BlackBerry KEYone comes with a 12MP Sony IMX 378 sensor on the rear, and a 8MP front camera. The rear sensor is the same as one used on the Google Pixel, so we will have to see how BlackBerry manages the camera software to compete with top end flagships.

The BlackBerry KEYone also comes with the latest Android 7.1 Nougat software right out-of-the-box. BlackBerry has also been fantastic with timely security updates. Combined with their own security enhancements on the device like the DTEK app and feature additions like the BlackBerry Hub, the KEYone will be a good choice for corporate and enterprise customers.

The BlackBerry KEYone will be available for a price of $549 from early-April, and will be available across the globe.

What are your thoughts on the BlackBerry KEYone? Let us know in the comments below!



from xda-developers http://ift.tt/2lll4AF
via IFTTT

GIF Share Overlay allows you to Search and Share GIFs without Switching Apps

An application developed by XDA Member rumboalla allows you to easily search and insert a GIF from GIPHY's large database without having to switch away from your favorite app. It does this by drawing an overlay on top of your favorite application. Check it out!



from xda-developers http://ift.tt/2lbe4oX
via IFTTT

Minimal & Elegant Watch Face with Tasker integration [Giveaway]

If you are a Tasker fan and own a smart watch, you are probably aware of AutoWear.

However useful it is, it's not going to replace your watch face anytime soon. I have been missing a simple way to display some Tasker information directly on my watch face for some time. Fortunately, I came across the Minimal & Elegant watch face on the Play Store.

Forgive me if I'm late to the party on this wonderful watch face. To make up for it, there is also a giveaway attached to this post. I have 20 codes from the developer of this watch face to give to readers. How cool is that?


Minimal & Elegant Watch Face

I have mixed feelings regarding watch faces, especially thanks to seeing those apps that offer hundreds of different watch faces. The amount of choice is simply overwhelming, therefore I uninstalled most of these applications a long time ago. Thankfully, I decided to finally give another watch face a try as I wanted to have some basic Tasker support with my smartwatch. I couldn't be happier with my decision, as Minimal & Elegant Watch Face had everything I wanted in a watch face – and more.

 

At first glance, the watch face seems quite complex. I wasn't sure where to start but as it later turned out, I realized the interface really isn't that difficult to grasp. The Watch Face – Minimal & Elegant allows you to download a watch face made by a passionate community member, or your chosen designs which you can then customize the functions available in the design of that face. The amount of customization options is enormous considering the fact that you are not making a face from scratch.

Customization of Watch Faces – Minimal & Elegant

Before I jump to the Tasker aspect of things, let me just list some of the options available for you to customize your watch face. Minimal & Elegant watch face application offers you the following options:

  • Pre-set Watch Faces
  • System
  • Digital Time
  • Analog Time
  • Custom Text Info
  • Interactive functions
  • Weather
  • Steps
  • Colors
  • Color Scheduler
  • Fonts
  • Little Worlds
  • Magic Backgrounds and Lights

This list is impressive already, without even going to the Tasker setup. Here are some details about each option.

Watch Faces

Duh! You can download/import an already made watch face or export your version and share it with the community. In addition to that, there is a preset schedule, so you can enjoy differently presets at the different time.

System

This section controls the very basic and general behavior of the watch face. You can modify the sleep times, brightness, dim periods and other settings.

Digital Time/Analog Time

If the watch face has a digital/analog version this is where you will find settings regarding the layout. You can display it in a normal or a dim mode and modify the size and position of elements on your watch. You can pick a different way of displaying your time in different modes. There are options to change the color, thickness, and shape of watch hands. Options are plenty to customize the layout and look of your face.

Custom Text

All the text overlays (3 lines) and predefined content can be moved around the face. Since Tasker variables are supported, you can virtually display anything you wish on any part of the watch face.

Interactive Functions

You can set an invisible overlay with various numbers of interactive zones. These can trigger Tasker tasks or predefined android events (opening apps, music playback control, and more). The layout can be customized and a tap can be changed to a double tap to activate as well. Great for placing shortcuts without obscuring the face view.

Weather

Everything you need to set about the weather is here: the source, update rate, units, and layout of the information. If you have already checked the custom text options, the controls will seem very familiar.

Steps

Connecting to Google Fit services allow displaying the step information either from the phone or the smartwatch. Information can be displayed on the screen using Custom Text options.

Colours

All Custom Text colors can be controlled from here. You can predefine the custom colors for different information. You can also set gradients if color backgrounds are used.

Color scheduler

The color scheduler allows you to change the colors of the faces based on the time context. There is no need for 3rd party apps like Tasker. It works on its own.

Fonts

Pretty self-explanatory, you gain access to fine tuning the fonts. Select the custom fonts or modify the shape and thickness of an existing one.

Little Worlds

Oh dear. This is actually very cute. You can have a mini Mario level playing at the bottom of your screen. These animations can be added as a full theme or additions to your existing themes! There are hundreds to pick from. This section alone will invest a lot of your time. Animations vary from a full-color awesomeness to 2-bit NOKIA style add-ons.

Magic Backgrounds and Lights

A great selection of already made watch backgrounds. If you have your own or you don't want to reinvent the watch face and pick an interesting one, this catalog will help you. There are options to apply watch layouts over pictures and control the lights of the scene.


Minimal & Elegant Watch Face Tasker Integration

Here is a sample Tasker project explaining what you can do with it. For this purpose, I will use my Location Profile, which simply sets a specific value to the %Location variable based on my current location. A great way to control what profiles should run in what locations. The variable's value will be displayed on the watch face showing the current location. The second profile will change the watch face from one preset to another based on the time context.

Each time I'm connected to a specific WiFi access point, the variable %Location is set, storing the name of this location. Because for now, the Minimal & Elegant Watch Face has no direct global variables support, we have to convert the global variable to a local one. We do this for each location.

A1,A2

These two tasks are only here to help us. When SSID is easy to read, they are not needed, but if you have to type something like VM5875894 it's handy to have the SSID information available. This will simply put to the clipboard whatever is available under %WIFII.

A3,A7

Each location has its own IF condition entry. The value of %WIFII is read and if it matches the regex of our SSID, then a location is assigned. One option has 2 SSID names assigned, should you need to cover that scenario as well. Rinse and repeat for each location you want to save this way.

A4

A variable %Location is set to [enter your name here]. I could skip this part and go directly to a local variable, but I'm using this value as a condition in other profiles. If I want my profile to work at home but not at work, I will simply add a state context (Variable value: %Location)

A5

We are assigning the value stored in %Location to a local variable – this will make it visible in the Minimal & Elegant plugin.

A6

Minimal & Elegant allows us to set 6 unique values and display it as a custom text on the watch face (MEV1-MEV6). If you want to update the value of MEV you have to assign a local variable and push it to the watch with the M&E Variables task. If your variable will change the value, but there is no task responsible for pushing it to the watch face, the smartwatch won't display a new value.

Set Away

The task mimics the way we were displaying the location values on the watch face, but it is triggered when the WiFi is not connected. When this happens, variable %Location is set to "Away" and pushed to the smartwatch after converting to the local variable.

Change the watch face

The process is simple. Create a few presets and save it in Minimal & Elegant app. Once you have the choice of presets, use task M&E Presets to change the look of your smartwatch.

Intents

The Minimal & Elegant watch face supports intents as well. This means you have several more settings to control using Tasker. While the FAQ page is comprehensive, this can be a very tedious process. Each setting requires a new intent to be built, instead of a nice config action. Have a look here for the list of APIs available for the app.


Import into Tasker

Below, you'll find the descriptions of each Tasker profile and task used in this project. If you are familiar with how to use Tasker and want to try implementing these yourself, try re-creating these yourself. The process is rewarding, as you'll gain a deeper understanding of Tasker plug-ins and integration with third-party applications. Plus, you'll be able to fine-tune my project to your liking.

Tasker Profile Descriptions


  Profile: Locations (8)          State: Wifi Connected [ SSID:* MAC:* IP:* ]  Enter: Set Location (7)          A1: [X] Flash [ Text:%WIFII Long:Off ]           A2: [X] Set Clipboard [ Text:%WIFII Add:Off ]                     A3: If [ %WIFII ~R ITC-STAFF ]          A4: Variable Set [ Name:%Location To:Work Recurse Variables:Off Do Maths:Off Append:Off ]           A5: Variable Set [ Name:%location To:%Location Recurse Variables:Off Do Maths:Off Append:Off ]           A6: M&E Variables [ Configuration:MEVS##%location Timeout (Seconds):0 ]           A7: End If                     A8: If [ %WIFII ~R FASTBERRY | %WIFII ~R SLOWBERRY ]          A9: Variable Set [ Name:%Location To:Home Recurse Variables:Off Do Maths:Off Append:Off ]           A10: Variable Set [ Name:%location To:%Location Recurse Variables:Off Do Maths:Off Append:Off ]           A11: M&E Variables [ Configuration:MEVS##%location Timeout (Seconds):0 ]           A12: End If                     A13: If [ %WIFII ~R VM5875894 ]          A14: Variable Set [ Name:%Location To:Ryan Recurse Variables:Off Do Maths:Off Append:Off ]           A15: Variable Set [ Name:%location To:%Location Recurse Variables:Off Do Maths:Off Append:Off ]           A16: M&E Variables [ Configuration:MEVS##%location Timeout (Seconds):0 ]           A17: End If                     A18: If [ %WIFII ~R Popup_Bikes ]          A19: Variable Set [ Name:%Location To:PopupBikes Recurse Variables:Off Do Maths:Off Append:Off ]           A20: Variable Set [ Name:%location To:%Location Recurse Variables:Off Do Maths:Off Append:Off ]           A21: M&E Variables [ Configuration:MEVS##%location Timeout (Seconds):0 ]           A22: End If     

  Profile: Away (10)          State: Not Wifi Connected [ SSID:* MAC:* IP:* ]  Enter: Set Away (11)          A1: Variable Set [ Name:%Location To:Away Recurse Variables:Off Do Maths:Off Append:Off ]           A2: Variable Set [ Name:%location To:%Location Recurse Variables:Off Do Maths:Off Append:Off ]           A3: M&E Variables [ Configuration:MEVS##%location Timeout (Seconds):0 ]   

  Profile: Change Face (21)          Time: From 07:35 Till 18:35  Enter: Change The Face (22)          A1: M&E Presets [ Configuration:tsk #1 Timeout (Seconds):0 ]   

If on the other hand, you would like to instead download the entire project to import into Tasker, we've got the project file for you to do that as well. Simply download it from the below link and save it to your internal storage. Unzip the .prj.xml file, which is Tasker's format for saving Tasker projects. Open up Tasker and disable Beginner Mode in preferences. Go back to the main screen and long-press on the home icon in the bottom left-hand corner. You should see a pop-up asking you to import a project. Tap on that and find where you saved the project file, and select it to import.

You should now see a new tab in the bottom row with all of the profiles and tasks mentioned in this article. Enjoy your custom, Tasker-integrated watch face!

Download the Minimal & Elegant Tasker Project

Room for Improvement

As with any app, nothing is perfect. Here is my list of suggested improvements:

  • All the sliders in the app which are responsible for adjusting the position of elements on the watch face are very sensitive. It's easy to overshoot the values. I would like to see additional fields to enter the values of X, Y manually as a number.
  • The app should support Tasker's global variables natively. Messing about with additional local variables is clunky.
  • I would also welcome more Tasker options. Having intents is great, but very inefficient to use. I understand the API support benefits other app developers, but I would like to see a Tasker config support based on these in the future.
  • The color scheduler – I think it goes without mention that this is something that should be driven not only by the time but other, available to Tasker, triggers.

The Minimal & Elegant Watch Face GIVEAWAY

The last part, and most likely the reason that you are reading this in the first place. The Minimal & Elegant watch face giveaway. The developer has kindly offered 20 codes to my readers. I don't have to sugar coat anything in exchange. All you have to do is keep your eye out on the comments section below as we will be randomly posting codes for anyone to claim.



from xda-developers http://ift.tt/2lb2gTC
via IFTTT

Android Nougat 7.0 is Rolling out to the Verizon Droid Turbo 2

About 10 days ago, we were first tipped that a user received an Android Nougat build on their Verizon Droid Turbo 2. We weren't sure if this information was accurate, but now multiple users began to corroborate this claim and furthermore Verizon has now confirmed that a build labeled 25.11.10.kinzie_verizon.verizon.en.US with December security patches is now rolling out.



from xda-developers http://ift.tt/2laTo0n
via IFTTT

How to Extract APKs or other Files from Factory Images

Have you ever found yourself needing to extract a particular application or file from a Nexus/Pixel factory image? If so, you may be interested in XDA Senior Member ZawZaw's guide on how to extract files from factory image archives. The guide can be followed by anyone on Windows or a Linux distribution.



from xda-developers http://ift.tt/2mwfYSg
via IFTTT