summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/res/drawable-nodpi/compat_mode_help_bg.pngbin0 -> 134055 bytes
-rw-r--r--packages/SystemUI/res/drawable/compat_mode_help_diagram.pngbin0 -> 27765 bytes
-rw-r--r--packages/SystemUI/res/drawable/compat_mode_help_icon.pngbin0 -> 9667 bytes
-rw-r--r--packages/SystemUI/res/layout-sw600dp/compat_mode_help.xml79
-rw-r--r--packages/SystemUI/res/values/strings.xml6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java39
7 files changed, 125 insertions, 1 deletions
diff --git a/packages/SystemUI/res/drawable-nodpi/compat_mode_help_bg.png b/packages/SystemUI/res/drawable-nodpi/compat_mode_help_bg.png
new file mode 100644
index 000000000000..d1d32a470f0b
--- /dev/null
+++ b/packages/SystemUI/res/drawable-nodpi/compat_mode_help_bg.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable/compat_mode_help_diagram.png b/packages/SystemUI/res/drawable/compat_mode_help_diagram.png
new file mode 100644
index 000000000000..e2122313bc55
--- /dev/null
+++ b/packages/SystemUI/res/drawable/compat_mode_help_diagram.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable/compat_mode_help_icon.png b/packages/SystemUI/res/drawable/compat_mode_help_icon.png
new file mode 100644
index 000000000000..03bbef9c06a2
--- /dev/null
+++ b/packages/SystemUI/res/drawable/compat_mode_help_icon.png
Binary files differ
diff --git a/packages/SystemUI/res/layout-sw600dp/compat_mode_help.xml b/packages/SystemUI/res/layout-sw600dp/compat_mode_help.xml
new file mode 100644
index 000000000000..df3c5a3a402d
--- /dev/null
+++ b/packages/SystemUI/res/layout-sw600dp/compat_mode_help.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ android:background="@drawable/compat_mode_help_bg"
+ >
+ <TextView
+ android:id="@+id/header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="160dp"
+ android:layout_marginTop="80dp"
+ android:textSize="60sp"
+ android:maxLines="1"
+ android:shadowRadius="8"
+ android:shadowColor="#FF000000"
+ android:text="@string/compat_mode_help_header"
+ />
+ <ImageView
+ android:id="@+id/diagram"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="160dp"
+ android:layout_marginTop="80dp"
+ android:layout_centerInParent="true"
+ android:src="@drawable/compat_mode_help_diagram"
+ />
+ <TextView
+ android:id="@+id/explanation"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="80dp"
+ android:layout_marginRight="240dp"
+ android:layout_alignLeft="@id/header"
+ android:layout_alignParentBottom="true"
+ android:shadowRadius="4"
+ android:shadowColor="#FF000000"
+ android:textSize="28sp"
+ android:text="@string/compat_mode_help_body"
+ />
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="80dp"
+ android:layout_alignBottom="@id/explanation"
+ android:layout_alignParentRight="true"
+ android:src="@drawable/compat_mode_help_icon"
+ />
+ <Button
+ android:id="@+id/button"
+ android:layout_width="208dp"
+ android:layout_height="48dp"
+ android:layout_alignLeft="@id/header"
+ android:layout_alignParentBottom="true"
+ android:layout_marginBottom="10dp"
+ android:textSize="28sp"
+ android:text="@android:string/ok"
+ />
+</RelativeLayout>
+
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 973a4b2849ed..8945da5828d9 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -150,4 +150,10 @@
<!-- Checkbox label for application compatibility mode OFF (normal mode on tablets).
[CHAR LIMIT=25] -->
<string name="compat_mode_off">Stretch to fill screen</string>
+
+ <!-- Compatibility mode help screen: header text. [CHAR LIMIT=50] -->
+ <string name="compat_mode_help_header">Compatibility Zoom</string>
+
+ <!-- Compatibility mode help screen: body text. [CHAR LIMIT=150] -->
+ <string name="compat_mode_help_body">When an app was designed for a smaller screen, a zoom control will appear by the clock.</string>
</resources>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java
index 05eafe866955..83e8c96f8064 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java
@@ -26,6 +26,8 @@ public class Prefs {
public static final String DO_NOT_DISTURB_PREF = "do_not_disturb";
public static final boolean DO_NOT_DISTURB_DEFAULT = false;
+ public static final String SHOWN_COMPAT_MODE_HELP = "shown_compat_mode_help";
+
public static SharedPreferences read(Context context) {
return context.getSharedPreferences(Prefs.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
index d00625874d52..a7af30d83178 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import android.animation.LayoutTransition;
import android.animation.ObjectAnimator;
import android.app.ActivityManagerNative;
+import android.app.Dialog;
import android.app.PendingIntent;
import android.app.Notification;
import android.app.StatusBarManager;
@@ -35,6 +36,7 @@ import android.inputmethodservice.InputMethodService;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.drawable.LayerDrawable;
+import android.provider.Settings;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
@@ -1006,8 +1008,43 @@ public class TabletStatusBar extends StatusBar implements
// See above re: lights-out policy for legacy apps.
if (windowVisible) setLightsOn(true);
- // XXX: this is broken: http://b/4603422
mCompatModeButton.refresh();
+ if (mCompatModeButton.getVisibility() == View.VISIBLE) {
+ if (! Prefs.read(mContext).getBoolean(Prefs.SHOWN_COMPAT_MODE_HELP, false)) {
+ showCompatibilityHelp();
+ }
+ }
+ }
+
+ private void showCompatibilityHelp() {
+ final View dlg = View.inflate(mContext, R.layout.compat_mode_help, null);
+ View button = dlg.findViewById(R.id.button);
+
+ button.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ WindowManagerImpl.getDefault().removeView(dlg);
+ }
+ });
+
+ WindowManager.LayoutParams lp = mNotificationPanelParams = new WindowManager.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG,
+ WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
+ | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
+ | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
+ PixelFormat.TRANSLUCENT);
+ lp.setTitle("CompatibilityModeDialog");
+ lp.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED
+ | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING;
+ lp.windowAnimations = com.android.internal.R.style.Animation_ZoomButtons; // simple fade
+
+ WindowManagerImpl.getDefault().addView(dlg, lp);
+
+ SharedPreferences.Editor editor = Prefs.edit(mContext);
+ editor.putBoolean(Prefs.SHOWN_COMPAT_MODE_HELP, true);
+ editor.apply();
}
public void setImeWindowStatus(IBinder token, int vis, int backDisposition) {