Merge "One-time-only compatibility mode explanation dialog." into honeycomb-mr2
This commit is contained in:
committed by
Android (Google) Code Review
commit
5994bff924
BIN
packages/SystemUI/res/drawable-nodpi/compat_mode_help_bg.png
Normal file
BIN
packages/SystemUI/res/drawable-nodpi/compat_mode_help_bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 131 KiB |
BIN
packages/SystemUI/res/drawable/compat_mode_help_diagram.png
Normal file
BIN
packages/SystemUI/res/drawable/compat_mode_help_diagram.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
BIN
packages/SystemUI/res/drawable/compat_mode_help_icon.png
Normal file
BIN
packages/SystemUI/res/drawable/compat_mode_help_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.4 KiB |
79
packages/SystemUI/res/layout-sw600dp/compat_mode_help.xml
Normal file
79
packages/SystemUI/res/layout-sw600dp/compat_mode_help.xml
Normal file
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
@@ -1005,8 +1007,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) {
|
||||
|
||||
Reference in New Issue
Block a user