Search Results for "lg"

Developer Spotlight: Reminiscing with Roman Birg

It’s been a couple weeks since our last Developer Spotlight with Mike Bestas two weeks ago. This time around we are moving the spotlight over to Roman Birg. He is responsible for several repositories today at Cyanogen Inc., but is ultimately known for his work on AOKP (Android Open Kang Project). Developer Spotlights are a public nudge of appreciation to the developers that tirelessly work and contribute to a greater cause for a better OS.

Roman, nice to have you on here. How is life and the dream?

R. Birg: Life is great! I’ve been living in Seattle with my girlfriend Dani for over two years now, and it has been amazing. We even got a chocolate lab who’s growing into a quite a fine doge (he had a lot of teenager energy). I can’t see myself leaving the PNW (Pacific North West), I love this place.

Tell us a bit about yourself, where do you come from and how did you start tinkering with code?

R. Birg: Born in Russia – moved to Memphis, Tennessee when I was 7, where I stayed until I graduated college. Although I didn’t start programming until high school, I kind of always knew that’s what I wanted to do… there was just no easy way to get into it when I was younger (and on dial up at the time).

I guess I started with some small time website hacking. I remember in 6th grade, I downloaded the phpBB forum zip, and opening the zip and trying to make sense of the PHP files on the school Windows 2000 PC’s. I also had no idea how to “run” them, I definitely tried though. I stuck with it for a while and eventually I was at the point where I had to learn Flash to continue down the web development path. I did not continue down that path.

What was the first language you started with? And what was the first project you completed?

R. Birg: My high school programming class started us out with Java, so I ran with that. Turned out it was the right call more or less – most of college courses stuck with Java as well. And then came Android (well, bytecode[smali] first for me). Since then I’ve been exploring other languages as many chances as I get, Java just doesn’t cut it alone anymore.

 

What have you incorporated from working on AOKP while working at Cyanogen Inc.?

R. Birg: A few features here and there (nav bar arrow keys I still use daily), and maybe my experience messing with quick settings? Mostly unicorn jokes though.

Not surprising, I am sure you rode in on one today.

What are you currently working on today?

R. Birg: I’m working on a nasty NFC + Bluetooth beaming bug where an unsuccessful transfer could put the other device in a bad state and not able to receive future file/photo beams until a reboot… so much stuff going on the device at that time too, it’s pretty gnarly.

Bug hunts can lead to or help create other bugs. Also, messing with Bluetooth can be a nightmare.

R. Birg:  Are you suggesting I’ve introduced bugs before? Never!

You have been around for a while in the Android scene, what do you think big manufacturers need to improve or focus on to be a better device manufacturer?

R. Birg: Everyone is so focused on making the next huge product that will sell millions of phones. But no one is putting in the time or love to make a device that doesn’t feel rushed. Everyone always has to have the newest hottest hardware (I do too sometimes). It’s really hard to find a balance.

I feel like if there was a _stellar_ phone out right now, that released with an MSM8974 (like the original OnePlus device), but it had the best camera on market, a fingerprint sensor, useful UI enhancement (CM anyone?), and proper LTE band support, I’d be all over it. You usually get two, maybe three out of four of those things, but never all.

The Nexus devices are the closest thing to this for me, but as always, those are severely lacking in the camera department.

So do you think that is why everything feels ‘outsourced’ and ‘stamped/rehashed’?

R. Birg: I think that’s a byproduct of OEMs iterating on designs they already have (or have seen working elsewhere). It’s expensive to make these things, and even more expensive to make them right!

I would like to see manufacturers not release a new flagship _every_ year. I’ll pick on Samsung here since they’re the easiest target. I think this is what makes them feel not brand-spankin’ new anymore. They’ll change out a tiny feature here and there every year, so it’s never a HUGE surprise what they announce next.

If I didn’t see Samsung for a year with a new flagship, and they came back the next year with a quality product, I would definitely think twice. I haven’t thought about buying a Samsung since the S3, which was just a stellar device.

