diff options
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/cyngn/theme/util/Utils.java | 18 | ||||
-rw-r--r-- | src/com/cyngn/theme/widget/NavBarSpace.java | 11 |
2 files changed, 22 insertions, 7 deletions
diff --git a/src/com/cyngn/theme/util/Utils.java b/src/com/cyngn/theme/util/Utils.java index cbcbe4a..3fe8c63 100644 --- a/src/com/cyngn/theme/util/Utils.java +++ b/src/com/cyngn/theme/util/Utils.java @@ -21,12 +21,15 @@ import android.graphics.BitmapFactory; import android.graphics.BitmapRegionDecoder; import android.graphics.Point; import android.graphics.Rect; +import android.os.RemoteException; +import android.provider.Settings; import android.provider.ThemesContract; import android.util.Log; import android.util.TypedValue; -import android.view.ViewConfiguration; +import android.view.IWindowManager; import android.view.WindowManager; +import android.view.WindowManagerGlobal; import com.cyngn.theme.chooser.ChooserActivity; import java.io.File; @@ -244,7 +247,18 @@ public class Utils { } public static boolean hasNavigationBar(Context context) { - return !ViewConfiguration.get(context).hasPermanentMenuKey(); + boolean needsNavigationBar = false; + try { + IWindowManager wm = WindowManagerGlobal.getWindowManagerService(); + needsNavigationBar = wm.needsNavigationBar(); + } catch (RemoteException e) { + } + // Need to also check for devices with hardware keys where the user has chosen to use + // the on screen navigation bar + needsNavigationBar = needsNavigationBar || + Settings.Secure.getInt(context.getContentResolver(), + Settings.Secure.DEV_FORCE_SHOW_NAVBAR, 0) == 1; + return needsNavigationBar; } public static Bitmap loadBitmapBlob(Cursor cursor, int columnIdx) { diff --git a/src/com/cyngn/theme/widget/NavBarSpace.java b/src/com/cyngn/theme/widget/NavBarSpace.java index 71dce4d..993e9cf 100644 --- a/src/com/cyngn/theme/widget/NavBarSpace.java +++ b/src/com/cyngn/theme/widget/NavBarSpace.java @@ -28,11 +28,12 @@ public class NavBarSpace extends View { } @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - if (!Utils.hasNavigationBar(mContext)) { - int width = MeasureSpec.getSize(widthMeasureSpec); - setMeasuredDimension(width, 0); + protected void onFinishInflate() { + super.onFinishInflate(); + if (!Utils.hasNavigationBar(getContext())) { + this.setVisibility(View.GONE); + } else { + this.setVisibility(View.VISIBLE); } } } |