Merge commit 'goog/master' into master_gl

This commit is contained in:
Mathias Agopian
2009-04-13 14:31:08 -07:00
9 changed files with 166 additions and 37 deletions

View File

@@ -95163,6 +95163,17 @@
visibility="public"
>
</field>
<field name="ALARM_ALERT"
type="java.lang.String"
transient="false"
volatile="false"
value="&quot;alarm_alert&quot;"
static="true"
final="true"
deprecated="not deprecated"
visibility="public"
>
</field>
<field name="ALWAYS_FINISH_ACTIVITIES"
type="java.lang.String"
transient="false"
@@ -95283,6 +95294,16 @@
visibility="public"
>
</field>
<field name="DEFAULT_ALARM_ALERT_URI"
type="android.net.Uri"
transient="false"
volatile="false"
static="true"
final="true"
deprecated="not deprecated"
visibility="public"
>
</field>
<field name="DEFAULT_NOTIFICATION_URI"
type="android.net.Uri"
transient="false"

View File

@@ -31,8 +31,9 @@ import android.util.Log;
* The chosen ringtone's URI will be persisted as a string.
* <p>
* If the user chooses the "Default" item, the saved string will be one of
* {@link System#DEFAULT_RINGTONE_URI} or
* {@link System#DEFAULT_NOTIFICATION_URI}. If the user chooses the "Silent"
* {@link System#DEFAULT_RINGTONE_URI},
* {@link System#DEFAULT_NOTIFICATION_URI}, or
* {@link System#DEFAULT_ALARM_ALERT_URI}. If the user chooses the "Silent"
* item, the saved string will be an empty string.
*
* @attr ref android.R.styleable#RingtonePreference_ringtoneType

View File

@@ -22,6 +22,7 @@ import android.database.ContentObserver;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.media.AudioManager;
import android.net.Uri;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.provider.Settings;
@@ -147,10 +148,16 @@ public class VolumePreference extends SeekBarPreference implements
System.getUriFor(System.VOLUME_SETTINGS[mStreamType]),
false, mVolumeObserver);
mRingtone = RingtoneManager.getRingtone(mContext,
mStreamType == AudioManager.STREAM_NOTIFICATION
? Settings.System.DEFAULT_NOTIFICATION_URI
: Settings.System.DEFAULT_RINGTONE_URI);
Uri defaultUri = null;
if (mStreamType == AudioManager.STREAM_RING) {
defaultUri = Settings.System.DEFAULT_RINGTONE_URI;
} else if (mStreamType == AudioManager.STREAM_NOTIFICATION) {
defaultUri = Settings.System.DEFAULT_NOTIFICATION_URI;
} else {
defaultUri = Settings.System.DEFAULT_ALARM_ALERT_URI;
}
mRingtone = RingtoneManager.getRingtone(mContext, defaultUri);
mRingtone.setStreamType(mStreamType);
}

View File

@@ -1181,6 +1181,22 @@ public final class Settings {
*/
public static final Uri DEFAULT_NOTIFICATION_URI = getUriFor(NOTIFICATION_SOUND);
/**
* Persistent store for the system-wide default alarm alert.
*
* @see #RINGTONE
* @see #DEFAULT_ALARM_ALERT_URI
*/
public static final String ALARM_ALERT = "alarm_alert";
/**
* A {@link Uri} that will point to the current default alarm alert at
* any given time.
*
* @see #DEFAULT_ALARM_ALERT_URI
*/
public static final Uri DEFAULT_ALARM_ALERT_URI = getUriFor(ALARM_ALERT);
/**
* Setting to enable Auto Replace (AutoText) in text editors. 1 = On, 0 = Off
*/

View File

@@ -34,9 +34,13 @@ final class JWebCoreJavaBridge extends Handler {
// Instant timer is used to implement a timer that needs to fire almost
// immediately.
private boolean mHasInstantTimer;
// Reference count the pause/resume of timers
private int mPauseTimerRefCount;
private boolean mTimerPaused;
private boolean mHasDeferredTimers;
/**
* Construct a new JWebCoreJavaBridge to interface with
* WebCore timers and cookies.
@@ -50,6 +54,17 @@ final class JWebCoreJavaBridge extends Handler {
nativeFinalize();
}
/**
* Call native timer callbacks.
*/
private void fireSharedTimer() {
PerfChecker checker = new PerfChecker();
// clear the flag so that sharedTimerFired() can set a new timer
mHasInstantTimer = false;
sharedTimerFired();
checker.responseAlert("sharedTimer");
}
/**
* handleMessage
* @param msg The dispatched message.
@@ -60,11 +75,11 @@ final class JWebCoreJavaBridge extends Handler {
public void handleMessage(Message msg) {
switch (msg.what) {
case TIMER_MESSAGE: {
PerfChecker checker = new PerfChecker();
// clear the flag so that sharedTimerFired() can set a new timer
mHasInstantTimer = false;
sharedTimerFired();
checker.responseAlert("sharedTimer");
if (mTimerPaused) {
mHasDeferredTimers = true;
} else {
fireSharedTimer();
}
break;
}
case FUNCPTR_MESSAGE:
@@ -86,7 +101,8 @@ final class JWebCoreJavaBridge extends Handler {
*/
public void pause() {
if (--mPauseTimerRefCount == 0) {
setDeferringTimers(true);
mTimerPaused = true;
mHasDeferredTimers = false;
}
}
@@ -95,7 +111,11 @@ final class JWebCoreJavaBridge extends Handler {
*/
public void resume() {
if (++mPauseTimerRefCount == 1) {
setDeferringTimers(false);
mTimerPaused = false;
if (mHasDeferredTimers) {
mHasDeferredTimers = false;
fireSharedTimer();
}
}
}
@@ -185,11 +205,11 @@ final class JWebCoreJavaBridge extends Handler {
}
removeMessages(TIMER_MESSAGE);
mHasInstantTimer = false;
mHasDeferredTimers = false;
}
private native void nativeConstructor();
private native void nativeFinalize();
private native void sharedTimerFired();
private native void setDeferringTimers(boolean defer);
public native void setNetworkOnLine(boolean online);
}

View File

@@ -527,7 +527,7 @@ final class WebViewCore {
"DELETE_SELECTION", // = 122;
"LISTBOX_CHOICES", // = 123;
"SINGLE_LISTBOX_CHOICE", // = 124;
"125",
"MESSAGE_RELAY", // = 125;
"SET_BACKGROUND_COLOR", // = 126;
"UNBLOCK_FOCUS", // = 127;
"SAVE_DOCUMENT_STATE", // = 128;
@@ -573,6 +573,7 @@ final class WebViewCore {
static final int DELETE_SELECTION = 122;
static final int LISTBOX_CHOICES = 123;
static final int SINGLE_LISTBOX_CHOICE = 124;
static final int MESSAGE_RELAY = 125;
static final int SET_BACKGROUND_COLOR = 126;
static final int UNBLOCK_FOCUS = 127;
static final int SAVE_DOCUMENT_STATE = 128;
@@ -1005,6 +1006,12 @@ final class WebViewCore {
// (See public method WebView.clearView)
nativeClearContent();
break;
case MESSAGE_RELAY:
if (msg.obj instanceof Message) {
((Message) msg.obj).sendToTarget();
}
break;
}
}
};
@@ -1422,9 +1429,14 @@ final class WebViewCore {
return;
}
if (mWebView != null) {
Message.obtain(mWebView.mPrivateHandler,
WebView.SCROLL_BY_MSG_ID, dx, dy,
new Boolean(animate)).sendToTarget();
Message msg = Message.obtain(mWebView.mPrivateHandler,
WebView.SCROLL_BY_MSG_ID, dx, dy, new Boolean(animate));
if (mDrawIsScheduled) {
mEventHub.sendMessage(Message.obtain(null,
EventHub.MESSAGE_RELAY, msg));
} else {
msg.sendToTarget();
}
}
}
@@ -1441,8 +1453,14 @@ final class WebViewCore {
return;
}
if (mWebView != null) {
Message.obtain(mWebView.mPrivateHandler,
WebView.SCROLL_TO_MSG_ID, x, y).sendToTarget();
Message msg = Message.obtain(mWebView.mPrivateHandler,
WebView.SCROLL_TO_MSG_ID, x, y);
if (mDrawIsScheduled) {
mEventHub.sendMessage(Message.obtain(null,
EventHub.MESSAGE_RELAY, msg));
} else {
msg.sendToTarget();
}
}
}
@@ -1459,8 +1477,14 @@ final class WebViewCore {
return;
}
if (mWebView != null) {
Message.obtain(mWebView.mPrivateHandler,
WebView.SPAWN_SCROLL_TO_MSG_ID, x, y).sendToTarget();
Message msg = Message.obtain(mWebView.mPrivateHandler,
WebView.SPAWN_SCROLL_TO_MSG_ID, x, y);
if (mDrawIsScheduled) {
mEventHub.sendMessage(Message.obtain(null,
EventHub.MESSAGE_RELAY, msg));
} else {
msg.sendToTarget();
}
}
}
@@ -1592,11 +1616,6 @@ final class WebViewCore {
mViewportWidth, scaleLimit).sendToTarget();
}
// if no restored offset, move the new page to (0, 0)
Message.obtain(mWebView.mPrivateHandler, WebView.SCROLL_TO_MSG_ID,
mRestoredX, mRestoredY).sendToTarget();
mRestoredX = mRestoredY = 0;
// force an early draw for quick feedback after the first layout
if (mCurrentViewWidth != 0) {
synchronized (this) {
@@ -1604,10 +1623,19 @@ final class WebViewCore {
mEventHub.removeMessages(EventHub.WEBKIT_DRAW);
}
mDrawIsScheduled = true;
// if no restored offset, move the new page to (0, 0)
mEventHub.sendMessageAtFrontOfQueue(Message.obtain(null,
EventHub.MESSAGE_RELAY, Message.obtain(
mWebView.mPrivateHandler,
WebView.SCROLL_TO_MSG_ID, mRestoredX,
mRestoredY)));
mEventHub.sendMessageAtFrontOfQueue(Message.obtain(null,
EventHub.WEBKIT_DRAW));
}
}
// reset restored offset
mRestoredX = mRestoredY = 0;
}
}