On the other hand there the business side of things to think of. If I was in Samsung’s position, I’d probably be doing something very similar. It’s generating them users and profit. The question is always about sustainability.

What device are you currently using as your daily driver?

R. Birg: I’ve been using the Nexus 6P as my daily since it was released. It’s camera is decent for a Nexus device, but I’ve found that it really sucks at close up shots. I realize it’s a phone, but I’ve seen better.

I think that the camera is basically the most popular deciding factor for buyers today.

R. Birg: It wasn’t for me. Definitely a big part though. I knew this thing wasn’t going to have the best camera (although it was advertised to have a better one, and that did factor into my decision).

I think the fingerprint unlock did it for me. It was between a 6P and a new Moto X. The fingerprint sensor was the biggest difference between the two (that I cared about) and I don’t regret the decision. I use it heavily throughout the day – when I know I need to use my phone, it’s ready to go by the time I’m looking at it.

I would have to concur. Security is at an all time paramount these days.

You have a ton of experience with the amount of devices you have been able to test. With the Android platform being pretty dominant in today’s industry, what advice would you give to upcoming developers?

R. Birg: Write code. Don’t be scared of breaking stuff and dig in. I feel like that’s pretty standard advice, but if works.

Also it’s not always about *just* writing code – make sure your that code is actually solving a problem. It might be as small as a bug. The problem could even be learning to program! But it’s never about just sitting down at a computer for the sake of writing code.

Breaking starts way before fixing! I love that line!

Is there any developers you looked up to or reached out to while learning Android?

R. Birg: I want to give a huge shout out to Faux123. It was the time of the LG G2, and he was doing his own kernels and AOSP builds, I took a stab and reached out to him for help because I was stuck… and to my surprise he replied back! He was very patient with me and I tried to extract as much knowledge from him as possible without being annoying. I don’t think I could have started AOKP without his prior help.

The coolest part was I got to meet him a few years later at the BBQ (and then again at the CM Dev summit last year). Cheers Paul!

Paul is a very skilled developer, I am pretty sure everyone who has flashed a Kernel has heard of him.

Anything else before we part ways and get back to work?

R. Birg: I just want to say thanks to all the other developers contributing to CM (and other ROMs!), you all have shown me the power of the open source community. It’s all about having fun and learning new things, and this is a great place to do both.

Thanks for having me on here Steve!

 

You can catch Roman on Twitter or Google Plus for his social channels.

A Marshmallowy CM

We’ve been pretty quiet publicly on the CM13 (Marshmallow) progress, but we’ve been busy bees behind the scenes. Today, we’ve enabled the first wave of devices to receive CM13 nightlies. Now, before you jump head first into flashing these, please take a moment to read the items below – as they will impact your experience.

  1. If you are on CM 12.1 YOG4P or CM 12.1 YOG7D releases, we recommend you stay on course with the SNAPSHOT release channel and not jump to nightlies unless you are willing to accept a dip in quality. Our stable branches are vetted, CTS run and (in some cases) shipped on retail devices – which means the quality of those branches is far and above that of nightlies. We’d advise these folks to stay on the SNAPSHOT train, and we’ll have a quality approved SNAPSHOT for CM13 sometime Jan.
  2. If you are on a 12.1 nightly, you can ‘dirty flash’ CM13 (read update like any sane person) as long as you also update your third party addons in the same pass. This means, if you use Xposed, OpenGapps, etc. flash a Marshmallow compatible version of them immediately after your CM13 flash.
  3. If you have taken any unofficial, XDA or self made builds of the CM13 source code, we’d advise you to wipe upon coming to our official nightlies as we cannot ensure upgrade compatibility with third party distributions. Of course, you are welcome to not heed our suggestion, but don’t blame us if something goes sideways.

The device roster is starting small, and will grow over the next few weeks.

  1. OnePlus One (bacon)
  2. Nexus 7 (deb & flo)
  3. LG G4 (h815)
  4. Galaxy Tab Pro 8.4 (mondrianwifi)
  5. LG GPad 7.0 (v400 & v410)
  6. LG G3 Verizon (vs985)
  7. Moto X 2014 (victara)

