With the recent launch of the Google Fit platform, we hope to spur innovation in the world of fitness apps and devices that encourage users to have a more active lifestyle. To expand the ecosystem and help users get a more comprehensive view of their fitness, were excited to announce the Google Fit Developer Challenge in partnership with adidas, Polar, and Withings. Were inviting you to create and showcase an app, or update an existing app, that integrates with Google Fit. The submission deadline is February 17, 2015. Our selected judges will choose up to six new apps and six existing apps for Fit, as the winners. The judges are looking for fitness apps that are innovative, fun to use, keep users coming back, offer users real benefit, and meet the Android design and quality guidelines.
Challenge winners will be featured on Google Play in front of Android users around the world. Runners-ups will also receive prizes, in the form of smart devices from Google, adidas, Polar, and Withings, so that they can continue to tinker and improve their fitness apps with the latest hardware.
Check out the challenge website to find out how to enter*. You will also find some helpful resources to find inspiration. We encourage you to join the Google Fit Developer Community on Google+ to discuss your ideas and the challenge.
* The challenge is open to registered Google Play developers in the US, UK, France, Germany, India, Israel, Hong Kong, Singapore, South Korea, Japan, and Taiwan who are over the age of 18 (or the age of majority in their country). For the full terms and conditions, read the official rules.
Posted by Angana Ghosh, Product Manager, Google Fit
The HTC One M9launch dayis just around the corner. Weve heard a lot of rumours already and saw a different renders presenting the concepts of the incoming HTC flag-ship device. The question is - what do we really know so far?
The answer is vague. We know all, and we know nothing. Current HTC One M9 specification looks reliable, but after all we might be surprised by the HTC. So lets take a look at the most "possible" details. The HTC One M9 model ID (MID) will start with 0PJA. Per example, its highly possible that the European WWE (401) variant will have 0PJA10000 MID number.
Screen - some said its going to be 5,5", some 5,2" but in the end it seems that HTC ended up with the same screen size as in the HTC One M8 - 5.0" with Full HD resolution and Super LCD3 technology, which seems to be a way better solution rather than using QHD display, mostly for performance reasons. Technically you have no chance to see the difference between the FHD and QHD displays in a real life. Under the microscope - sure. But in fact the QHD resolution looks better only on paper as a raw numbers. Marketing effect? Yes, sadly.
www.corninggorillaglass.com
Some sources said that the M9 screen is going to be covered with the new Corning® Gorilla® Glass 4 technology. This is a great news, because the 4th generation of the Gorilla Glass brought a couple of improvements: Enhanced retained strength after use High resistance to scratch and sharp contact damage Improved drop performance Superior surface quality SoC - already well known Qualcomm Snapdragon 810 (MSM8994) with a CPU running at 4 x 2.0 GHz + 4 x 1.5 GHz. The Qualcomm® Snapdragon 810 processor is the "ultimate connected computing processor, with 64-bit computing on 8 CPU cores and leading modem capabilities, is designed to enable the most advanced connected mobile user experiences, including streaming 4K Ultra HD video, sharing top-quality digital photos, on-line 3D gaming, and virtually seamless communications, along with outstanding battery life for premium smartphones and tablets". And its now only what Qualcomm says about the new S810. Some first benchmarks already proved how powerful this SoC is. Also, keep in mind its equipped with new Adreno 430 GPU and improved Hexagon DSP multithreaded CPU architecture - V56 DSP (up to 800MHz) vs Hexagon V50 on the HTC One M8.
RAM Memory - we already know that the HTC One M9 is going to have 3GB LPDDR4 (Low Power)RAM memory. It is a significant improvement versus HTC One M8 equipped 2 GB LPDDR3 RAM memory. Its worth to say that Snapdragon allows to use LPDDR4 1600MHz Dual-channel 64-bit (25.6GBps) memory vs. 933 MHz on the LPDDR3 technology.
ROM Memory - two variants: 32GB and 64GB. And of course a possibility to insert a microSD card. Lets hope HTC decided to use eMMC 5.0 SD 3.0 (UHS-I) this time. In the HTC One M8 - My point of (re)view I wrote that Snapdragon 801 added support for eMMC 5.0 (embedded Multi-Media Controller) storage technology but HTC decided to use older, eMMC 4.51 technology in the HTC One M8.
Communication - VoLTE, Carrier Aggregation and LTE Category 6 up to 300 Mbps for download and 50 Mbps for upload. As a comparison lets notice that the HTC One M8 is equipped with LTE modem category 4.
Rear camera -20.7 MPx with Dual LED Flash.
Front camera - 4 MPx with UltraPixel technology
Operating system - Android 5.0.2 with a brand new HTC Sense 7.0 user interface.
Battery - we had a 2,600 mAh battery on the HTC One M8 and now we have 2840 mAh on the HTC One M9. Not a huge change, but considering the fact that the screen size is the same we might actually notice some improvement. Also, the HTC Sense 7.0 might be more battery friendly than HTC Sense 6.0.
The HTC One M9 will come with a BoomSound of course. Release date? March, the 1st!
Want to chip in?
What about Android RevolutionHD for the HTC One M9? Well, I hope to start working on it as soon as possible. For that I need a HTC One M9 software (system dump) and a device itself. I cant sell my HTC One M8 so any contributions towards the upgrade are very much appreciated. If you like my work - just consider to chip in. Also thank you for your great support and letting Android Revolution HD be the most downloaded and desired custom ROM for almost 5 years! With more then 6 millions downloads on the counter I will keep working hard on the stuff you love.
Do you have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!
For latest news follow Android RevolutionHD on popular social platforms:
To create Custom InfoWindow for Google Maps Android API v2:
- Make your Activity implements GoogleMap.InfoWindowAdapter.
- Override getInfoWindow(Marker marker) and getInfoContents(Marker marker).
The API will first call getInfoWindow(Marker) and if null is returned, it will then call getInfoContents(Marker). If this also returns null, then the default info window will be used. The first of these (getInfoWindow()) allows you to provide a view that will be used for the entire info window. The second of these (getInfoContents()) allows you to just customize the contents of the window but still keep the default info window frame and background.
- setInfoWindowAdapter(this).
Modify MapsActivity.java from last example "Make GoogleMaps marker draggabe and detect moving marker".
public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback, GoogleMap.OnMapClickListener, GoogleMap.OnMapLongClickListener, GoogleMap.OnMarkerDragListener, GoogleMap.InfoWindowAdapter {
private GoogleMap mMap;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); // Obtain the SupportMapFragment and get notified when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this);
}
/** * Manipulates the map once available. * This callback is triggered when the map is ready to be used. * This is where we can add markers or lines, add listeners or move the camera. In this case, * we just add a marker near Sydney, Australia. * If Google Play services is not installed on the device, the user will be prompted to install * it inside the SupportMapFragment. This method will only be triggered once the user has * installed Google Play services and returned to the app. */ @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; mMap.setOnMapClickListener(this); mMap.setOnMapLongClickListener(this); mMap.setOnMarkerDragListener(this); mMap.setInfoWindowAdapter(this); }
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_addmarkers: addMarker(); return true; case R.id.maptypeHYBRID: if(mMap != null){ mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); return true; } case R.id.maptypeNONE: if(mMap != null){ mMap.setMapType(GoogleMap.MAP_TYPE_NONE); return true; } case R.id.maptypeNORMAL: if(mMap != null){ mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); return true; } case R.id.maptypeSATELLITE: if(mMap != null){ mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); return true; } case R.id.maptypeTERRAIN: if(mMap != null){ mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); return true; } case R.id.menu_legalnotices: String LicenseInfo = GoogleApiAvailability .getInstance() .getOpenSourceSoftwareLicenseInfo(MapsActivity.this); AlertDialog.Builder LicenseDialog = new AlertDialog.Builder(MapsActivity.this); LicenseDialog.setTitle("Legal Notices"); LicenseDialog.setMessage(LicenseInfo); LicenseDialog.show(); return true; case R.id.menu_about: AlertDialog.Builder aboutDialogBuilder = new AlertDialog.Builder(MapsActivity.this); aboutDialogBuilder.setTitle("About Me") .setMessage("http://android-er.blogspot.com");
aboutDialogBuilder.setPositiveButton("visit", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String url = "http://android-er.blogspot.com"; Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i); } });
aboutDialogBuilder.setNegativeButton("Dismiss", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } });
try{ lat = Double.parseDouble(strLat); }catch (NumberFormatException ex){ parsable = false; Toast.makeText(MapsActivity.this, "Latitude does not contain a parsable double", Toast.LENGTH_LONG).show(); }
try{ lon = Double.parseDouble(strLon); }catch (NumberFormatException ex){ parsable = false; Toast.makeText(MapsActivity.this, "Longitude does not contain a parsable double", Toast.LENGTH_LONG).show(); }
if(parsable){
LatLng targetLatLng = new LatLng(lat, lon); MarkerOptions markerOptions = new MarkerOptions().position(targetLatLng).title(strTitle);
//Add marker on LongClick position MarkerOptions markerOptions = new MarkerOptions().position(latLng).title(latLng.toString()); markerOptions.draggable(true);
mMap.addMarker(markerOptions); }
@Override public void onMarkerDragStart(Marker marker) { marker.setTitle(marker.getPosition().toString()); marker.showInfoWindow(); marker.setAlpha(0.5f); }
@Override public void onMarkerDrag(Marker marker) { marker.setTitle(marker.getPosition().toString()); marker.showInfoWindow(); marker.setAlpha(0.5f); }
@Override public void onMarkerDragEnd(Marker marker) { marker.setTitle(marker.getPosition().toString()); marker.showInfoWindow(); marker.setAlpha(1.0f); }
In what will surely be a blow to the brewing plans of our future robot overlords, Pizza Hut is touting its “new” hand-tossed pizza as the Next Big Thing In Eating Pizza. See? We don’t need your robotic tossing, machines. We humans aren’t perfect, and neither will that hand-tossed dough be, explains The Hut. Take that, armies of the artificially intelligent oppressors!
Anyway, hot off the heels of The Hut’s mind-blowing news that it was going to try that whole “selling single slices of pizza thing,” the company is now telling everyone that it’s got a new hand-tossed pizza, touched by people like me and you.
This new version of its hand-tossed pizza has a “lighter, airier crust, cheese blended with five Italian flavors and now brushed with garlic-buttery goodness,” according to the new ads (via AdAge). The sauce and topping options will stay the same.
Pizza Hut says everything about this pizza is in no way like anything else ever.
“[The new pizza is] completely different,” the chain’s Chief Marketing Officer Carrie Walsh tells AdAge. “It has imperfections. Customers definitely noticed a difference. We believe it’s a game-changer.”
Now’s the time when anyone who ever worked in a pizza joint pre-Pizza Hut/Domino’s/Papa John’s etc. (hi, Dad!) starts scoffing and saying, “Back in my day, it was ALL hand-tossed pizzas! None of this mechanical tossing by robots or whatever it is they have doing all the work these days!”
Yeah, take that, future robot overlords! We’re not going down that easy and we will defy you with pizza!