applications – Whatsapp for Android 2.2.1 (old version)

You can find old versions of WhatsApp here. Just navigate to the last (around the last) page to find versions compatible with Android 2.2.1.

BUT because those versions are too old, I am sure after you will be asked to update to a newer version. You should know that WhatsApp has stopped working on some versions of Android as stated here:

Come Saturday, February 1, 2020 (tomorrow), WhatsApp will no longer work on devices running Android 2.3.7 Gingerbread and older or iPhones running iOS 8 and older.

Specifically, as of February 1, 2020, WhatsApp will no longer support devices running Android 2.3.7 Gingerbread and older. After February 1, users will no longer be able to create new accounts or reverify existing accounts on these older Android versions.

As stated above, even if you install the old version, you will not be able to create an account or re-verify it.

how to convert android 10 phone to a software access point

I have an android 10 device which I would like to use use as software access point. I have broadband connection landline in my home. There are some corners where signals dont reach. So I want to use my spare android phone to convert it to a software access point. If this is some how possible then please let me know. I want my phone to be connected to the exisiting wifi network at a location in which signal is comming and at the same time want to convert the phone to work as an AP.
The phone is already connected to Wifi network in my ADSL router.

android – Caused by: groovy.lang.MissingPropertyException: Could not get unknown property ‘versions’

I am trying to import this below library

and I imported this module and gives me this error:

Caused by: groovy.lang.MissingPropertyException: Could not get unknown property 'versions' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

and this the build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.3.72'
    repositories {
        maven {
            url ''
    dependencies {
        classpath ''
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
        classpath "com.diffplug.spotless:spotless-plugin-gradle:$versions.spotlessGradle"
        classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:$versions.dokkaGradle"
        classpath "com.novoda:bintray-release:$versions.bintrayRelease"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

allprojects {
    repositories {

task clean(type: Delete) {
    delete rootProject.buildDir

and this is the error after I run

FAILURE: Build failed with an exception.

* Where:
Build file 'D:android_projectsMyApplication2build.gradle' line: 18

* What went wrong:
A problem occurred evaluating root project 'My Application'.
> Could not get unknown property 'versions' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at


charging – Bootloop and random restart issues in android (Gionee A1 plus)

My Gionee A1 plus started acting strange a month ago. It would often restart whenever I received any SMS notification and then boot up just fine. I tried using an earphone and keeping the phone in silent mode, as reducing the notification sound levels didn’t help. This fixed the problem for a few weeks until 2 days ago while using my camera, it suddenly decided to restart but got stuck in a bootloop(the boot logo kept popping up and disappearing again and again). I managed to turn it off by plugging it to a charger where it went to charging mode.

After a bit of research, I entered the stock “Android recovery mode” and cleared the /cache partition but that did not fix the issue. I panicked as I did not have a twrp or any other recovery tool installed. I didn’t even have USB debugging enabled. However, after a bit more strolling I found that fastboot could detect my device(after rebooting to bootloader) and then ran the command fastboot continue and my phone booted up alright. But now my phone can’t use the “Ultrafast charge mode” which makes the charging process 5 times longer and the battery drains really quick. What’s more the phone restarting by itself has become often(I can’t even use my camera) and its always the bootloop. I have to use fastboot to boot in again.

I created a backup of my data and then did a factory reset on the device to no use.

Do I need to flash a stock ROM to my device or am I missing something? I am inexperienced in this domain so please guide me on how to fix this issue. I have attached snaps of my Recovery and Factory modes.

Recovery mode

Hardware details

fastboot commands

TLDR; phone ends up in bootloop after suddenly restarting while in use, battery drains faster, no ultrafast charging, clearing cache and factory reset doesn’t help.

naming – System Hungarian Notation for Android UI components?

“Hungarian notation” can be useful to include additional information in the variable name, when that information cannot be represented in the type system. However, Systems Hungarian is entirely pointless and merely duplicates information that is already available. Most occurrences of Systems Hungarian are legacy code, or a misunderstanding of the benefits of Hungarian notation.

For example, I might use a variable like startCountdownButton in untyped languages like Python, but probably not in statically typed languages like Java. Depending on your architecture (like MVC, MVVM), there is also unlikely to be confusion between a button and an action because they aren’t part of the same object.

Nevertheless, if you find that including a prefix or suffix in your variable names makes them clearer in the context of your code, then go for it. There are many opinions on whether or not to use Hungarian notation, and some of them are phrased very strongly (you should never do this, always do that). But they are just opinions and guidelines, no strict laws. Do what makes sense for your code.

data synchronization – Syncing photos Android -> Mac

I would like to accomplish the following, which, in today’s technological ecosystem, seems like it should just happen anyway:

  • I take a photo on my Android phone

  • The phone uploads it somewhere automatically (presumably Google Photos)

  • My Mac downloads it automatically into a folder

In other words, I want the photos on my android device to seamlessly appear in a folder on my Mac, without me needing to do anything besides take the photo.

I have Google Drive installed, but my photos don’t seem to be there. I tried installing “Google Backup and Sync”, but it crashed immediately and I can’t get it to work. (I’m on OS X 10.11, so maybe that’s why. I don’t intend to upgrade until I get a new machine.) I’ve head that Google Backup and Sync is quite complex and fiddly to use anyway.

Is there any other way that automatic photo sync between Android and Mac can be accomplished? If possible, I’d prefer not to use Dropbox, because mine is nearly full and I already pay for additional space on Google Drive, so I don’t want to upgrade Dropbox as well.

android – Acceder a historial completo con WebView

Mi aplicación integra un navegador web y utiliza un botón para mostrar el historial en un ListView, código del botón:

private void showHistory(){
    WebBackForwardList currentList = myWebView.copyBackForwardList();
    int currentSize = currentList.getSize();
    String() history = new String(currentSize);
    for(int i = 0; i < currentSize; ++i){
        WebHistoryItem item = currentList.getItemAtIndex(i);
        history(i) = item.getTitle();
    ArrayAdapter <String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, history);

Funciona pero solamente muestra el historial de la sesión actual, cuando cierro la aplicación y la vuelvo a abrir parece que se borra el historial de sesiones pasadas

what is an android gpt image?

I had a rockpi 4B , so I grabbed this image rockpi-4b-rk3399_box-android9-20200522_1559_2f865d4-gpt.img
what does GPT means ? I am wondering if I can straight away burn it on memory card and plug it into rockpi and boot it up ?

How to change contact’s photo under Android 8.0

I am trying to change a contact’s photo under my Motorola Moto Z2 Play / Android 8.0.0 (Security Patch July 2019):

Contacts > 🔍 (find a contact) > 🖉 (edit contact) > 📸 (change photo) > Select new photo

and I am hit with an error saying:

No pictures are available on the device.

I don’t understand this situation, because:

  • I have dozens of photos and pictures on this device, including “DCIM”, “Pictures” and many other folders,
  • I’ve been changing contacts’ photos many times on this device.

Since I did this last time a couple of months / maybe a year ago. The only thing that comes to my mind is that I did this last time under old, good Android 7.1.2. And the recent update to Android 8.0.0 maybe messed up something.

Can anyone help me? How to workaround this bug / problem? How to change contact’s photo in A8?