That’s a decent spread of OEMs and a bit all over the place, but as stated, we’re working on our other 12.1 devices and this list will grow rapidly.

Expanding the CM device family

Over the past few months, device maintainers new and old have been pushing hard to get support up to par for a wide range of devices. While some flagships (M9/S6/G4, etc) still need more time in the proverbial oven, we’ve seen a large increase in the medium range devices.

Huawei 

Thanks in part to device contributions from Huawei’s team directly, we are now supporting the Honor 4 & 4x (cherry), Ascend Mate 2 (mt2) and Snapto (g620_a2). These devices represent the first set of Huawei devices we’ve supported since CM 7(!) and it’s nice to see the company supporting the community ahead of the rumored Huawei Nexus. We’re expecting good things to come here.

Motorola

Moto continues to make headway with their budget line – and we’ve now enabled support for both the Moto E (otus) and G (osprey) 2015 variants.

Xiaomi

This Chinese OEM has been making waves in Asia. That wave has reached CM with the support of the Mi3w and Mi4 (cancro).

Smartfren

The ‘Powered by Cyanogen’ AndroMax Q (rendang) is an Indonesian device with the unique nature of being the only CDMA Cyanogen Inc device.

WileyFox

The newest OEMs on this list will be seeing their release in Europe soon – and as with all Cyanogen Inc devices – we’ll have sources and nightlies ready to go alongside their delivery.

Oppo

Oppo has shown their strong community support for nearly two years now, and we are working on their latest R7, R7Plus, and R5 devices (with previous support for the Find 5, N1, Find 7, and N3), thanks in large part to their device donations. Look for the latest waves of Oppo devices to hit CM sources and downloads soon.

Samsung, HTC & LG

These perennials have more device variants than we can count, but we can knock a couple off the list with support for the Korean G3 (f400), M8 Dual Sim (m8d),  Galaxy S5 variants of Japan/China (kltekdi/kltechn) and the S5 Duos (klteduos/klteduoschn).

With more to come and others in the wings (eg. Nvidia Shield tablet), we’re glad to welcome our newest team members and devices. If you are working on a port that you’d like to see join the official roster, checkout our wiki page on submission guidelines.

-The CyanogenMod Team

PS. Have you seen the new contributors screen in your ‘About Phone’? It takes an army to support the combined 200+ devices receiving CM 11, 12.0 and 12.1.

Call for response: Messaging Redesign

Thursday, bsxtn gave you an introduction to the Cyanogen Design team. Today, they would like to present their vision for a Messaging app redesign, and want your opinion on the direction.

We want to build a refresh of the Messaging app which will be included in the CyanogenMod project. The Messaging app will handle SMS, MMS, and Group messages, while providing integration to a relaunched WhisperPush Service. Optionally, Cyanogen OS users will be able to use the TrueCaller integration to view caller ID information and block spammers.

Background: In November, we conducted a survey of our users on Google+ and Facebook. Of our CyanogenMod users, 66% reported sending at least one SMS message per day. Moreover, SalesForce via a commissioned study, reported that 90% of users in the US sent at least one SMS message per day. In the same Cyanogen Messaging Survey, 32% of our users reported using either the stock messaging app and 60% reported using Google Hangouts. In addition, “having a fun and fresh design” was listed by 41% of respondents as being the most important feature in an SMS app. The second most asked for feature was being able to text across platforms at 24% of users reporting.

Messaging is obviously an important part of the smartphone experience. Our current Messaging solution is looking dated with many community members stating that it looks like “KitKat with a FAB”. Moreover, with devices averaging 5.5 inches many operations are incorrectly placed on the screen. For example, the attachment entry point is at the top of the screen.

The first version of the Messaging redesign project will focus on building the base for the app so that later features can easily be added to it. For this reason, we will implement redesigns in 1) Messaging Conversation List, 2) Messaging Detail View, 3) Message Compose, and 4) Messaging Settings.

