Tuesday, April 17, 2018

Why Android Studio is a Nightmare.

I had a dream not that long ago. In my dream, I re-vamped the app that I include with all the ROMs that I build and that I'd use my CoH C framework to provide some interesting features and functions. Being inspired by that dream I formulated a plan. I'd download "Android Studio" and create an App and it would be GLORIOUS! I'd have to work on it when I was not online but that would not be a problem would it? Nah... On to the download of Android Studio!

This is when the dark clouds started to gather on the horizon. Android Studio, for Linux, comes in a big zip that you just extract and run from anywhere. I know it's just a small thing but can't we get some OS integration here. I mean, when you download Chrome for Ubuntu, it installs itself in an appropriate location and puts a launcher in the menu. With Android Studio, I got to extract the zip then "cd" to the location and "cd" to the bin dir and launch a shell script from the terminal. OK, I could create my own launcher and all but still. It's a small bummer and darkens my day but these dark clouds won't stick around will they? Na, surely the sun will shine!

Soooo, I've got Android Studio and I can start on this when in my "offline" time right? Well, when that time rolls around I setup my laptop and fire up Android Studio but low and behold, I can't do anything. There is some error about the sdk. You need the "sdk" of course. Can't do anything without the sdk! And oh, great, there are like 27 of them to choose from and Gigs upon gigs of sdk to download. YAY! Hope you caught the thick sarcasm. Suffice it to say, the time that I had set aside to begin this project was entirely wasted.

Example message similar to the one I was getting...

At my next opportunity, I remember that I must fire up Android Studio and allow it to get it's sdk. Of course half way through the HUGE download my connection dies and then reconnects. Android Studio hangs there like a deer staring at headlights. Now, of course, it's not Android Studio's fault that my connection dies but being able to resume a broken download is a common affair these days. Hell, "wget" can resume a broken download. You just kill and and resume with "wget -c $url". So I wasted a bunch of time restarting the same download over and over again until finally, I did just download it with "wget"( fortunately the SDK Manager lists the full url to the download) and looked up online how to set the sdk folder. OK. B.S. is done I'm all set up and I can work on this in my offline time right?

Is it getting darker around here? I'm getting cold. Is it just me? What was that? Did you hear that? So fired up the laptop, launched Android Studio and start a new project with "C++" support. Gradle sync failed!. UAGGGGGH! Yes if you want "C++" you need the NDK. Of course! The NDK! How the eff did I miss that! Now, I gotta wait till, I'm online AGAIN to download more Gigs of NDK. For effs sake, why can't Android Studio just come with everything it needs! I'll tell you why, cause if it did you'd be downloading like 10GB all at once!

Example message similar to what I got.

So now, its dark and cold everywhere and this crazy "Android Studio" clown is laughing at me and creepily saying "Download more addons! and oh and now that you've got the NDK downloaded, I'm ready to update to a new version. download... download... download..." AHHHHHHHHHHH!

Tuesday, April 10, 2018

Site re-design - ish and the Honor v10 (BERKELEY)

So, I finally got this site into an organization that I'm satisfied with. God knows it took for ever. I mean, a blog is just not suited to organizing years of android device/ROM development work. A blog is intended for people to ... write about ... stuff; like a diary I guess. I don't need that. What I need is a way to present the work that I have done on different devices in a way that is pleasing, simple, and logical. Given the limitation of "Blogger", I believe that I have achieved that.

I also added a forum. The forum is not that sophisticated but it will be enough for what I want. It will act as a replacement for the "Google Plus" embedding I used to do at the bottom of pages. Some projects will live there I suppose and others will have dedicated pages outside of the forum. I haven't quite figured out which.

I must also say welcome to the Honor View 10 to the myriad of devices I'll be working on. I have already released a CoH branded TWRP 3.2.1 and Resurrection Remix Oreo for it. You can get those here:

I must say I quite disappointed in the "Honor Open Source Program". To a developer, a program with this name, coming from a phone manufacturer, implies that this will be a program in which Honor will release the source code of the phone to developers in the program. However, that seems not to be the case. Now, I am forced to conclude that the a-fore mentioned program is just a means to give away free phones and hope that developers will be so grateful for a free phone, that they will help generate a loud noise that will boost the sales of the Honor View 10. This is not a bad thing. A free phone is nice but if I had known we wouldn't see anymore source that is normally given from Huawei/Honor, I would not have signed up.

With the increasing pressure for Android to become more and more secure, prompting manufacturers to create/use more and more complex security schemes, fixing issues with these devices on custom ROMs becomes increasingly more difficult. Without the source code, they are tying our hands behind our back.

I understand that the source code may be proprietary and their maybe legal issues to obtaining or releasing that source. However, in my opinion, you work that out before you start a program called "Honor Open Source Program" or you don't use that name. A name like "Honor Marketing Boost Program" might be more appropriate?

At any rate, I'll do the best I can for this device. Not for Honor/Huawei and certainly not for XDA but for the people who actually buy the device...

Friday, September 1, 2017

tomxplayer: re-written, improved, and re-released.

So, given the restraints of the Raspberry Pi, I decided to re-write 'tomxplayer' in C / GTK+. C# is a good language for me. I can mock-up, explore, experiment, refine and publish very quickly in that language/framework. However the Raspberry Pi has limited memory and I thought that the overhead of the Mono framework would not be advantageous. So, with a little time I was able to reproduce C# work, in pure C / GTK+.

tomxplayer demo on Ubuntu MATE 16.04 LTS

tomxplayer demo on Raspbian Stretch ( 8-16-2017)

These versions run at @ 20-25 MB of memory vs the 80-120 MB in the C# version! I've also created a new home page for tomxplayer here:

and new releases of tomxplayer will posted here  (You can get the intial release now!):

Issues and pull requests can also be posted to the project:

Sunday, July 16, 2017

tomxplayer: The Raspberry Pi Video Player (Comming Soon)

     Recently I got my self a Raspberry Pi 3 Model B. It's a tiny computer... blah blah blah... google it. I purchased it because it was capable of running Ubuntu Mate and I've been running Ubuntu Mate as my primary OS for along while now. For me, there are times when a low power PC would come in handy. It was not long before I noticed that video playback is a little non-standard on the PI. The only player capable of taking advantage of the Pi's hardware acceleration is omxplayer ( a cmdline only application ).

There are a few projects I've seen but they all have the video open outside the window and they feel counter-intuitive. Every one knows what a standard video player should act like. Video applications like mplayer, vlc and "media player" for windows have been around for a long time and they all have the video window inside their window bounds. There is also a project where by you can control omxplayer through a webpage and various other remote control options.

None of these were going to work for me. I wanted a standard video player, like vlc, So I decided to write my own. It's still in the testing phase but things seem pretty stable so far. tomxplayer is not available for download yet but here is a video of me testing it.

  • Video moves with the window.
  • Video disappears when window is minimized (audio still plays).
  • Window stays on top and stays on current work space.
  • Aspect ratio: Letterbox or stretch.
  • Manual overscan offset adjustments.
  • Continuous Playback (build a playlist from directory and loop).
  • Volume controls
  • Fast Forward (10s) / Rewind (10s) / |  Slider for exact position
  • Previous / Next
  • Fullscreen
    • Video controls re-appear on mouse move and re-disappear after 5 seconds of no mouse movement.
  • Keyboard controls
    • Escape = Exit fullscreen
    • F11 = Toggle fullscreen
    • p = Toggle Play /Pause
    • Up = Volume Up
    • Down = Volume Down
    • Right = Fast forward
    • Left = Rewind