package io.appium.java_client.android;

import static io.appium.java_client.android.AndroidMobileCommandHelper.getDisplayDensityCommand;
import static io.appium.java_client.android.AndroidMobileCommandHelper.getSystemBarsCommand;

import io.appium.java_client.CommandExecutionHelper;
import io.appium.java_client.ExecutesMethod;

import java.util.Map;

public interface HasAndroidDeviceDetails extends ExecutesMethod {

    /*
        Retrieve the display density of the Android device.
     */
    default Long getDisplayDensity() {
        return CommandExecutionHelper.execute(this, getDisplayDensityCommand());
    }

    /*
        Retrieve visibility and bounds information of the status and navigation bars.
     */
    default Map<String, String> getSystemBars() {
        return CommandExecutionHelper.execute(this, getSystemBarsCommand());
    }

}

@@ -411,36 +411,34 @@
 Method %7B%0A%0A    /*
+*
 %0A
-   
      Retrieve th
@@ -477,16 +477,55 @@
  device.
+%0A%0A     @return The density value in dpi
 %0A     */
@@ -658,20 +658,18 @@
 %0A%0A    /*
+*
 %0A
-   
      Ret
@@ -742,16 +742,106 @@
 on bars.
+%0A%0A     @return The map where keys are bar types and values are mappings of bar properties.
 %0A     */
@@ -865,22 +865,35 @@
 String, 
+Map%3C
 String
+, Object%3E
 %3E getSys

Fix the return type for getSystemBars call (#1230)