Once the first version is complete we will begin to focus on feature additions including 1) Attachment keyboard with mini-camera, mini-gallery, and mini-voice recorder in Message Compose, 2) Inline attachment previews in the Message Conversation List, 3) In-message media player for attachments (video, audio) in the Message Detail View, and 4) Swipe to delete in Message Conversation List. We are sharing these designs with the community in hopes that someone may want to pick up this week to see these features faster than we can build them.

Below are screen mocks for the first and second phases of the Messaging redesign. We welcome your feedback and look forward to having a productive conversation.

Please feel free to comment with any questions or concerns that you may have.

Edit: Getting reports of images being weird on mobile devices – if this includes you please see the alternative Gallery:

V1 – Message Conversation List

      

V1 – Message Detail View

     

    

V1 – Message Compose View

     

V2 – Attachment keyboard with mini-camera, mini-gallery, and mini-voice recorder in Message Compose

    

    
    
    

V2- Inline attachment previews in the Message Conversation List

V2- In-message media player for attachments (video, audio) in the Message Detail View

V2 -Swipe to delete in Message Conversation List

    

 

Developer Spotlight: A One On One With Invisiblek

Welcome to our first Developer Spotlight, a short Q & A with community staff. This is our way of taking a moment to recognize the many talented developers who contribute to one of the largest community driven open source projects around.

Dan Pasanen, also known as invisiblek, is a device maintainer inside of the CyanogenMod community. He has been a core contributor to the project since 2012 with nearly 1900 contributions. Dan is currently keeping himself busy maintaining multiple devices for CM, fixing device specific and CM-wide bugs. His current daily driver is a Verizon G3.

You are well known for your work on a wide array of LG, HTC and Samsung devices and even did some work for the HP Touchpad. Out of every device you have worked on, which device would you say was the most fun and the absolute worst to work on? 

I’m not sure I can pick one device that I love or hate more than any other. They’re all a bit of a challenge; every OEM does some weird things. I’d say the HTC Incredible was probably the most enjoyable though, that’s when I started out with Android and just general hacking around in open source.

Development on some of these devices can be extremely difficult, especially if there is a lack of documentation. What would you be the most difficult part of development on today’s devices?

I don’t know that there’s ever really much for documentation on any device. Most of the time looking at a similar device is about as much documentation as you can get. I’d say the most difficult part of working on devices today is dealing with all the little quirks that OEMs tend to do. LG G3’s camera was a good example of this. That one took a while to get sorted out.

What exactly made the G3 camera different from other devices?

 They messed with a header that is shared between the camera HAL (which is a proprietary lib we use from LG’s ROM in CM) and the framework’s camera client/server which we build from source in CM. They had added a new member to the camera_device_ops struct. Normally this wouldn’t cause an issue if they had added it to the end of the struct, but adding it to the beginning threw off the alignment between our source-build libraries and the proprietary HAL from LG. Even reverse-engineering the libraries didn’t make it apparent what the problem was. We were lucky enough to have some logging that showed a few numbers that didn’t line up between CM and the stock LG ROM and a little trial and error got us a preview image.

Reference: https://github.com/CyanogenMod/android_device_lge_g3-common/blob/cm-12.1/include/hardware/camera.h#L97

That line is some unknown LG stuff that just needs to be shoved in there to make things align.

There are a lot of aspiring developers out there looking to get into this line of work or maybe just as a hobby, what advice or tips would you give them today? Is there a language you would recommend learning before another?

Java and C++ are good languages if you’re just starting off learning to code. If you’re starting out with hacking around on a device, I recommend building a custom kernel and hacking around on that for awhile.

Sometimes working with nasty bugs you can start to feel metronomic and repetitive during development. What would you say helps you stay motivated during times like this?

Tough question, I suppose I’m motivated by the addiction to tweaking out any piece of hardware I can get my hands on. Stock is never good enough. =)

Coffee or Beer?