View File

@@ -269,4 +269,16 @@ public class EncodedStringValue implements Cloneable {
return new EncodedStringValue(value.mCharacterSet, value.mData);
}
public static EncodedStringValue[] encodeStrings(String[] array) {
int count = array.length;
if (count > 0) {
EncodedStringValue[] encodedArray = new EncodedStringValue[count];
for (int i = 0; i < count; i++) {
encodedArray[i] = new EncodedStringValue(array[i]);
}
return encodedArray;
}
return null;
}
}

View File

@@ -269,10 +269,14 @@ public class MediaScanner
private boolean mDefaultRingtoneSet;
/** Whether the scanner has set a default sound for the notification ringtone. */
private boolean mDefaultNotificationSet;
/** Whether the scanner has set a default sound for the alarm ringtone. */
private boolean mDefaultAlarmSet;
/** The filename for the default sound for the ringer ringtone. */
private String mDefaultRingtoneFilename;
/** The filename for the default sound for the notification ringtone. */
private String mDefaultNotificationFilename;
/** The filename for the default sound for the alarm ringtone. */
private String mDefaultAlarmAlertFilename;
/**
* The prefix for system properties that define the default sound for
* ringtones. Concatenate the name of the setting from Settings
@@ -331,6 +335,8 @@ public class MediaScanner
+ Settings.System.RINGTONE);
mDefaultNotificationFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX
+ Settings.System.NOTIFICATION_SOUND);
mDefaultAlarmAlertFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX
+ Settings.System.ALARM_ALERT);
}
private MyMediaScannerClient mClient = new MyMediaScannerClient();
@@ -709,6 +715,12 @@ public class MediaScanner
setSettingIfNotSet(Settings.System.RINGTONE, tableUri, rowId);
mDefaultRingtoneSet = true;
}
} else if (alarms && !mDefaultAlarmSet) {
if (TextUtils.isEmpty(mDefaultAlarmAlertFilename) ||
doesPathHaveFilename(entry.mPath, mDefaultAlarmAlertFilename)) {
setSettingIfNotSet(Settings.System.ALARM_ALERT, tableUri, rowId);
mDefaultAlarmSet = true;
}
}
return result;

View File

@@ -122,8 +122,9 @@ public class RingtoneManager {
* current ringtone, which will be used to show a checkmark next to the item
* for this {@link Uri}. If showing an item for "Default" (@see
* {@link #EXTRA_RINGTONE_SHOW_DEFAULT}), this can also be one of
* {@link System#DEFAULT_RINGTONE_URI} or
* {@link System#DEFAULT_NOTIFICATION_URI} to have the "Default" item
* {@link System#DEFAULT_RINGTONE_URI},
* {@link System#DEFAULT_NOTIFICATION_URI}, or
* {@link System#DEFAULT_ALARM_ALERT_URI} to have the "Default" item
* checked.
*
* @see #ACTION_RINGTONE_PICKER
@@ -134,8 +135,9 @@ public class RingtoneManager {
/**
* Given to the ringtone picker as a {@link Uri}. The {@link Uri} of the
* ringtone to play when the user attempts to preview the "Default"
* ringtone. This can be one of {@link System#DEFAULT_RINGTONE_URI} or
* {@link System#DEFAULT_NOTIFICATION_URI} to have the "Default" point to
* ringtone. This can be one of {@link System#DEFAULT_RINGTONE_URI},
* {@link System#DEFAULT_NOTIFICATION_URI}, or
* {@link System#DEFAULT_ALARM_ALERT_URI} to have the "Default" point to
* the current sound for the given default sound type. If you are showing a
* ringtone picker for some other type of sound, you are free to provide any
* {@link Uri} here.
@@ -163,8 +165,9 @@ public class RingtoneManager {
* <p>
* It will be one of:
* <li> the picked ringtone,
* <li> a {@link Uri} that equals {@link System#DEFAULT_RINGTONE_URI} or
* {@link System#DEFAULT_NOTIFICATION_URI} if the default was chosen,
* <li> a {@link Uri} that equals {@link System#DEFAULT_RINGTONE_URI},
* {@link System#DEFAULT_NOTIFICATION_URI}, or
* {@link System#DEFAULT_ALARM_ALERT_URI} if the default was chosen,
* <li> null if the "Silent" item was picked.
*
* @see #ACTION_RINGTONE_PICKER
@@ -625,7 +628,8 @@ public class RingtoneManager {
*
* @param context A context used for querying.
* @param type The type whose default sound should be returned. One of
* {@link #TYPE_RINGTONE} or {@link #TYPE_NOTIFICATION}.
* {@link #TYPE_RINGTONE}, {@link #TYPE_NOTIFICATION}, or
* {@link #TYPE_ALARM}.
* @return A {@link Uri} pointing to the default sound for the sound type.
* @see #setActualDefaultRingtoneUri(Context, int, Uri)
*/
@@ -641,7 +645,8 @@ public class RingtoneManager {
*
* @param context A context used for querying.
* @param type The type whose default sound should be set. One of
* {@link #TYPE_RINGTONE} or {@link #TYPE_NOTIFICATION}.
* {@link #TYPE_RINGTONE}, {@link #TYPE_NOTIFICATION}, or
* {@link #TYPE_ALARM}.
* @param ringtoneUri A {@link Uri} pointing to the default sound to set.
* @see #getActualDefaultRingtoneUri(Context, int)
*/
@@ -656,6 +661,8 @@ public class RingtoneManager {
return Settings.System.RINGTONE;
} else if ((type & TYPE_NOTIFICATION) != 0) {
return Settings.System.NOTIFICATION_SOUND;
} else if ((type & TYPE_ALARM) != 0) {
return Settings.System.ALARM_ALERT;
} else {
return null;
}
@@ -675,8 +682,9 @@ public class RingtoneManager {
* Returns the type of a default {@link Uri}.
*
* @param defaultRingtoneUri The default {@link Uri}. For example,
* {@link System#DEFAULT_RINGTONE_URI} or
* {@link System#DEFAULT_NOTIFICATION_URI}.
* {@link System#DEFAULT_RINGTONE_URI},
* {@link System#DEFAULT_NOTIFICATION_URI}, or
* {@link System#DEFAULT_ALARM_ALERT_URI}.
* @return The type of the defaultRingtoneUri, or -1.
*/
public static int getDefaultType(Uri defaultRingtoneUri) {
@@ -686,6 +694,8 @@ public class RingtoneManager {
return TYPE_RINGTONE;
} else if (defaultRingtoneUri.equals(Settings.System.DEFAULT_NOTIFICATION_URI)) {
return TYPE_NOTIFICATION;
} else if (defaultRingtoneUri.equals(Settings.System.DEFAULT_ALARM_ALERT_URI)) {
return TYPE_ALARM;
} else {
return -1;
}
@@ -705,6 +715,8 @@ public class RingtoneManager {
return Settings.System.DEFAULT_RINGTONE_URI;
} else if ((type & TYPE_NOTIFICATION) != 0) {
return Settings.System.DEFAULT_NOTIFICATION_URI;
} else if ((type & TYPE_ALARM) != 0) {
return Settings.System.DEFAULT_ALARM_ALERT_URI;
} else {
return null;
}