diff options
Diffstat (limited to 'packages')
4 files changed, 82 insertions, 45 deletions
diff --git a/packages/BackupRestoreConfirmation/res/values-ru/strings.xml b/packages/BackupRestoreConfirmation/res/values-ru/strings.xml index 98b8bfc..dfbcff1 100644 --- a/packages/BackupRestoreConfirmation/res/values-ru/strings.xml +++ b/packages/BackupRestoreConfirmation/res/values-ru/strings.xml @@ -32,7 +32,7 @@ <string name="restore_enc_password_text" msgid="6140898525580710823">"Если восстановленные данные зашифрованы, введите пароль:"</string> <string name="toast_backup_started" msgid="550354281452756121">"Резервное копирование..."</string> <string name="toast_backup_ended" msgid="3818080769548726424">"Резервное копирование завершено"</string> - <string name="toast_restore_started" msgid="7881679218971277385">"Восстановление..."</string> + <string name="toast_restore_started" msgid="7881679218971277385">"Копирование..."</string> <string name="toast_restore_ended" msgid="1764041639199696132">"Восстановление завершено"</string> <string name="toast_timeout" msgid="5276598587087626877">"Время ожидания истекло"</string> </resources> diff --git a/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java b/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java index 9da883a..a1c5650 100644 --- a/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java +++ b/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java @@ -31,7 +31,6 @@ import android.os.SystemProperties; import android.renderscript.Matrix4f; import android.service.wallpaper.WallpaperService; import android.util.Log; -import android.view.Display; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.WindowManager; @@ -41,7 +40,6 @@ import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.egl.EGLContext; import javax.microedition.khronos.egl.EGLDisplay; import javax.microedition.khronos.egl.EGLSurface; -import javax.microedition.khronos.opengles.GL; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.ByteOrder; @@ -93,6 +91,7 @@ public class ImageWallpaper extends WallpaperService { return "1".equals(SystemProperties.get(PROPERTY_KERNEL_QEMU, "0")); } + @Override public Engine onCreateEngine() { mEngine = new DrawableEngine(); return mEngine; @@ -102,8 +101,6 @@ public class ImageWallpaper extends WallpaperService { static final int EGL_CONTEXT_CLIENT_VERSION = 0x3098; static final int EGL_OPENGL_ES2_BIT = 4; - private final Object mLock = new Object[0]; - // TODO: Not currently used, keeping around until we know we don't need it @SuppressWarnings({"UnusedDeclaration"}) private WallpaperObserver mReceiver; @@ -125,7 +122,6 @@ public class ImageWallpaper extends WallpaperService { private EGLConfig mEglConfig; private EGLContext mEglContext; private EGLSurface mEglSurface; - private GL mGL; private static final String sSimpleVS = "attribute vec4 position;\n" + @@ -150,17 +146,16 @@ public class ImageWallpaper extends WallpaperService { private static final int TRIANGLE_VERTICES_DATA_UV_OFFSET = 3; class WallpaperObserver extends BroadcastReceiver { + @Override public void onReceive(Context context, Intent intent) { if (DEBUG) { Log.d(TAG, "onReceive"); } - synchronized (mLock) { - mLastSurfaceWidth = mLastSurfaceHeight = -1; - mBackground = null; - mRedrawNeeded = true; - drawFrameLocked(); - } + mLastSurfaceWidth = mLastSurfaceHeight = -1; + mBackground = null; + mRedrawNeeded = true; + drawFrame(); } } @@ -234,14 +229,12 @@ public class ImageWallpaper extends WallpaperService { Log.d(TAG, "onVisibilityChanged: mVisible, visible=" + mVisible + ", " + visible); } - synchronized (mLock) { - if (mVisible != visible) { - if (DEBUG) { - Log.d(TAG, "Visibility changed to visible=" + visible); - } - mVisible = visible; - drawFrameLocked(); + if (mVisible != visible) { + if (DEBUG) { + Log.d(TAG, "Visibility changed to visible=" + visible); } + mVisible = visible; + drawFrame(); } } @@ -260,17 +253,15 @@ public class ImageWallpaper extends WallpaperService { + ", xPixels=" + xPixels + ", yPixels=" + yPixels); } - synchronized (mLock) { - if (mXOffset != xOffset || mYOffset != yOffset) { - if (DEBUG) { - Log.d(TAG, "Offsets changed to (" + xOffset + "," + yOffset + ")."); - } - mXOffset = xOffset; - mYOffset = yOffset; - mOffsetsChanged = true; + if (mXOffset != xOffset || mYOffset != yOffset) { + if (DEBUG) { + Log.d(TAG, "Offsets changed to (" + xOffset + "," + yOffset + ")."); } - drawFrameLocked(); + mXOffset = xOffset; + mYOffset = yOffset; + mOffsetsChanged = true; } + drawFrame(); } @Override @@ -281,9 +272,7 @@ public class ImageWallpaper extends WallpaperService { super.onSurfaceChanged(holder, format, width, height); - synchronized (mLock) { - drawFrameLocked(); - } + drawFrame(); } @Override @@ -305,12 +294,10 @@ public class ImageWallpaper extends WallpaperService { } super.onSurfaceRedrawNeeded(holder); - synchronized (mLock) { - drawFrameLocked(); - } + drawFrame(); } - void drawFrameLocked() { + void drawFrame() { SurfaceHolder sh = getSurfaceHolder(); final Rect frame = sh.getSurfaceFrame(); final int dw = frame.width(); @@ -657,8 +644,6 @@ public class ImageWallpaper extends WallpaperService { throw new RuntimeException("eglMakeCurrent failed " + GLUtils.getEGLErrorString(mEgl.eglGetError())); } - - mGL = mEglContext.getGL(); return true; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java index cc9c601..a616490 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java @@ -55,6 +55,7 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.LevelListDrawable; import android.hardware.display.DisplayManager; import android.hardware.display.WifiDisplayStatus; +import android.net.wifi.WifiManager; import android.os.AsyncTask; import android.os.Handler; import android.os.RemoteException; @@ -85,6 +86,8 @@ class QuickSettings { private static final String TAG = "QuickSettings"; public static final boolean SHOW_IME_TILE = false; + public static final boolean LONG_PRESS_TOGGLES = true; + private Context mContext; private PanelBar mBar; private QuickSettingsModel mModel; @@ -94,6 +97,8 @@ class QuickSettings { private WifiDisplayStatus mWifiDisplayStatus; private PhoneStatusBar mStatusBarService; private BluetoothState mBluetoothState; + private BluetoothAdapter mBluetoothAdapter; + private WifiManager mWifiManager; private BrightnessController mBrightnessController; private BluetoothController mBluetoothController; @@ -131,6 +136,9 @@ class QuickSettings { mModel = new QuickSettingsModel(context); mWifiDisplayStatus = new WifiDisplayStatus(); mBluetoothState = new QuickSettingsModel.BluetoothState(); + mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + mHandler = new Handler(); Resources r = mContext.getResources(); @@ -391,7 +399,7 @@ class QuickSettings { private void addSystemTiles(ViewGroup parent, LayoutInflater inflater) { // Wi-fi - QuickSettingsTileView wifiTile = (QuickSettingsTileView) + final QuickSettingsTileView wifiTile = (QuickSettingsTileView) inflater.inflate(R.layout.quick_settings_tile, parent, false); wifiTile.setContent(R.layout.quick_settings_tile_wifi, inflater); wifiTile.setOnClickListener(new View.OnClickListener() { @@ -400,6 +408,30 @@ class QuickSettings { startSettingsActivity(android.provider.Settings.ACTION_WIFI_SETTINGS); } }); + if (LONG_PRESS_TOGGLES) { + wifiTile.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + final boolean enable = + (mWifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED); + new AsyncTask<Void, Void, Void>() { + @Override + protected Void doInBackground(Void... args) { + // Disable tethering if enabling Wifi + final int wifiApState = mWifiManager.getWifiApState(); + if (enable && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) || + (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED))) { + mWifiManager.setWifiApEnabled(null, false); + } + + mWifiManager.setWifiEnabled(enable); + return null; + } + }.execute(); + wifiTile.setPressed(false); + return true; + }} ); + } mModel.addWifiTile(wifiTile, new QuickSettingsModel.RefreshCallback() { @Override public void refreshView(QuickSettingsTileView view, State state) { @@ -415,7 +447,7 @@ class QuickSettings { }); parent.addView(wifiTile); - if (mModel.deviceSupportsTelephony()) { + if (mModel.deviceHasMobileData()) { // RSSI QuickSettingsTileView rssiTile = (QuickSettingsTileView) inflater.inflate(R.layout.quick_settings_tile, parent, false); @@ -538,7 +570,7 @@ class QuickSettings { // Bluetooth if (mModel.deviceSupportsBluetooth()) { - QuickSettingsTileView bluetoothTile = (QuickSettingsTileView) + final QuickSettingsTileView bluetoothTile = (QuickSettingsTileView) inflater.inflate(R.layout.quick_settings_tile, parent, false); bluetoothTile.setContent(R.layout.quick_settings_tile_bluetooth, inflater); bluetoothTile.setOnClickListener(new View.OnClickListener() { @@ -547,6 +579,19 @@ class QuickSettings { startSettingsActivity(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS); } }); + if (LONG_PRESS_TOGGLES) { + bluetoothTile.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mBluetoothAdapter.isEnabled()) { + mBluetoothAdapter.disable(); + } else { + mBluetoothAdapter.enable(); + } + bluetoothTile.setPressed(false); + return true; + }}); + } mModel.addBluetoothTile(bluetoothTile, new QuickSettingsModel.RefreshCallback() { @Override public void refreshView(QuickSettingsTileView view, State state) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java index 4513dcb..ec42883 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java @@ -29,6 +29,7 @@ import android.content.res.Resources; import android.database.ContentObserver; import android.graphics.drawable.Drawable; import android.hardware.display.WifiDisplayStatus; +import android.net.ConnectivityManager; import android.os.Handler; import android.os.UserHandle; import android.provider.Settings; @@ -171,6 +172,8 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, private final BugreportObserver mBugreportObserver; private final BrightnessObserver mBrightnessObserver; + private final boolean mHasMobileData; + private QuickSettingsTileView mUserTile; private RefreshCallback mUserCallback; private UserState mUserState = new UserState(); @@ -249,6 +252,10 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mBrightnessObserver = new BrightnessObserver(mHandler); mBrightnessObserver.startObserving(); + ConnectivityManager cm = (ConnectivityManager) + context.getSystemService(Context.CONNECTIVITY_SERVICE); + mHasMobileData = cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE); + IntentFilter alarmIntentFilter = new IntentFilter(); alarmIntentFilter.addAction(Intent.ACTION_ALARM_CHANGED); context.registerReceiver(mAlarmIntentReceiver, alarmIntentFilter); @@ -403,22 +410,22 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mWifiCallback.refreshView(mWifiTile, mWifiState); } + boolean deviceHasMobileData() { + return mHasMobileData; + } + // RSSI void addRSSITile(QuickSettingsTileView view, RefreshCallback cb) { mRSSITile = view; mRSSICallback = cb; mRSSICallback.refreshView(mRSSITile, mRSSIState); } - boolean deviceSupportsTelephony() { - PackageManager pm = mContext.getPackageManager(); - return pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY); - } // NetworkSignalChanged callback @Override public void onMobileDataSignalChanged( boolean enabled, int mobileSignalIconId, String signalContentDescription, int dataTypeIconId, String dataContentDescription, String enabledDesc) { - if (deviceSupportsTelephony()) { + if (deviceHasMobileData()) { // TODO: If view is in awaiting state, disable Resources r = mContext.getResources(); mRSSIState.signalIconId = enabled && (mobileSignalIconId > 0) |