Both are equally important. Coffee to cure the head cramps from the beer the night before. Beer to unwind after a morning of drinking coffee.

Now that’s synergy.

Do you have any upcoming projects that you are excited about?

Not especially.

Fill in the blank. Bacon and _______.

Moar bacon.

Enough about the technical stuff, from Android’s inception to today’s date, which device is your most and which one would you say is your least favorite?

The HTC Droid DNA is probably my favorite device. Insanely underrated and quite powerful for its age. I wouldn’t say I have a least favorite device, I hate love them all the same.

Between work and life in general, what do you do with your free time? I noticed you recently purchased an 80’s Trac Moped, are you as diversified with a wrench as you are a keyboard?

Most of my free time, when I’m not working on anything Android-related, is spent outdoors hunting, fishing, and snowmobiling. I wouldn’t say I’m all that great working in the garage, but I know enough to get by.

Who was your role model you looked up to when you started coding?

Another tough one, there were many. Koush, cyanogen and toastcfh seem to stick out.

Is there anything you would like to say to the community before we end our chat?

Don’t feel overwhelmed and if you want to start out building and hacking, pick a device that’s at least relatively supported and learn from it.

You can follow Dan on his personal social media 

twitter_social_64 copy  64_google plus  github_social_64

All About L – Part 1

It seems Lollipop is on every enthusiast’s mind these days, as OEMs have started a steady stream of OTAs. With this multipart update, we’ll look at the most common questions (minus, “what about my device?”), Android 5.1, and what’s new and improved in CyanogenMod.

Android 5.1

Let’s start with the latest and greatest Lollipop release, Android 5.1. Released in the second week of March, 5.1 has actually seen two releases – 5.1_r1 earlier in the month and 5.1_r3 just this week. The team has been plugging away at these releases, rebasing and merging like fiends. We’re not quite at the point where nightlies will cross over to being officially branded CM12.1, but as always, you are welcome to track our progress.

The CyanogenMod 12.1 (Android 5.1) source is available to sync, and up and running with few issues on various devices – including the latest developer device the Nexus 6. When you repo init the source, just point the branch to ‘staging/cm-12.1’. The staging branch is where we are making things ‘just work’ (you’ll see many patches simply labelled “Fix build”). These patches will be cleaned up prior to moving the source code over to our active mainline branches.

We’d expect another week of this cleanup before CM 12.1 nightlies start flying out the gates.

So just what can you expect in CyanogenMod 12/12.1? Let’s take a brief look now, and even more in part 2!

Oldies Materialized

One of the first items you’ll notice is the Material theme, meant to invoke a sense of ‘living document’ while you interact with your device and apps. All the sweeping animations, bold and heavy on graphic design are present, and we’ve spent some time working on revisiting core CM apps to reflect the new design guidelines.

The CM Messaging app is now sporting a floating action button (FAB) and circular avatars for your contacts, embracing the most common indicators of Material. The app is now Android Wear compliant, thanks to contributor Anthony Williams (dexlab) – allowing it to gel nicely with the latest hot Android accessory.

Browser, abandoned for the most part in AOSP, got a facelift as well, sporting a new icon and making use of Lollipop’s vector support.

The same story applies to other apps, including the FM radio app seen on some of our Qualcomm based devices. Contributor Joey Rizzoli has led the UI revamp of a lot of apps to a large degree – with icons being provided by Jovie Brett Bardoles.

But we’re not through yet!

CyanogenMod File Manager

This venerable app has been a CM staple for quite a few years now. While it too has seen the Material UI overhaul and even learned a new trick or two with zip/rar and secure storage support, its user experience (UX) isn’t the most ideal or easy to navigate. To that end, it’s the next app on our todo list, and we’d love to have your input!

So we pose to you a simple question: How would you improve the File Manager? Let us know in the comments or this linked form.

