Loading core/java/android/app/Profile.java +20 −40 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ public final class Profile implements Parcelable, Comparable { private Map<Integer, ConnectionSettings> connections = new HashMap<Integer, ConnectionSettings>(); private Map<Integer, VibratorSettings> vibrators = new HashMap<Integer, VibratorSettings>(); private SilentModeSettings mSilentMode = new SilentModeSettings(); private int mScreenLockMode = LockMode.DEFAULT; Loading Loading @@ -190,7 +190,7 @@ public final class Profile implements Parcelable, Comparable { streams.values().toArray(new Parcelable[streams.size()]), flags); dest.writeParcelableArray( connections.values().toArray(new Parcelable[connections.size()]), flags); dest.writeParcelableArray(vibrators.values().toArray(new Parcelable[vibrators.size()]), flags); dest.writeParcelable(mSilentMode, flags); dest.writeInt(mScreenLockMode); dest.writeInt(mAirplaneMode); } Loading Loading @@ -222,10 +222,7 @@ public final class Profile implements Parcelable, Comparable { ConnectionSettings connection = (ConnectionSettings) parcel; connections.put(connection.getConnectionId(), connection); } for (Parcelable parcel : in.readParcelableArray(null)) { VibratorSettings vibrator = (VibratorSettings) parcel; vibrators.put(vibrator.getVibratorId(), vibrator); } mSilentMode = (SilentModeSettings) in.readParcelable(null); mScreenLockMode = in.readInt(); mAirplaneMode = in.readInt(); } Loading Loading @@ -293,6 +290,15 @@ public final class Profile implements Parcelable, Comparable { mDirty = true; } public SilentModeSettings getSilentMode() { return mSilentMode; } public void setSilentMode(SilentModeSettings descriptor) { // FIXME mSilentMode = descriptor; mDirty = true; } public int getScreenLockMode() { return mScreenLockMode; } Loading Loading @@ -339,11 +345,6 @@ public final class Profile implements Parcelable, Comparable { return true; } } for (VibratorSettings vibrator : vibrators.values()) { if (vibrator.isDirty()) { return true; } } return false; } Loading Loading @@ -385,6 +386,8 @@ public final class Profile implements Parcelable, Comparable { builder.append(mAirplaneMode); builder.append("</airplane-mode>\n"); mSilentMode.getXmlString(builder, context); for (ProfileGroup pGroup : profileGroups.values()) { pGroup.getXmlString(builder, context); } Loading @@ -394,9 +397,6 @@ public final class Profile implements Parcelable, Comparable { for (ConnectionSettings cs : connections.values()) { cs.getXmlString(builder, context); } for (VibratorSettings vs : vibrators.values()) { vs.getXmlString(builder, context); } builder.append("</profile>\n"); mDirty = false; } Loading Loading @@ -475,6 +475,10 @@ public final class Profile implements Parcelable, Comparable { if (name.equals("profiletype")) { profile.setProfileType(xpp.nextText().equals("toggle") ? TOGGLE_TYPE : CONDITIONAL_TYPE); } if (name.equals("silentModeDescriptor")) { SilentModeSettings smd = SilentModeSettings.fromXml(xpp, context); profile.setSilentMode(smd); } if (name.equals("screen-lock-mode")) { profile.setScreenLockMode(Integer.valueOf(xpp.nextText())); } Loading @@ -493,10 +497,6 @@ public final class Profile implements Parcelable, Comparable { ConnectionSettings cs = ConnectionSettings.fromXml(xpp, context); profile.connections.put(cs.getConnectionId(), cs); } if (name.equals("vibratorDescriptor")) { VibratorSettings vs = VibratorSettings.fromXml(xpp, context); profile.setVibratorSettings(vs); } } event = xpp.next(); } Loading @@ -522,12 +522,8 @@ public final class Profile implements Parcelable, Comparable { cs.processOverride(context); } } // Set vibrators for (VibratorSettings vs : vibrators.values()) { if (vs.isOverride()) { vs.processOverride(context); } } // Set silent mode mSilentMode.processOverride(context); // Set airplane mode doSelectAirplaneMode(context); } Loading Loading @@ -561,22 +557,6 @@ public final class Profile implements Parcelable, Comparable { return streams.values(); } /** @hide */ public VibratorSettings getSettingsForVibrator(int vibratorId) { return vibrators.get(vibratorId); } /** @hide */ public void setVibratorSettings(VibratorSettings descriptor) { vibrators.put(descriptor.getVibratorId(), descriptor); mDirty = true; } /** @hide */ public Collection<VibratorSettings> getVibratorSettings() { return vibrators.values(); } /** @hide */ public ConnectionSettings getSettingsForConnection(int connectionId){ return connections.get(connectionId); Loading core/java/android/app/VibratorSettings.java→core/java/android/app/SilentModeSettings.java +135 −0 Original line number Diff line number Diff line package android.app; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.content.Context; import android.media.AudioManager; import android.os.Parcel; import android.os.Parcelable; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; /** @hide */ public final class VibratorSettings implements Parcelable{ public static final int OFF = 0; public static final int SILENT = 1; public static final int ON = 2; public final class SilentModeSettings implements Parcelable { private static final String SILENT_MODE_OFF = "off"; private static final String SILENT_MODE_VIBRATE = "vibrate"; private static final String SILENT_MODE_MUTE = "mute"; private int mVibratorId; private int mValue; private String mValue; private boolean mOverride; private boolean mDirty; /** @hide */ public static final Parcelable.Creator<VibratorSettings> CREATOR = new Parcelable.Creator<VibratorSettings>() { public VibratorSettings createFromParcel(Parcel in) { return new VibratorSettings(in); public static final Parcelable.Creator<SilentModeSettings> CREATOR = new Parcelable.Creator<SilentModeSettings>() { public SilentModeSettings createFromParcel(Parcel in) { return new SilentModeSettings(in); } @Override public VibratorSettings[] newArray(int size) { return new VibratorSettings[size]; public SilentModeSettings[] newArray(int size) { return new SilentModeSettings[size]; } }; public VibratorSettings(Parcel parcel) { public SilentModeSettings(Parcel parcel) { readFromParcel(parcel); } public VibratorSettings(int vibratorId) { this(vibratorId, 0, false); public SilentModeSettings() { this(SILENT_MODE_OFF, false); } public VibratorSettings(int vibratorId, int value, boolean override) { mVibratorId = vibratorId; public SilentModeSettings(String value, boolean override) { mValue = value; mOverride = override; mDirty = false; } public int getVibratorId() { return mVibratorId; } public int getValue() { public String getValue() { return mValue; } public void setValue(int value) { public void setValue(String value) { mValue = value; mDirty = true; } Loading @@ -78,37 +70,45 @@ public final class VibratorSettings implements Parcelable{ return mDirty; } public void processOverride(Context context) { if (isOverride()) { int ringerMode = AudioManager.RINGER_MODE_NORMAL; if (mValue.equals(SILENT_MODE_MUTE)) { ringerMode = AudioManager.RINGER_MODE_SILENT; } else if (mValue.equals(SILENT_MODE_VIBRATE)) { ringerMode = AudioManager.RINGER_MODE_VIBRATE; } AudioManager amgr = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); amgr.setRingerMode(ringerMode); } } /** @hide */ public static VibratorSettings fromXml(XmlPullParser xpp, Context context) public static SilentModeSettings fromXml(XmlPullParser xpp, Context context) throws XmlPullParserException, IOException { int event = xpp.next(); VibratorSettings vibratorDescriptor = new VibratorSettings(0); while (event != XmlPullParser.END_TAG || !xpp.getName().equals("vibratorDescriptor")) { SilentModeSettings connectionDescriptor = new SilentModeSettings(); while (event != XmlPullParser.END_TAG) { if (event == XmlPullParser.START_TAG) { String name = xpp.getName(); if (name.equals("vibratorId")) { vibratorDescriptor.mVibratorId = Integer.parseInt(xpp.nextText()); } else if (name.equals("value")) { vibratorDescriptor.mValue = Integer.parseInt(xpp.nextText()); if (name.equals("value")) { connectionDescriptor.mValue = xpp.nextText(); } else if (name.equals("override")) { vibratorDescriptor.mOverride = Boolean.parseBoolean(xpp.nextText()); connectionDescriptor.mOverride = Boolean.parseBoolean(xpp.nextText()); } } event = xpp.next(); } return vibratorDescriptor; return connectionDescriptor; } /** @hide */ public void getXmlString(StringBuilder builder, Context context) { builder.append("<vibratorDescriptor>\n<vibratorId>"); builder.append(mVibratorId); builder.append("</vibratorId>\n<value>"); builder.append("<silentModeDescriptor>\n<value>"); builder.append(mValue); builder.append("</value>\n<override>"); builder.append(mOverride); builder.append("</override>\n</vibratorDescriptor>\n"); mDirty = false; builder.append("</override>\n</silentModeDescriptor>\n"); } @Override Loading @@ -119,32 +119,17 @@ public final class VibratorSettings implements Parcelable{ /** @hide */ @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mVibratorId); dest.writeInt(mOverride ? 1 : 0); dest.writeInt(mValue); dest.writeString(mValue); dest.writeInt(mDirty ? 1 : 0); } /** @hide */ public void readFromParcel(Parcel in) { mVibratorId = in.readInt(); mOverride = in.readInt() != 0; mValue = in.readInt(); mValue = in.readString(); mDirty = in.readInt() != 0; } /** @hide */ public void processOverride(Context context) { AudioManager amgr = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); switch (mValue) { case OFF: amgr.setVibrateSetting(mVibratorId, AudioManager.VIBRATE_SETTING_OFF); break; case SILENT: amgr.setVibrateSetting(mVibratorId, AudioManager.VIBRATE_SETTING_ONLY_SILENT); default: amgr.setVibrateSetting(mVibratorId, AudioManager.VIBRATE_SETTING_ON); break; } } } Loading
core/java/android/app/Profile.java +20 −40 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ public final class Profile implements Parcelable, Comparable { private Map<Integer, ConnectionSettings> connections = new HashMap<Integer, ConnectionSettings>(); private Map<Integer, VibratorSettings> vibrators = new HashMap<Integer, VibratorSettings>(); private SilentModeSettings mSilentMode = new SilentModeSettings(); private int mScreenLockMode = LockMode.DEFAULT; Loading Loading @@ -190,7 +190,7 @@ public final class Profile implements Parcelable, Comparable { streams.values().toArray(new Parcelable[streams.size()]), flags); dest.writeParcelableArray( connections.values().toArray(new Parcelable[connections.size()]), flags); dest.writeParcelableArray(vibrators.values().toArray(new Parcelable[vibrators.size()]), flags); dest.writeParcelable(mSilentMode, flags); dest.writeInt(mScreenLockMode); dest.writeInt(mAirplaneMode); } Loading Loading @@ -222,10 +222,7 @@ public final class Profile implements Parcelable, Comparable { ConnectionSettings connection = (ConnectionSettings) parcel; connections.put(connection.getConnectionId(), connection); } for (Parcelable parcel : in.readParcelableArray(null)) { VibratorSettings vibrator = (VibratorSettings) parcel; vibrators.put(vibrator.getVibratorId(), vibrator); } mSilentMode = (SilentModeSettings) in.readParcelable(null); mScreenLockMode = in.readInt(); mAirplaneMode = in.readInt(); } Loading Loading @@ -293,6 +290,15 @@ public final class Profile implements Parcelable, Comparable { mDirty = true; } public SilentModeSettings getSilentMode() { return mSilentMode; } public void setSilentMode(SilentModeSettings descriptor) { // FIXME mSilentMode = descriptor; mDirty = true; } public int getScreenLockMode() { return mScreenLockMode; } Loading Loading @@ -339,11 +345,6 @@ public final class Profile implements Parcelable, Comparable { return true; } } for (VibratorSettings vibrator : vibrators.values()) { if (vibrator.isDirty()) { return true; } } return false; } Loading Loading @@ -385,6 +386,8 @@ public final class Profile implements Parcelable, Comparable { builder.append(mAirplaneMode); builder.append("</airplane-mode>\n"); mSilentMode.getXmlString(builder, context); for (ProfileGroup pGroup : profileGroups.values()) { pGroup.getXmlString(builder, context); } Loading @@ -394,9 +397,6 @@ public final class Profile implements Parcelable, Comparable { for (ConnectionSettings cs : connections.values()) { cs.getXmlString(builder, context); } for (VibratorSettings vs : vibrators.values()) { vs.getXmlString(builder, context); } builder.append("</profile>\n"); mDirty = false; } Loading Loading @@ -475,6 +475,10 @@ public final class Profile implements Parcelable, Comparable { if (name.equals("profiletype")) { profile.setProfileType(xpp.nextText().equals("toggle") ? TOGGLE_TYPE : CONDITIONAL_TYPE); } if (name.equals("silentModeDescriptor")) { SilentModeSettings smd = SilentModeSettings.fromXml(xpp, context); profile.setSilentMode(smd); } if (name.equals("screen-lock-mode")) { profile.setScreenLockMode(Integer.valueOf(xpp.nextText())); } Loading @@ -493,10 +497,6 @@ public final class Profile implements Parcelable, Comparable { ConnectionSettings cs = ConnectionSettings.fromXml(xpp, context); profile.connections.put(cs.getConnectionId(), cs); } if (name.equals("vibratorDescriptor")) { VibratorSettings vs = VibratorSettings.fromXml(xpp, context); profile.setVibratorSettings(vs); } } event = xpp.next(); } Loading @@ -522,12 +522,8 @@ public final class Profile implements Parcelable, Comparable { cs.processOverride(context); } } // Set vibrators for (VibratorSettings vs : vibrators.values()) { if (vs.isOverride()) { vs.processOverride(context); } } // Set silent mode mSilentMode.processOverride(context); // Set airplane mode doSelectAirplaneMode(context); } Loading Loading @@ -561,22 +557,6 @@ public final class Profile implements Parcelable, Comparable { return streams.values(); } /** @hide */ public VibratorSettings getSettingsForVibrator(int vibratorId) { return vibrators.get(vibratorId); } /** @hide */ public void setVibratorSettings(VibratorSettings descriptor) { vibrators.put(descriptor.getVibratorId(), descriptor); mDirty = true; } /** @hide */ public Collection<VibratorSettings> getVibratorSettings() { return vibrators.values(); } /** @hide */ public ConnectionSettings getSettingsForConnection(int connectionId){ return connections.get(connectionId); Loading
core/java/android/app/VibratorSettings.java→core/java/android/app/SilentModeSettings.java +135 −0 Original line number Diff line number Diff line package android.app; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.content.Context; import android.media.AudioManager; import android.os.Parcel; import android.os.Parcelable; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; /** @hide */ public final class VibratorSettings implements Parcelable{ public static final int OFF = 0; public static final int SILENT = 1; public static final int ON = 2; public final class SilentModeSettings implements Parcelable { private static final String SILENT_MODE_OFF = "off"; private static final String SILENT_MODE_VIBRATE = "vibrate"; private static final String SILENT_MODE_MUTE = "mute"; private int mVibratorId; private int mValue; private String mValue; private boolean mOverride; private boolean mDirty; /** @hide */ public static final Parcelable.Creator<VibratorSettings> CREATOR = new Parcelable.Creator<VibratorSettings>() { public VibratorSettings createFromParcel(Parcel in) { return new VibratorSettings(in); public static final Parcelable.Creator<SilentModeSettings> CREATOR = new Parcelable.Creator<SilentModeSettings>() { public SilentModeSettings createFromParcel(Parcel in) { return new SilentModeSettings(in); } @Override public VibratorSettings[] newArray(int size) { return new VibratorSettings[size]; public SilentModeSettings[] newArray(int size) { return new SilentModeSettings[size]; } }; public VibratorSettings(Parcel parcel) { public SilentModeSettings(Parcel parcel) { readFromParcel(parcel); } public VibratorSettings(int vibratorId) { this(vibratorId, 0, false); public SilentModeSettings() { this(SILENT_MODE_OFF, false); } public VibratorSettings(int vibratorId, int value, boolean override) { mVibratorId = vibratorId; public SilentModeSettings(String value, boolean override) { mValue = value; mOverride = override; mDirty = false; } public int getVibratorId() { return mVibratorId; } public int getValue() { public String getValue() { return mValue; } public void setValue(int value) { public void setValue(String value) { mValue = value; mDirty = true; } Loading @@ -78,37 +70,45 @@ public final class VibratorSettings implements Parcelable{ return mDirty; } public void processOverride(Context context) { if (isOverride()) { int ringerMode = AudioManager.RINGER_MODE_NORMAL; if (mValue.equals(SILENT_MODE_MUTE)) { ringerMode = AudioManager.RINGER_MODE_SILENT; } else if (mValue.equals(SILENT_MODE_VIBRATE)) { ringerMode = AudioManager.RINGER_MODE_VIBRATE; } AudioManager amgr = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); amgr.setRingerMode(ringerMode); } } /** @hide */ public static VibratorSettings fromXml(XmlPullParser xpp, Context context) public static SilentModeSettings fromXml(XmlPullParser xpp, Context context) throws XmlPullParserException, IOException { int event = xpp.next(); VibratorSettings vibratorDescriptor = new VibratorSettings(0); while (event != XmlPullParser.END_TAG || !xpp.getName().equals("vibratorDescriptor")) { SilentModeSettings connectionDescriptor = new SilentModeSettings(); while (event != XmlPullParser.END_TAG) { if (event == XmlPullParser.START_TAG) { String name = xpp.getName(); if (name.equals("vibratorId")) { vibratorDescriptor.mVibratorId = Integer.parseInt(xpp.nextText()); } else if (name.equals("value")) { vibratorDescriptor.mValue = Integer.parseInt(xpp.nextText()); if (name.equals("value")) { connectionDescriptor.mValue = xpp.nextText(); } else if (name.equals("override")) { vibratorDescriptor.mOverride = Boolean.parseBoolean(xpp.nextText()); connectionDescriptor.mOverride = Boolean.parseBoolean(xpp.nextText()); } } event = xpp.next(); } return vibratorDescriptor; return connectionDescriptor; } /** @hide */ public void getXmlString(StringBuilder builder, Context context) { builder.append("<vibratorDescriptor>\n<vibratorId>"); builder.append(mVibratorId); builder.append("</vibratorId>\n<value>"); builder.append("<silentModeDescriptor>\n<value>"); builder.append(mValue); builder.append("</value>\n<override>"); builder.append(mOverride); builder.append("</override>\n</vibratorDescriptor>\n"); mDirty = false; builder.append("</override>\n</silentModeDescriptor>\n"); } @Override Loading @@ -119,32 +119,17 @@ public final class VibratorSettings implements Parcelable{ /** @hide */ @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mVibratorId); dest.writeInt(mOverride ? 1 : 0); dest.writeInt(mValue); dest.writeString(mValue); dest.writeInt(mDirty ? 1 : 0); } /** @hide */ public void readFromParcel(Parcel in) { mVibratorId = in.readInt(); mOverride = in.readInt() != 0; mValue = in.readInt(); mValue = in.readString(); mDirty = in.readInt() != 0; } /** @hide */ public void processOverride(Context context) { AudioManager amgr = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); switch (mValue) { case OFF: amgr.setVibrateSetting(mVibratorId, AudioManager.VIBRATE_SETTING_OFF); break; case SILENT: amgr.setVibrateSetting(mVibratorId, AudioManager.VIBRATE_SETTING_ONLY_SILENT); default: amgr.setVibrateSetting(mVibratorId, AudioManager.VIBRATE_SETTING_ON); break; } } }