Of course, the work done on the apps side doesn’t preclude all the device support as our team is all about division of tasks. CyanogenMod’s L flavor sees us bringing support for a fair number of devices, and plenty of new ones as well (107 devices currently receive CM12 nightlies). We’ll take this moment to discuss some of the newest additions to the CM family and the devices they brought to the party!

New friends and devices

–        SkrilaxCZ – bringing you the Moto Maxx (quark)

–        Luk1337  – bringing you the Moto G 2014 (titan)

–        Percy-g2 & Scritch007 – bringing you the Moto E 2014 (condor)

–        Eousphoros – bringing you the Samsung Galaxy Tab S 8.4 (klimtwifi)

–        Invisiblek & maniac103 – bringing you the Oppo N3 (n3)

–        Gekkehenkie11 & Slayher – bringing you the Samsung Galaxy Note 4 Intl (trltexx)

–        Crpalmer – bringing you the Moto X 2014 (victara)

–        Varunchitre & FXP – bringing you the Sony Xperia L (taoshan)

–        Woundtight – bringing you the Samsung Galaxy Note 4 US Cellular (trlteusc)

–        Drcrimzon & Slayher – bringing you the Samsung Galaxy Note 4 Sprint and T-Mobile (trltespr,trltetmo)

–        Slayher – bringing you the Samsung Galaxy Note 3 T-Mobile (hltetmo)

–        Savoca, Invisiblek – bringing you the LG G3 (d850,d851,d852,d855)

–        Cdesai & FXP – bringing you the Sony Z3 and Compact (z3,z3c)

–        Cdesai & FXP – bringing you the Sony Z3 tablet (scorpion,scorpion_windy)

–        SkrilaxCZ – bringing you the Droid Maxx (obake)

–        Dhacker29 – bringing you the Nexus 6 (shamu)

–        Simonsickle – bringing you the Nexus 9 (flounder)

This list is ever expanding, and we already have more maintainers coming on board to assist with additional devices – they just aren’t nightly ready yet. If your device is listed above, you now know who to thank for bringing the Lollipop experience to your device – you can find most of these folks on the usual social media networks, or stop by #cyanogenmod on Freenode IRC to say “hi”.

This is also a good point to mention that we are always on the lookout for regressions in behavior, even on nightlies. If you flash between nightlies and see something broken that was working properly before, please report it to our JIRA project category “NIGHTLIES”.

Goodbye unified, we hardly knew you

Observant readers will notice that the device variants, particularly for Samsung and Moto devices have once again been broken out into individual builds, counter to our announcement for CM11.

We are officially reverting the decision of using unified builds, as mentioned in that post, with CM12 and beyond.

We’re always conscious of build times, maintenance overhead and other common issues plaguing our contributors. The unified builds, at the time, proved to be an answer for a lot of those headaches – instead of pushing a change to 3-4 device repositories, we could make just one change. Instead of building 3-4 times, our maintainers could use one build to test across all variants. It sounded ideal, and was worth the effort.

So why the retraction? As you are all likely aware of, different carriers and regions receive updates to stock firmware at (putting it nicely) odd intervals. That means even if the device shared 95% of the same guts, the firmware wouldn’t necessarily be compliant across all the device variants. This was particularly prone to failures when looking at items like sensors and NFC. The effect snowballed, d2 and jf users will no doubt chime in here, and the overall quality of release for these unified devices fell.

We’re not ones to hold onto failed ideas, more about iteration and learning, and so we’ve reversed that prior decision. You’ll still be able to update from your CM11 unified to CM12 device variant release, but we will be abandoning the unified builds, and instead focusing on project structures that allow us to make use of ‘–common’ projects (ex. Jf-common). So, look out for jflteatt, spr, tmo and the other variants as their own builds moving forward. Motorola devices like the xt907, xt925, and xt926 share the same story and are likewise de-unified in CM12.

Next time, on All About L

This seems to be a sensible stopping point for this part of the update. Stay tuned next week as we take a feature dive into CyanogenMod 12 – including new soon-to-be favorites like Ambient Display and LiveDisplay (think f.lux like capability).

Until then, Happy Flashing!