Merge "Reduce instructions required to obtain and recycle TypedArray" into lmp-dev
diff --git a/Android.mk b/Android.mk
index d0c8070..6a9da2f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -347,14 +347,14 @@
media/java/android/media/tv/ITvInputSessionCallback.aidl \
media/java/android/service/media/IMediaBrowserService.aidl \
media/java/android/service/media/IMediaBrowserServiceCallbacks.aidl \
- telecomm/java/com/android/internal/telecomm/IVideoCallback.aidl \
- telecomm/java/com/android/internal/telecomm/IVideoProvider.aidl \
- telecomm/java/com/android/internal/telecomm/IConnectionService.aidl \
- telecomm/java/com/android/internal/telecomm/IConnectionServiceAdapter.aidl \
- telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl \
- telecomm/java/com/android/internal/telecomm/IInCallService.aidl \
- telecomm/java/com/android/internal/telecomm/ITelecommService.aidl \
- telecomm/java/com/android/internal/telecomm/RemoteServiceCallback.aidl \
+ telecomm/java/com/android/internal/telecom/IVideoCallback.aidl \
+ telecomm/java/com/android/internal/telecom/IVideoProvider.aidl \
+ telecomm/java/com/android/internal/telecom/IConnectionService.aidl \
+ telecomm/java/com/android/internal/telecom/IConnectionServiceAdapter.aidl \
+ telecomm/java/com/android/internal/telecom/IInCallAdapter.aidl \
+ telecomm/java/com/android/internal/telecom/IInCallService.aidl \
+ telecomm/java/com/android/internal/telecom/ITelecomService.aidl \
+ telecomm/java/com/android/internal/telecom/RemoteServiceCallback.aidl \
telephony/java/com/android/ims/internal/IImsCallSession.aidl \
telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl \
telephony/java/com/android/ims/internal/IImsConfig.aidl \
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 547ec6c..28c2172 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -209,7 +209,7 @@
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/ims-common_intermediates)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework2_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/telecomm/java/com/android/internal/telecomm)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/telecomm/java/com/android/internal/telecom)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework.* $(PRODUCT_OUT)/system/framework2.*)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates)
@@ -223,6 +223,7 @@
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/services_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/bin/inputflinger $(PRODUCT_OUT)/symbols/system/bin/inputflinger)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/RsFountainFbo_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/telecomm/java/com/android/internal/telecomm)
# ******************************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ABOVE THIS BANNER
diff --git a/api/current.txt b/api/current.txt
index e9da398..293dca6 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -225,34 +225,6 @@
ctor public R.array();
field public static final int emailAddressTypes = 17235968; // 0x1070000
field public static final int imProtocols = 17235969; // 0x1070001
- field public static final int l_resource_pad1 = 17236000; // 0x1070020
- field public static final int l_resource_pad10 = 17235991; // 0x1070017
- field public static final int l_resource_pad11 = 17235990; // 0x1070016
- field public static final int l_resource_pad12 = 17235989; // 0x1070015
- field public static final int l_resource_pad13 = 17235988; // 0x1070014
- field public static final int l_resource_pad14 = 17235987; // 0x1070013
- field public static final int l_resource_pad15 = 17235986; // 0x1070012
- field public static final int l_resource_pad16 = 17235985; // 0x1070011
- field public static final int l_resource_pad17 = 17235984; // 0x1070010
- field public static final int l_resource_pad18 = 17235983; // 0x107000f
- field public static final int l_resource_pad19 = 17235982; // 0x107000e
- field public static final int l_resource_pad2 = 17235999; // 0x107001f
- field public static final int l_resource_pad20 = 17235981; // 0x107000d
- field public static final int l_resource_pad21 = 17235980; // 0x107000c
- field public static final int l_resource_pad22 = 17235979; // 0x107000b
- field public static final int l_resource_pad23 = 17235978; // 0x107000a
- field public static final int l_resource_pad24 = 17235977; // 0x1070009
- field public static final int l_resource_pad25 = 17235976; // 0x1070008
- field public static final int l_resource_pad26 = 17235975; // 0x1070007
- field public static final int l_resource_pad27 = 17235974; // 0x1070006
- field public static final int l_resource_pad28 = 17235973; // 0x1070005
- field public static final int l_resource_pad3 = 17235998; // 0x107001e
- field public static final int l_resource_pad4 = 17235997; // 0x107001d
- field public static final int l_resource_pad5 = 17235996; // 0x107001c
- field public static final int l_resource_pad6 = 17235995; // 0x107001b
- field public static final int l_resource_pad7 = 17235994; // 0x107001a
- field public static final int l_resource_pad8 = 17235993; // 0x1070019
- field public static final int l_resource_pad9 = 17235992; // 0x1070018
field public static final int organizationTypes = 17235970; // 0x1070002
field public static final int phoneTypes = 17235971; // 0x1070003
field public static final int postalAddressTypes = 17235972; // 0x1070004
@@ -260,7 +232,6 @@
public static final class R.attr {
ctor public R.attr();
- field public static final int __removed2 = 16843937; // 0x10104a1
field public static final int absListViewStyle = 16842858; // 0x101006a
field public static final int accessibilityEventTypes = 16843648; // 0x1010380
field public static final int accessibilityFeedbackType = 16843650; // 0x1010382
@@ -325,9 +296,9 @@
field public static final int alphabeticShortcut = 16843235; // 0x10101e3
field public static final int alwaysDrawnWithCache = 16842991; // 0x10100ef
field public static final int alwaysRetainTaskState = 16843267; // 0x1010203
- field public static final int amPmBackgroundColor = 16843942; // 0x10104a6
- field public static final int amPmTextColor = 16843941; // 0x10104a5
- field public static final int ambientShadowAlpha = 16843967; // 0x10104bf
+ field public static final int amPmBackgroundColor = 16843941; // 0x10104a5
+ field public static final int amPmTextColor = 16843940; // 0x10104a4
+ field public static final int ambientShadowAlpha = 16843966; // 0x10104be
field public static final int angle = 16843168; // 0x10101a0
field public static final int animateFirstView = 16843477; // 0x10102d5
field public static final int animateLayoutChanges = 16843506; // 0x10102f2
@@ -406,8 +377,8 @@
field public static final int centerY = 16843171; // 0x10101a3
field public static final int checkBoxPreferenceStyle = 16842895; // 0x101008f
field public static final int checkMark = 16843016; // 0x1010108
- field public static final int checkMarkTint = 16843944; // 0x10104a8
- field public static final int checkMarkTintMode = 16843945; // 0x10104a9
+ field public static final int checkMarkTint = 16843943; // 0x10104a7
+ field public static final int checkMarkTintMode = 16843944; // 0x10104a8
field public static final int checkable = 16843237; // 0x10101e5
field public static final int checkableBehavior = 16843232; // 0x10101e0
field public static final int checkboxStyle = 16842860; // 0x101006c
@@ -459,18 +430,18 @@
field public static final int configure = 16843357; // 0x101025d
field public static final int constantSize = 16843158; // 0x1010196
field public static final int content = 16843355; // 0x101025b
- field public static final int contentAgeHint = 16843962; // 0x10104ba
+ field public static final int contentAgeHint = 16843961; // 0x10104b9
field public static final int contentAuthority = 16843408; // 0x1010290
field public static final int contentDescription = 16843379; // 0x1010273
field public static final int contentInsetEnd = 16843860; // 0x1010454
field public static final int contentInsetLeft = 16843861; // 0x1010455
field public static final int contentInsetRight = 16843862; // 0x1010456
field public static final int contentInsetStart = 16843859; // 0x1010453
- field public static final int controlX1 = 16843798; // 0x1010416
- field public static final int controlX2 = 16843800; // 0x1010418
- field public static final int controlY1 = 16843799; // 0x1010417
- field public static final int controlY2 = 16843801; // 0x1010419
- field public static final int country = 16843963; // 0x10104bb
+ field public static final int controlX1 = 16843772; // 0x10103fc
+ field public static final int controlX2 = 16843774; // 0x10103fe
+ field public static final int controlY1 = 16843773; // 0x10103fd
+ field public static final int controlY2 = 16843775; // 0x10103ff
+ field public static final int country = 16843962; // 0x10104ba
field public static final int cropToPadding = 16843043; // 0x1010123
field public static final int cursorVisible = 16843090; // 0x1010152
field public static final int customNavigationLayout = 16843474; // 0x10102d2
@@ -479,8 +450,8 @@
field public static final int dashGap = 16843175; // 0x10101a7
field public static final int dashWidth = 16843174; // 0x10101a6
field public static final int data = 16842798; // 0x101002e
- field public static final int datePickerDialogTheme = 16843949; // 0x10104ad
- field public static final int datePickerMode = 16843956; // 0x10104b4
+ field public static final int datePickerDialogTheme = 16843948; // 0x10104ac
+ field public static final int datePickerMode = 16843955; // 0x10104b3
field public static final int datePickerStyle = 16843612; // 0x101035c
field public static final int dateTextAppearance = 16843593; // 0x1010349
field public static final int dayOfWeekBackground = 16843924; // 0x1010494
@@ -583,14 +554,14 @@
field public static final int fastScrollOverlayPosition = 16843578; // 0x101033a
field public static final int fastScrollPreviewBackgroundLeft = 16843575; // 0x1010337
field public static final int fastScrollPreviewBackgroundRight = 16843576; // 0x1010338
- field public static final int fastScrollStyle = 16843793; // 0x1010411
+ field public static final int fastScrollStyle = 16843767; // 0x10103f7
field public static final int fastScrollTextColor = 16843609; // 0x1010359
field public static final int fastScrollThumbDrawable = 16843574; // 0x1010336
field public static final int fastScrollTrackDrawable = 16843577; // 0x1010339
field public static final int fillAfter = 16843197; // 0x10101bd
- field public static final int fillAlpha = 16843981; // 0x10104cd
+ field public static final int fillAlpha = 16843980; // 0x10104cc
field public static final int fillBefore = 16843196; // 0x10101bc
- field public static final int fillColor = 16843806; // 0x101041e
+ field public static final int fillColor = 16843780; // 0x1010404
field public static final int fillEnabled = 16843343; // 0x101024f
field public static final int fillViewport = 16843130; // 0x101017a
field public static final int filter = 16843035; // 0x101011b
@@ -604,7 +575,7 @@
field public static final int focusableInTouchMode = 16842971; // 0x10100db
field public static final int focusedMonthDateColor = 16843587; // 0x1010343
field public static final int fontFamily = 16843692; // 0x10103ac
- field public static final int fontFeatureSettings = 16843960; // 0x10104b8
+ field public static final int fontFeatureSettings = 16843959; // 0x10104b7
field public static final int footerDividersEnabled = 16843311; // 0x101022f
field public static final int foreground = 16843017; // 0x1010109
field public static final int foregroundGravity = 16843264; // 0x1010200
@@ -614,20 +585,20 @@
field public static final int format12Hour = 16843722; // 0x10103ca
field public static final int format24Hour = 16843723; // 0x10103cb
field public static final int fragment = 16843491; // 0x10102e3
- field public static final int fragmentAllowEnterTransitionOverlap = 16843977; // 0x10104c9
- field public static final int fragmentAllowReturnTransitionOverlap = 16843978; // 0x10104ca
+ field public static final int fragmentAllowEnterTransitionOverlap = 16843976; // 0x10104c8
+ field public static final int fragmentAllowReturnTransitionOverlap = 16843977; // 0x10104c9
field public static final int fragmentCloseEnterAnimation = 16843495; // 0x10102e7
field public static final int fragmentCloseExitAnimation = 16843496; // 0x10102e8
- field public static final int fragmentEnterTransition = 16843972; // 0x10104c4
- field public static final int fragmentExitTransition = 16843971; // 0x10104c3
+ field public static final int fragmentEnterTransition = 16843971; // 0x10104c3
+ field public static final int fragmentExitTransition = 16843970; // 0x10104c2
field public static final int fragmentFadeEnterAnimation = 16843497; // 0x10102e9
field public static final int fragmentFadeExitAnimation = 16843498; // 0x10102ea
field public static final int fragmentOpenEnterAnimation = 16843493; // 0x10102e5
field public static final int fragmentOpenExitAnimation = 16843494; // 0x10102e6
- field public static final int fragmentReenterTransition = 16843976; // 0x10104c8
- field public static final int fragmentReturnTransition = 16843974; // 0x10104c6
- field public static final int fragmentSharedElementEnterTransition = 16843973; // 0x10104c5
- field public static final int fragmentSharedElementReturnTransition = 16843975; // 0x10104c7
+ field public static final int fragmentReenterTransition = 16843975; // 0x10104c7
+ field public static final int fragmentReturnTransition = 16843973; // 0x10104c5
+ field public static final int fragmentSharedElementEnterTransition = 16843972; // 0x10104c4
+ field public static final int fragmentSharedElementReturnTransition = 16843974; // 0x10104c6
field public static final int freezesText = 16843116; // 0x101016c
field public static final int fromAlpha = 16843210; // 0x10101ca
field public static final int fromDegrees = 16843187; // 0x10101b3
@@ -721,7 +692,7 @@
field public static final int innerRadiusRatio = 16843163; // 0x101019b
field public static final deprecated int inputMethod = 16843112; // 0x1010168
field public static final int inputType = 16843296; // 0x1010220
- field public static final int inset = 16843958; // 0x10104b6
+ field public static final int inset = 16843957; // 0x10104b5
field public static final int insetBottom = 16843194; // 0x10101ba
field public static final int insetLeft = 16843191; // 0x10101b7
field public static final int insetRight = 16843192; // 0x10101b8
@@ -762,32 +733,6 @@
field public static final int keyboardMode = 16843341; // 0x101024d
field public static final int keycode = 16842949; // 0x10100c5
field public static final int killAfterRestore = 16843420; // 0x101029c
- field public static final int l_resource_pad1 = 16843792; // 0x1010410
- field public static final int l_resource_pad10 = 16843783; // 0x1010407
- field public static final int l_resource_pad11 = 16843782; // 0x1010406
- field public static final int l_resource_pad12 = 16843781; // 0x1010405
- field public static final int l_resource_pad13 = 16843780; // 0x1010404
- field public static final int l_resource_pad14 = 16843779; // 0x1010403
- field public static final int l_resource_pad15 = 16843778; // 0x1010402
- field public static final int l_resource_pad16 = 16843777; // 0x1010401
- field public static final int l_resource_pad17 = 16843776; // 0x1010400
- field public static final int l_resource_pad18 = 16843775; // 0x10103ff
- field public static final int l_resource_pad19 = 16843774; // 0x10103fe
- field public static final int l_resource_pad2 = 16843791; // 0x101040f
- field public static final int l_resource_pad20 = 16843773; // 0x10103fd
- field public static final int l_resource_pad21 = 16843772; // 0x10103fc
- field public static final int l_resource_pad22 = 16843771; // 0x10103fb
- field public static final int l_resource_pad23 = 16843770; // 0x10103fa
- field public static final int l_resource_pad24 = 16843769; // 0x10103f9
- field public static final int l_resource_pad25 = 16843768; // 0x10103f8
- field public static final int l_resource_pad26 = 16843767; // 0x10103f7
- field public static final int l_resource_pad3 = 16843790; // 0x101040e
- field public static final int l_resource_pad4 = 16843789; // 0x101040d
- field public static final int l_resource_pad5 = 16843788; // 0x101040c
- field public static final int l_resource_pad6 = 16843787; // 0x101040b
- field public static final int l_resource_pad7 = 16843786; // 0x101040a
- field public static final int l_resource_pad8 = 16843785; // 0x1010409
- field public static final int l_resource_pad9 = 16843784; // 0x1010408
field public static final int label = 16842753; // 0x1010001
field public static final int labelFor = 16843718; // 0x10103c6
field public static final int labelTextSize = 16843317; // 0x1010235
@@ -847,7 +792,7 @@
field public static final int layout_x = 16843135; // 0x101017f
field public static final int layout_y = 16843136; // 0x1010180
field public static final int left = 16843181; // 0x10101ad
- field public static final int letterSpacing = 16843959; // 0x10104b7
+ field public static final int letterSpacing = 16843958; // 0x10104b6
field public static final int lineSpacingExtra = 16843287; // 0x1010217
field public static final int lineSpacingMultiplier = 16843288; // 0x1010218
field public static final int lines = 16843092; // 0x1010154
@@ -914,8 +859,8 @@
field public static final int multiprocess = 16842771; // 0x1010013
field public static final int name = 16842755; // 0x1010003
field public static final int navigationBarColor = 16843858; // 0x1010452
- field public static final int navigationContentDescription = 16843970; // 0x10104c2
- field public static final int navigationIcon = 16843969; // 0x10104c1
+ field public static final int navigationContentDescription = 16843969; // 0x10104c1
+ field public static final int navigationIcon = 16843968; // 0x10104c0
field public static final int navigationMode = 16843471; // 0x10102cf
field public static final int negativeButtonText = 16843254; // 0x10101f6
field public static final int nestedScrollingEnabled = 16843830; // 0x1010436
@@ -929,9 +874,9 @@
field public static final int notificationTimeout = 16843651; // 0x1010383
field public static final int numColumns = 16843032; // 0x1010118
field public static final int numStars = 16843076; // 0x1010144
- field public static final int numbersBackgroundColor = 16843939; // 0x10104a3
- field public static final int numbersSelectorColor = 16843940; // 0x10104a4
- field public static final int numbersTextColor = 16843938; // 0x10104a2
+ field public static final int numbersBackgroundColor = 16843938; // 0x10104a2
+ field public static final int numbersSelectorColor = 16843939; // 0x10104a3
+ field public static final int numbersTextColor = 16843937; // 0x10104a1
field public static final deprecated int numeric = 16843109; // 0x1010165
field public static final int numericShortcut = 16843236; // 0x10101e4
field public static final int onClick = 16843375; // 0x101026f
@@ -943,7 +888,7 @@
field public static final int orderingFromXml = 16843239; // 0x10101e7
field public static final int orientation = 16842948; // 0x10100c4
field public static final int outAnimation = 16843128; // 0x1010178
- field public static final int outlineProvider = 16843961; // 0x10104b9
+ field public static final int outlineProvider = 16843960; // 0x10104b8
field public static final int overScrollFooter = 16843459; // 0x10102c3
field public static final int overScrollHeader = 16843458; // 0x10102c2
field public static final int overScrollMode = 16843457; // 0x10102c1
@@ -966,10 +911,10 @@
field public static final int parentActivityName = 16843687; // 0x10103a7
field public static final deprecated int password = 16843100; // 0x101015c
field public static final int path = 16842794; // 0x101002a
- field public static final int pathData = 16843807; // 0x101041f
+ field public static final int pathData = 16843781; // 0x1010405
field public static final int pathPattern = 16842796; // 0x101002c
field public static final int pathPrefix = 16842795; // 0x101002b
- field public static final int patternPathData = 16843979; // 0x10104cb
+ field public static final int patternPathData = 16843978; // 0x10104ca
field public static final int permission = 16842758; // 0x1010006
field public static final int permissionFlags = 16843719; // 0x10103c7
field public static final int permissionGroup = 16842762; // 0x101000a
@@ -987,7 +932,7 @@
field public static final int popupKeyboard = 16843331; // 0x1010243
field public static final int popupLayout = 16843323; // 0x101023b
field public static final int popupMenuStyle = 16843520; // 0x1010300
- field public static final int popupTheme = 16843946; // 0x10104aa
+ field public static final int popupTheme = 16843945; // 0x10104a9
field public static final int popupWindowStyle = 16842870; // 0x1010076
field public static final int port = 16842793; // 0x1010029
field public static final int positiveButtonText = 16843253; // 0x10101f5
@@ -1041,8 +986,8 @@
field public static final int readPermission = 16842759; // 0x1010007
field public static final int recognitionService = 16843932; // 0x101049c
field public static final int relinquishTaskIdentity = 16843894; // 0x1010476
- field public static final int reparent = 16843965; // 0x10104bd
- field public static final int reparentWithOverlay = 16843966; // 0x10104be
+ field public static final int reparent = 16843964; // 0x10104bc
+ field public static final int reparentWithOverlay = 16843965; // 0x10104bd
field public static final int repeatCount = 16843199; // 0x10101bf
field public static final int repeatMode = 16843200; // 0x10101c0
field public static final int reqFiveWayNav = 16843314; // 0x1010232
@@ -1063,7 +1008,7 @@
field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d
field public static final int restrictedAccountType = 16843733; // 0x10103d5
field public static final int restrictionType = 16843923; // 0x1010493
- field public static final int resumeWhilePausing = 16843955; // 0x10104b3
+ field public static final int resumeWhilePausing = 16843954; // 0x10104b2
field public static final int reversible = 16843851; // 0x101044b
field public static final int right = 16843183; // 0x10101af
field public static final int ringtonePreferenceStyle = 16842899; // 0x1010093
@@ -1142,7 +1087,7 @@
field public static final int showDividers = 16843561; // 0x1010329
field public static final int showOnLockScreen = 16843721; // 0x10103c9
field public static final int showSilent = 16843259; // 0x10101fb
- field public static final int showText = 16843950; // 0x10104ae
+ field public static final int showText = 16843949; // 0x10104ad
field public static final int showWeekNumber = 16843582; // 0x101033e
field public static final int shownWeekCount = 16843585; // 0x1010341
field public static final int shrinkColumns = 16843082; // 0x101014a
@@ -1161,7 +1106,7 @@
field public static final int spinnersShown = 16843595; // 0x101034b
field public static final int splitMotionEvents = 16843503; // 0x10102ef
field public static final int splitTrack = 16843852; // 0x101044c
- field public static final int spotShadowAlpha = 16843968; // 0x10104c0
+ field public static final int spotShadowAlpha = 16843967; // 0x10104bf
field public static final int src = 16843033; // 0x1010119
field public static final int ssp = 16843747; // 0x10103e3
field public static final int sspPattern = 16843749; // 0x10103e5
@@ -1204,12 +1149,12 @@
field public static final int streamType = 16843273; // 0x1010209
field public static final int stretchColumns = 16843081; // 0x1010149
field public static final int stretchMode = 16843030; // 0x1010116
- field public static final int strokeAlpha = 16843980; // 0x10104cc
- field public static final int strokeColor = 16843808; // 0x1010420
- field public static final int strokeLineCap = 16843813; // 0x1010425
- field public static final int strokeLineJoin = 16843814; // 0x1010426
- field public static final int strokeMiterLimit = 16843815; // 0x1010427
- field public static final int strokeWidth = 16843809; // 0x1010421
+ field public static final int strokeAlpha = 16843979; // 0x10104cb
+ field public static final int strokeColor = 16843782; // 0x1010406
+ field public static final int strokeLineCap = 16843787; // 0x101040b
+ field public static final int strokeLineJoin = 16843788; // 0x101040c
+ field public static final int strokeMiterLimit = 16843789; // 0x101040d
+ field public static final int strokeWidth = 16843783; // 0x1010407
field public static final int submitBackground = 16843912; // 0x1010488
field public static final int subtitle = 16843473; // 0x10102d1
field public static final int subtitleTextAppearance = 16843823; // 0x101042f
@@ -1332,11 +1277,11 @@
field public static final int tileModeX = 16843895; // 0x1010477
field public static final int tileModeY = 16843896; // 0x1010478
field public static final int timePickerDialogTheme = 16843934; // 0x101049e
- field public static final int timePickerMode = 16843957; // 0x10104b5
+ field public static final int timePickerMode = 16843956; // 0x10104b4
field public static final int timePickerStyle = 16843933; // 0x101049d
field public static final int timeZone = 16843724; // 0x10103cc
field public static final int tint = 16843041; // 0x1010121
- field public static final int tintMode = 16843797; // 0x1010415
+ field public static final int tintMode = 16843771; // 0x10103fb
field public static final int title = 16843233; // 0x10101e1
field public static final int titleCondensed = 16843234; // 0x10101e2
field public static final int titleTextAppearance = 16843822; // 0x101042e
@@ -1349,7 +1294,7 @@
field public static final int toXScale = 16843203; // 0x10101c3
field public static final int toYDelta = 16843209; // 0x10101c9
field public static final int toYScale = 16843205; // 0x10101c5
- field public static final int toolbarStyle = 16843947; // 0x10104ab
+ field public static final int toolbarStyle = 16843946; // 0x10104aa
field public static final int top = 16843182; // 0x10101ae
field public static final int topBright = 16842955; // 0x10100cb
field public static final int topDark = 16842951; // 0x10100c7
@@ -1362,18 +1307,18 @@
field public static final int transformPivotX = 16843552; // 0x1010320
field public static final int transformPivotY = 16843553; // 0x1010321
field public static final int transition = 16843743; // 0x10103df
- field public static final int transitionGroup = 16843803; // 0x101041b
- field public static final int transitionName = 16843802; // 0x101041a
+ field public static final int transitionGroup = 16843777; // 0x1010401
+ field public static final int transitionName = 16843776; // 0x1010400
field public static final int transitionOrdering = 16843744; // 0x10103e0
field public static final int transitionVisibilityMode = 16843900; // 0x101047c
field public static final int translateX = 16843866; // 0x101045a
field public static final int translateY = 16843867; // 0x101045b
field public static final int translationX = 16843554; // 0x1010322
field public static final int translationY = 16843555; // 0x1010323
- field public static final int translationZ = 16843796; // 0x1010414
- field public static final int trimPathEnd = 16843811; // 0x1010423
- field public static final int trimPathOffset = 16843812; // 0x1010424
- field public static final int trimPathStart = 16843810; // 0x1010422
+ field public static final int translationZ = 16843770; // 0x10103fa
+ field public static final int trimPathEnd = 16843785; // 0x1010409
+ field public static final int trimPathOffset = 16843786; // 0x101040a
+ field public static final int trimPathStart = 16843784; // 0x1010408
field public static final int type = 16843169; // 0x10101a1
field public static final int typeface = 16842902; // 0x1010096
field public static final int uiOptions = 16843672; // 0x1010398
@@ -1398,8 +1343,8 @@
field public static final int verticalGap = 16843328; // 0x1010240
field public static final int verticalScrollbarPosition = 16843572; // 0x1010334
field public static final int verticalSpacing = 16843029; // 0x1010115
- field public static final int viewportHeight = 16843805; // 0x101041d
- field public static final int viewportWidth = 16843804; // 0x101041c
+ field public static final int viewportHeight = 16843779; // 0x1010403
+ field public static final int viewportWidth = 16843778; // 0x1010402
field public static final int visibility = 16842972; // 0x10100dc
field public static final int visible = 16843156; // 0x1010194
field public static final int vmSafeMode = 16843448; // 0x10102b8
@@ -1429,16 +1374,16 @@
field public static final int windowActionBar = 16843469; // 0x10102cd
field public static final int windowActionBarOverlay = 16843492; // 0x10102e4
field public static final int windowActionModeOverlay = 16843485; // 0x10102dd
- field public static final int windowActivityTransitions = 16843982; // 0x10104ce
+ field public static final int windowActivityTransitions = 16843981; // 0x10104cd
field public static final int windowAllowEnterTransitionOverlap = 16843836; // 0x101043c
field public static final int windowAllowReturnTransitionOverlap = 16843835; // 0x101043b
field public static final int windowAnimationStyle = 16842926; // 0x10100ae
field public static final int windowBackground = 16842836; // 0x1010054
- field public static final int windowClipToOutline = 16843948; // 0x10104ac
+ field public static final int windowClipToOutline = 16843947; // 0x10104ab
field public static final int windowCloseOnTouchOutside = 16843611; // 0x101035b
field public static final int windowContentOverlay = 16842841; // 0x1010059
- field public static final int windowContentTransitionManager = 16843795; // 0x1010413
- field public static final int windowContentTransitions = 16843794; // 0x1010412
+ field public static final int windowContentTransitionManager = 16843769; // 0x10103f9
+ field public static final int windowContentTransitions = 16843768; // 0x10103f8
field public static final int windowDisablePreview = 16843298; // 0x1010222
field public static final int windowDrawsSystemBarBackgrounds = 16843856; // 0x1010450
field public static final int windowElevation = 16843920; // 0x1010490
@@ -1457,13 +1402,13 @@
field public static final int windowNoDisplay = 16843294; // 0x101021e
field public static final int windowNoTitle = 16842838; // 0x1010056
field public static final int windowOverscan = 16843727; // 0x10103cf
- field public static final int windowReenterTransition = 16843952; // 0x10104b0
- field public static final int windowReturnTransition = 16843951; // 0x10104af
+ field public static final int windowReenterTransition = 16843951; // 0x10104af
+ field public static final int windowReturnTransition = 16843950; // 0x10104ae
field public static final int windowSharedElementEnterTransition = 16843833; // 0x1010439
field public static final int windowSharedElementExitTransition = 16843834; // 0x101043a
- field public static final int windowSharedElementReenterTransition = 16843954; // 0x10104b2
- field public static final int windowSharedElementReturnTransition = 16843953; // 0x10104b1
- field public static final int windowSharedElementsUseOverlay = 16843964; // 0x10104bc
+ field public static final int windowSharedElementReenterTransition = 16843953; // 0x10104b1
+ field public static final int windowSharedElementReturnTransition = 16843952; // 0x10104b0
+ field public static final int windowSharedElementsUseOverlay = 16843963; // 0x10104bb
field public static final int windowShowAnimation = 16842934; // 0x10100b6
field public static final int windowShowWallpaper = 16843410; // 0x1010292
field public static final int windowSoftInputMode = 16843307; // 0x101022b
@@ -1525,16 +1470,6 @@
field public static final int app_icon_size = 17104896; // 0x1050000
field public static final int dialog_min_width_major = 17104899; // 0x1050003
field public static final int dialog_min_width_minor = 17104900; // 0x1050004
- field public static final int l_resource_pad1 = 17104912; // 0x1050010
- field public static final int l_resource_pad10 = 17104903; // 0x1050007
- field public static final int l_resource_pad2 = 17104911; // 0x105000f
- field public static final int l_resource_pad3 = 17104910; // 0x105000e
- field public static final int l_resource_pad4 = 17104909; // 0x105000d
- field public static final int l_resource_pad5 = 17104908; // 0x105000c
- field public static final int l_resource_pad6 = 17104907; // 0x105000b
- field public static final int l_resource_pad7 = 17104906; // 0x105000a
- field public static final int l_resource_pad8 = 17104905; // 0x1050009
- field public static final int l_resource_pad9 = 17104904; // 0x1050008
field public static final int notification_large_icon_height = 17104902; // 0x1050006
field public static final int notification_large_icon_width = 17104901; // 0x1050005
field public static final int thumbnail_height = 17104897; // 0x1050001
@@ -1750,29 +1685,10 @@
field public static final int inputArea = 16908318; // 0x102001e
field public static final int inputExtractEditText = 16908325; // 0x1020025
field public static final int keyboardView = 16908326; // 0x1020026
- field public static final int l_resource_pad1 = 16908352; // 0x1020040
- field public static final int l_resource_pad10 = 16908343; // 0x1020037
- field public static final int l_resource_pad11 = 16908342; // 0x1020036
- field public static final int l_resource_pad12 = 16908341; // 0x1020035
- field public static final int l_resource_pad13 = 16908340; // 0x1020034
- field public static final int l_resource_pad14 = 16908339; // 0x1020033
- field public static final int l_resource_pad15 = 16908338; // 0x1020032
- field public static final int l_resource_pad16 = 16908337; // 0x1020031
- field public static final int l_resource_pad17 = 16908336; // 0x1020030
- field public static final int l_resource_pad18 = 16908335; // 0x102002f
- field public static final int l_resource_pad19 = 16908334; // 0x102002e
- field public static final int l_resource_pad2 = 16908351; // 0x102003f
- field public static final int l_resource_pad3 = 16908350; // 0x102003e
- field public static final int l_resource_pad4 = 16908349; // 0x102003d
- field public static final int l_resource_pad5 = 16908348; // 0x102003c
- field public static final int l_resource_pad6 = 16908347; // 0x102003b
- field public static final int l_resource_pad7 = 16908346; // 0x102003a
- field public static final int l_resource_pad8 = 16908345; // 0x1020039
- field public static final int l_resource_pad9 = 16908344; // 0x1020038
field public static final int list = 16908298; // 0x102000a
- field public static final int mask = 16908353; // 0x1020041
+ field public static final int mask = 16908334; // 0x102002e
field public static final int message = 16908299; // 0x102000b
- field public static final int navigationBarBackground = 16908355; // 0x1020043
+ field public static final int navigationBarBackground = 16908336; // 0x1020030
field public static final int paste = 16908322; // 0x1020022
field public static final int primary = 16908300; // 0x102000c
field public static final int progress = 16908301; // 0x102000d
@@ -1781,7 +1697,7 @@
field public static final int selectTextMode = 16908333; // 0x102002d
field public static final int selectedIcon = 16908302; // 0x102000e
field public static final int startSelectingText = 16908328; // 0x1020028
- field public static final int statusBarBackground = 16908354; // 0x1020042
+ field public static final int statusBarBackground = 16908335; // 0x102002f
field public static final int stopSelectingText = 16908329; // 0x1020029
field public static final int summary = 16908304; // 0x1020010
field public static final int switchInputMethod = 16908324; // 0x1020024
@@ -1816,14 +1732,10 @@
field public static final int decelerate_cubic = 17563651; // 0x10c0003
field public static final int decelerate_quad = 17563649; // 0x10c0001
field public static final int decelerate_quint = 17563653; // 0x10c0005
- field public static final int fast_out_linear_in = 17563667; // 0x10c0013
- field public static final int fast_out_slow_in = 17563665; // 0x10c0011
- field public static final int l_resource_pad1 = 17563664; // 0x10c0010
- field public static final int l_resource_pad2 = 17563663; // 0x10c000f
- field public static final int l_resource_pad3 = 17563662; // 0x10c000e
- field public static final int l_resource_pad4 = 17563661; // 0x10c000d
+ field public static final int fast_out_linear_in = 17563663; // 0x10c000f
+ field public static final int fast_out_slow_in = 17563661; // 0x10c000d
field public static final int linear = 17563659; // 0x10c000b
- field public static final int linear_out_slow_in = 17563666; // 0x10c0012
+ field public static final int linear_out_slow_in = 17563662; // 0x10c000e
field public static final int overshoot = 17563656; // 0x10c0008
}
@@ -1888,31 +1800,6 @@
field public static final int emptyPhoneNumber = 17039366; // 0x1040006
field public static final int httpErrorBadUrl = 17039367; // 0x1040007
field public static final int httpErrorUnsupportedScheme = 17039368; // 0x1040008
- field public static final int l_resource_pad1 = 17039408; // 0x1040030
- field public static final int l_resource_pad10 = 17039399; // 0x1040027
- field public static final int l_resource_pad11 = 17039398; // 0x1040026
- field public static final int l_resource_pad12 = 17039397; // 0x1040025
- field public static final int l_resource_pad13 = 17039396; // 0x1040024
- field public static final int l_resource_pad14 = 17039395; // 0x1040023
- field public static final int l_resource_pad15 = 17039394; // 0x1040022
- field public static final int l_resource_pad16 = 17039393; // 0x1040021
- field public static final int l_resource_pad17 = 17039392; // 0x1040020
- field public static final int l_resource_pad18 = 17039391; // 0x104001f
- field public static final int l_resource_pad19 = 17039390; // 0x104001e
- field public static final int l_resource_pad2 = 17039407; // 0x104002f
- field public static final int l_resource_pad20 = 17039389; // 0x104001d
- field public static final int l_resource_pad21 = 17039388; // 0x104001c
- field public static final int l_resource_pad22 = 17039387; // 0x104001b
- field public static final int l_resource_pad23 = 17039386; // 0x104001a
- field public static final int l_resource_pad24 = 17039385; // 0x1040019
- field public static final int l_resource_pad25 = 17039384; // 0x1040018
- field public static final int l_resource_pad3 = 17039406; // 0x104002e
- field public static final int l_resource_pad4 = 17039405; // 0x104002d
- field public static final int l_resource_pad5 = 17039404; // 0x104002c
- field public static final int l_resource_pad6 = 17039403; // 0x104002b
- field public static final int l_resource_pad7 = 17039402; // 0x104002a
- field public static final int l_resource_pad8 = 17039401; // 0x1040029
- field public static final int l_resource_pad9 = 17039400; // 0x1040028
field public static final int no = 17039369; // 0x1040009
field public static final int ok = 17039370; // 0x104000a
field public static final int paste = 17039371; // 0x104000b
@@ -2025,60 +1912,60 @@
field public static final int TextAppearance_Inverse = 16973887; // 0x103003f
field public static final int TextAppearance_Large = 16973890; // 0x1030042
field public static final int TextAppearance_Large_Inverse = 16973891; // 0x1030043
- field public static final int TextAppearance_Material = 16974350; // 0x103020e
- field public static final int TextAppearance_Material_Body1 = 16974552; // 0x10302d8
- field public static final int TextAppearance_Material_Body2 = 16974551; // 0x10302d7
- field public static final int TextAppearance_Material_Button = 16974555; // 0x10302db
- field public static final int TextAppearance_Material_Caption = 16974553; // 0x10302d9
- field public static final int TextAppearance_Material_DialogWindowTitle = 16974351; // 0x103020f
- field public static final int TextAppearance_Material_Display1 = 16974547; // 0x10302d3
- field public static final int TextAppearance_Material_Display2 = 16974546; // 0x10302d2
- field public static final int TextAppearance_Material_Display3 = 16974545; // 0x10302d1
- field public static final int TextAppearance_Material_Display4 = 16974544; // 0x10302d0
- field public static final int TextAppearance_Material_Headline = 16974548; // 0x10302d4
- field public static final int TextAppearance_Material_Inverse = 16974352; // 0x1030210
- field public static final int TextAppearance_Material_Large = 16974353; // 0x1030211
- field public static final int TextAppearance_Material_Large_Inverse = 16974354; // 0x1030212
- field public static final int TextAppearance_Material_Medium = 16974355; // 0x1030213
- field public static final int TextAppearance_Material_Medium_Inverse = 16974356; // 0x1030214
- field public static final int TextAppearance_Material_Menu = 16974554; // 0x10302da
- field public static final int TextAppearance_Material_Notification = 16974560; // 0x10302e0
- field public static final int TextAppearance_Material_Notification_Emphasis = 16974565; // 0x10302e5
- field public static final int TextAppearance_Material_Notification_Info = 16974563; // 0x10302e3
- field public static final int TextAppearance_Material_Notification_Line2 = 16974562; // 0x10302e2
- field public static final int TextAppearance_Material_Notification_Time = 16974564; // 0x10302e4
- field public static final int TextAppearance_Material_Notification_Title = 16974561; // 0x10302e1
- field public static final int TextAppearance_Material_SearchResult_Subtitle = 16974357; // 0x1030215
- field public static final int TextAppearance_Material_SearchResult_Title = 16974358; // 0x1030216
- field public static final int TextAppearance_Material_Small = 16974359; // 0x1030217
- field public static final int TextAppearance_Material_Small_Inverse = 16974360; // 0x1030218
- field public static final int TextAppearance_Material_Subhead = 16974550; // 0x10302d6
- field public static final int TextAppearance_Material_Title = 16974549; // 0x10302d5
- field public static final int TextAppearance_Material_Widget = 16974362; // 0x103021a
- field public static final int TextAppearance_Material_Widget_ActionBar_Menu = 16974363; // 0x103021b
- field public static final int TextAppearance_Material_Widget_ActionBar_Subtitle = 16974364; // 0x103021c
- field public static final int TextAppearance_Material_Widget_ActionBar_Subtitle_Inverse = 16974365; // 0x103021d
- field public static final int TextAppearance_Material_Widget_ActionBar_Title = 16974366; // 0x103021e
- field public static final int TextAppearance_Material_Widget_ActionBar_Title_Inverse = 16974367; // 0x103021f
- field public static final int TextAppearance_Material_Widget_ActionMode_Subtitle = 16974368; // 0x1030220
- field public static final int TextAppearance_Material_Widget_ActionMode_Subtitle_Inverse = 16974369; // 0x1030221
- field public static final int TextAppearance_Material_Widget_ActionMode_Title = 16974370; // 0x1030222
- field public static final int TextAppearance_Material_Widget_ActionMode_Title_Inverse = 16974371; // 0x1030223
- field public static final int TextAppearance_Material_Widget_Button = 16974372; // 0x1030224
- field public static final int TextAppearance_Material_Widget_DropDownHint = 16974373; // 0x1030225
- field public static final int TextAppearance_Material_Widget_DropDownItem = 16974374; // 0x1030226
- field public static final int TextAppearance_Material_Widget_EditText = 16974375; // 0x1030227
- field public static final int TextAppearance_Material_Widget_IconMenu_Item = 16974376; // 0x1030228
- field public static final int TextAppearance_Material_Widget_PopupMenu = 16974377; // 0x1030229
- field public static final int TextAppearance_Material_Widget_PopupMenu_Large = 16974378; // 0x103022a
- field public static final int TextAppearance_Material_Widget_PopupMenu_Small = 16974379; // 0x103022b
- field public static final int TextAppearance_Material_Widget_TabWidget = 16974380; // 0x103022c
- field public static final int TextAppearance_Material_Widget_TextView = 16974381; // 0x103022d
- field public static final int TextAppearance_Material_Widget_TextView_PopupMenu = 16974382; // 0x103022e
- field public static final int TextAppearance_Material_Widget_TextView_SpinnerItem = 16974383; // 0x103022f
- field public static final int TextAppearance_Material_Widget_Toolbar_Subtitle = 16974569; // 0x10302e9
- field public static final int TextAppearance_Material_Widget_Toolbar_Title = 16974568; // 0x10302e8
- field public static final int TextAppearance_Material_WindowTitle = 16974361; // 0x1030219
+ field public static final int TextAppearance_Material = 16974317; // 0x10301ed
+ field public static final int TextAppearance_Material_Body1 = 16974320; // 0x10301f0
+ field public static final int TextAppearance_Material_Body2 = 16974319; // 0x10301ef
+ field public static final int TextAppearance_Material_Button = 16974318; // 0x10301ee
+ field public static final int TextAppearance_Material_Caption = 16974321; // 0x10301f1
+ field public static final int TextAppearance_Material_DialogWindowTitle = 16974322; // 0x10301f2
+ field public static final int TextAppearance_Material_Display1 = 16974326; // 0x10301f6
+ field public static final int TextAppearance_Material_Display2 = 16974325; // 0x10301f5
+ field public static final int TextAppearance_Material_Display3 = 16974324; // 0x10301f4
+ field public static final int TextAppearance_Material_Display4 = 16974323; // 0x10301f3
+ field public static final int TextAppearance_Material_Headline = 16974327; // 0x10301f7
+ field public static final int TextAppearance_Material_Inverse = 16974328; // 0x10301f8
+ field public static final int TextAppearance_Material_Large = 16974329; // 0x10301f9
+ field public static final int TextAppearance_Material_Large_Inverse = 16974330; // 0x10301fa
+ field public static final int TextAppearance_Material_Medium = 16974331; // 0x10301fb
+ field public static final int TextAppearance_Material_Medium_Inverse = 16974332; // 0x10301fc
+ field public static final int TextAppearance_Material_Menu = 16974333; // 0x10301fd
+ field public static final int TextAppearance_Material_Notification = 16974334; // 0x10301fe
+ field public static final int TextAppearance_Material_Notification_Emphasis = 16974335; // 0x10301ff
+ field public static final int TextAppearance_Material_Notification_Info = 16974336; // 0x1030200
+ field public static final int TextAppearance_Material_Notification_Line2 = 16974337; // 0x1030201
+ field public static final int TextAppearance_Material_Notification_Time = 16974338; // 0x1030202
+ field public static final int TextAppearance_Material_Notification_Title = 16974339; // 0x1030203
+ field public static final int TextAppearance_Material_SearchResult_Subtitle = 16974340; // 0x1030204
+ field public static final int TextAppearance_Material_SearchResult_Title = 16974341; // 0x1030205
+ field public static final int TextAppearance_Material_Small = 16974342; // 0x1030206
+ field public static final int TextAppearance_Material_Small_Inverse = 16974343; // 0x1030207
+ field public static final int TextAppearance_Material_Subhead = 16974344; // 0x1030208
+ field public static final int TextAppearance_Material_Title = 16974345; // 0x1030209
+ field public static final int TextAppearance_Material_Widget = 16974347; // 0x103020b
+ field public static final int TextAppearance_Material_Widget_ActionBar_Menu = 16974348; // 0x103020c
+ field public static final int TextAppearance_Material_Widget_ActionBar_Subtitle = 16974349; // 0x103020d
+ field public static final int TextAppearance_Material_Widget_ActionBar_Subtitle_Inverse = 16974350; // 0x103020e
+ field public static final int TextAppearance_Material_Widget_ActionBar_Title = 16974351; // 0x103020f
+ field public static final int TextAppearance_Material_Widget_ActionBar_Title_Inverse = 16974352; // 0x1030210
+ field public static final int TextAppearance_Material_Widget_ActionMode_Subtitle = 16974353; // 0x1030211
+ field public static final int TextAppearance_Material_Widget_ActionMode_Subtitle_Inverse = 16974354; // 0x1030212
+ field public static final int TextAppearance_Material_Widget_ActionMode_Title = 16974355; // 0x1030213
+ field public static final int TextAppearance_Material_Widget_ActionMode_Title_Inverse = 16974356; // 0x1030214
+ field public static final int TextAppearance_Material_Widget_Button = 16974357; // 0x1030215
+ field public static final int TextAppearance_Material_Widget_DropDownHint = 16974358; // 0x1030216
+ field public static final int TextAppearance_Material_Widget_DropDownItem = 16974359; // 0x1030217
+ field public static final int TextAppearance_Material_Widget_EditText = 16974360; // 0x1030218
+ field public static final int TextAppearance_Material_Widget_IconMenu_Item = 16974361; // 0x1030219
+ field public static final int TextAppearance_Material_Widget_PopupMenu = 16974362; // 0x103021a
+ field public static final int TextAppearance_Material_Widget_PopupMenu_Large = 16974363; // 0x103021b
+ field public static final int TextAppearance_Material_Widget_PopupMenu_Small = 16974364; // 0x103021c
+ field public static final int TextAppearance_Material_Widget_TabWidget = 16974365; // 0x103021d
+ field public static final int TextAppearance_Material_Widget_TextView = 16974366; // 0x103021e
+ field public static final int TextAppearance_Material_Widget_TextView_PopupMenu = 16974367; // 0x103021f
+ field public static final int TextAppearance_Material_Widget_TextView_SpinnerItem = 16974368; // 0x1030220
+ field public static final int TextAppearance_Material_Widget_Toolbar_Subtitle = 16974369; // 0x1030221
+ field public static final int TextAppearance_Material_Widget_Toolbar_Title = 16974370; // 0x1030222
+ field public static final int TextAppearance_Material_WindowTitle = 16974346; // 0x103020a
field public static final int TextAppearance_Medium = 16973892; // 0x1030044
field public static final int TextAppearance_Medium_Inverse = 16973893; // 0x1030045
field public static final int TextAppearance_Small = 16973894; // 0x1030046
@@ -2104,12 +1991,12 @@
field public static final int TextAppearance_Widget_TextView_SpinnerItem = 16973906; // 0x1030052
field public static final int TextAppearance_WindowTitle = 16973907; // 0x1030053
field public static final int Theme = 16973829; // 0x1030005
- field public static final int ThemeOverlay = 16974416; // 0x1030250
- field public static final int ThemeOverlay_Material = 16974417; // 0x1030251
- field public static final int ThemeOverlay_Material_ActionBar = 16974418; // 0x1030252
- field public static final int ThemeOverlay_Material_Dark = 16974420; // 0x1030254
- field public static final int ThemeOverlay_Material_Dark_ActionBar = 16974421; // 0x1030255
- field public static final int ThemeOverlay_Material_Light = 16974419; // 0x1030253
+ field public static final int ThemeOverlay = 16974407; // 0x1030247
+ field public static final int ThemeOverlay_Material = 16974408; // 0x1030248
+ field public static final int ThemeOverlay_Material_ActionBar = 16974409; // 0x1030249
+ field public static final int ThemeOverlay_Material_Dark = 16974411; // 0x103024b
+ field public static final int ThemeOverlay_Material_Dark_ActionBar = 16974412; // 0x103024c
+ field public static final int ThemeOverlay_Material_Light = 16974410; // 0x103024a
field public static final int Theme_Black = 16973832; // 0x1030008
field public static final int Theme_Black_NoTitleBar = 16973833; // 0x1030009
field public static final int Theme_Black_NoTitleBar_Fullscreen = 16973834; // 0x103000a
@@ -2139,7 +2026,7 @@
field public static final int Theme_DeviceDefault_NoActionBar_Overscan = 16974303; // 0x10301df
field public static final int Theme_DeviceDefault_NoActionBar_TranslucentDecor = 16974307; // 0x10301e3
field public static final int Theme_DeviceDefault_Panel = 16974138; // 0x103013a
- field public static final int Theme_DeviceDefault_Settings = 16974384; // 0x1030230
+ field public static final int Theme_DeviceDefault_Settings = 16974371; // 0x1030223
field public static final int Theme_DeviceDefault_Wallpaper = 16974140; // 0x103013c
field public static final int Theme_DeviceDefault_Wallpaper_NoTitleBar = 16974141; // 0x103013d
field public static final int Theme_Dialog = 16973835; // 0x103000b
@@ -2177,41 +2064,41 @@
field public static final int Theme_Light_NoTitleBar_Fullscreen = 16973838; // 0x103000e
field public static final int Theme_Light_Panel = 16973914; // 0x103005a
field public static final int Theme_Light_WallpaperSettings = 16973922; // 0x1030062
- field public static final int Theme_Material = 16974385; // 0x1030231
- field public static final int Theme_Material_Dialog = 16974386; // 0x1030232
- field public static final int Theme_Material_DialogWhenLarge = 16974390; // 0x1030236
- field public static final int Theme_Material_DialogWhenLarge_NoActionBar = 16974391; // 0x1030237
- field public static final int Theme_Material_Dialog_Alert = 16974570; // 0x10302ea
- field public static final int Theme_Material_Dialog_MinWidth = 16974387; // 0x1030233
- field public static final int Theme_Material_Dialog_NoActionBar = 16974388; // 0x1030234
- field public static final int Theme_Material_Dialog_NoActionBar_MinWidth = 16974389; // 0x1030235
- field public static final int Theme_Material_Dialog_Presentation = 16974571; // 0x10302eb
- field public static final int Theme_Material_InputMethod = 16974392; // 0x1030238
- field public static final int Theme_Material_Light = 16974402; // 0x1030242
- field public static final int Theme_Material_Light_DarkActionBar = 16974403; // 0x1030243
- field public static final int Theme_Material_Light_Dialog = 16974404; // 0x1030244
- field public static final int Theme_Material_Light_DialogWhenLarge = 16974408; // 0x1030248
- field public static final int Theme_Material_Light_DialogWhenLarge_NoActionBar = 16974409; // 0x1030249
- field public static final int Theme_Material_Light_Dialog_Alert = 16974572; // 0x10302ec
- field public static final int Theme_Material_Light_Dialog_MinWidth = 16974405; // 0x1030245
- field public static final int Theme_Material_Light_Dialog_NoActionBar = 16974406; // 0x1030246
- field public static final int Theme_Material_Light_Dialog_NoActionBar_MinWidth = 16974407; // 0x1030247
- field public static final int Theme_Material_Light_Dialog_Presentation = 16974573; // 0x10302ed
- field public static final int Theme_Material_Light_NoActionBar = 16974410; // 0x103024a
- field public static final int Theme_Material_Light_NoActionBar_Fullscreen = 16974411; // 0x103024b
- field public static final int Theme_Material_Light_NoActionBar_Overscan = 16974412; // 0x103024c
- field public static final int Theme_Material_Light_NoActionBar_TranslucentDecor = 16974413; // 0x103024d
- field public static final int Theme_Material_Light_Panel = 16974414; // 0x103024e
- field public static final int Theme_Material_Light_Voice = 16974415; // 0x103024f
- field public static final int Theme_Material_NoActionBar = 16974393; // 0x1030239
- field public static final int Theme_Material_NoActionBar_Fullscreen = 16974394; // 0x103023a
- field public static final int Theme_Material_NoActionBar_Overscan = 16974395; // 0x103023b
- field public static final int Theme_Material_NoActionBar_TranslucentDecor = 16974396; // 0x103023c
- field public static final int Theme_Material_Panel = 16974397; // 0x103023d
- field public static final int Theme_Material_Settings = 16974398; // 0x103023e
- field public static final int Theme_Material_Voice = 16974399; // 0x103023f
- field public static final int Theme_Material_Wallpaper = 16974400; // 0x1030240
- field public static final int Theme_Material_Wallpaper_NoTitleBar = 16974401; // 0x1030241
+ field public static final int Theme_Material = 16974372; // 0x1030224
+ field public static final int Theme_Material_Dialog = 16974373; // 0x1030225
+ field public static final int Theme_Material_DialogWhenLarge = 16974379; // 0x103022b
+ field public static final int Theme_Material_DialogWhenLarge_NoActionBar = 16974380; // 0x103022c
+ field public static final int Theme_Material_Dialog_Alert = 16974374; // 0x1030226
+ field public static final int Theme_Material_Dialog_MinWidth = 16974375; // 0x1030227
+ field public static final int Theme_Material_Dialog_NoActionBar = 16974376; // 0x1030228
+ field public static final int Theme_Material_Dialog_NoActionBar_MinWidth = 16974377; // 0x1030229
+ field public static final int Theme_Material_Dialog_Presentation = 16974378; // 0x103022a
+ field public static final int Theme_Material_InputMethod = 16974381; // 0x103022d
+ field public static final int Theme_Material_Light = 16974391; // 0x1030237
+ field public static final int Theme_Material_Light_DarkActionBar = 16974392; // 0x1030238
+ field public static final int Theme_Material_Light_Dialog = 16974393; // 0x1030239
+ field public static final int Theme_Material_Light_DialogWhenLarge = 16974399; // 0x103023f
+ field public static final int Theme_Material_Light_DialogWhenLarge_NoActionBar = 16974400; // 0x1030240
+ field public static final int Theme_Material_Light_Dialog_Alert = 16974394; // 0x103023a
+ field public static final int Theme_Material_Light_Dialog_MinWidth = 16974395; // 0x103023b
+ field public static final int Theme_Material_Light_Dialog_NoActionBar = 16974396; // 0x103023c
+ field public static final int Theme_Material_Light_Dialog_NoActionBar_MinWidth = 16974397; // 0x103023d
+ field public static final int Theme_Material_Light_Dialog_Presentation = 16974398; // 0x103023e
+ field public static final int Theme_Material_Light_NoActionBar = 16974401; // 0x1030241
+ field public static final int Theme_Material_Light_NoActionBar_Fullscreen = 16974402; // 0x1030242
+ field public static final int Theme_Material_Light_NoActionBar_Overscan = 16974403; // 0x1030243
+ field public static final int Theme_Material_Light_NoActionBar_TranslucentDecor = 16974404; // 0x1030244
+ field public static final int Theme_Material_Light_Panel = 16974405; // 0x1030245
+ field public static final int Theme_Material_Light_Voice = 16974406; // 0x1030246
+ field public static final int Theme_Material_NoActionBar = 16974382; // 0x103022e
+ field public static final int Theme_Material_NoActionBar_Fullscreen = 16974383; // 0x103022f
+ field public static final int Theme_Material_NoActionBar_Overscan = 16974384; // 0x1030230
+ field public static final int Theme_Material_NoActionBar_TranslucentDecor = 16974385; // 0x1030231
+ field public static final int Theme_Material_Panel = 16974386; // 0x1030232
+ field public static final int Theme_Material_Settings = 16974387; // 0x1030233
+ field public static final int Theme_Material_Voice = 16974388; // 0x1030234
+ field public static final int Theme_Material_Wallpaper = 16974389; // 0x1030235
+ field public static final int Theme_Material_Wallpaper_NoTitleBar = 16974390; // 0x1030236
field public static final int Theme_NoDisplay = 16973909; // 0x1030055
field public static final int Theme_NoTitleBar = 16973830; // 0x1030006
field public static final int Theme_NoTitleBar_Fullscreen = 16973831; // 0x1030007
@@ -2273,7 +2160,7 @@
field public static final int Widget_DeviceDefault_DropDownItem_Spinner = 16974178; // 0x1030162
field public static final int Widget_DeviceDefault_EditText = 16974154; // 0x103014a
field public static final int Widget_DeviceDefault_ExpandableListView = 16974155; // 0x103014b
- field public static final int Widget_DeviceDefault_FastScroll = 16974346; // 0x103020a
+ field public static final int Widget_DeviceDefault_FastScroll = 16974313; // 0x10301e9
field public static final int Widget_DeviceDefault_GridView = 16974156; // 0x103014c
field public static final int Widget_DeviceDefault_HorizontalScrollView = 16974171; // 0x103015b
field public static final int Widget_DeviceDefault_ImageButton = 16974157; // 0x103014d
@@ -2307,7 +2194,7 @@
field public static final int Widget_DeviceDefault_Light_DropDownItem_Spinner = 16974233; // 0x1030199
field public static final int Widget_DeviceDefault_Light_EditText = 16974206; // 0x103017e
field public static final int Widget_DeviceDefault_Light_ExpandableListView = 16974207; // 0x103017f
- field public static final int Widget_DeviceDefault_Light_FastScroll = 16974348; // 0x103020c
+ field public static final int Widget_DeviceDefault_Light_FastScroll = 16974315; // 0x10301eb
field public static final int Widget_DeviceDefault_Light_GridView = 16974208; // 0x1030180
field public static final int Widget_DeviceDefault_Light_HorizontalScrollView = 16974226; // 0x1030192
field public static final int Widget_DeviceDefault_Light_ImageButton = 16974209; // 0x1030181
@@ -2331,7 +2218,7 @@
field public static final int Widget_DeviceDefault_Light_ScrollView = 16974225; // 0x1030191
field public static final int Widget_DeviceDefault_Light_SeekBar = 16974220; // 0x103018c
field public static final int Widget_DeviceDefault_Light_Spinner = 16974227; // 0x1030193
- field public static final int Widget_DeviceDefault_Light_StackView = 16974349; // 0x103020d
+ field public static final int Widget_DeviceDefault_Light_StackView = 16974316; // 0x10301ec
field public static final int Widget_DeviceDefault_Light_Tab = 16974237; // 0x103019d
field public static final int Widget_DeviceDefault_Light_TabWidget = 16974229; // 0x1030195
field public static final int Widget_DeviceDefault_Light_TextView = 16974202; // 0x103017a
@@ -2355,7 +2242,7 @@
field public static final int Widget_DeviceDefault_ScrollView = 16974170; // 0x103015a
field public static final int Widget_DeviceDefault_SeekBar = 16974165; // 0x1030155
field public static final int Widget_DeviceDefault_Spinner = 16974172; // 0x103015c
- field public static final int Widget_DeviceDefault_StackView = 16974347; // 0x103020b
+ field public static final int Widget_DeviceDefault_StackView = 16974314; // 0x10301ea
field public static final int Widget_DeviceDefault_Tab = 16974189; // 0x103016d
field public static final int Widget_DeviceDefault_TabWidget = 16974174; // 0x103015e
field public static final int Widget_DeviceDefault_TextView = 16974150; // 0x1030146
@@ -2366,7 +2253,7 @@
field public static final int Widget_DropDownItem_Spinner = 16973868; // 0x103002c
field public static final int Widget_EditText = 16973859; // 0x1030023
field public static final int Widget_ExpandableListView = 16973860; // 0x1030024
- field public static final int Widget_FastScroll = 16974337; // 0x1030201
+ field public static final int Widget_FastScroll = 16974309; // 0x10301e5
field public static final int Widget_FragmentBreadCrumbs = 16973961; // 0x1030089
field public static final int Widget_Gallery = 16973877; // 0x1030035
field public static final int Widget_GridView = 16973874; // 0x1030032
@@ -2491,137 +2378,137 @@
field public static final int Widget_ListView_DropDown = 16973872; // 0x1030030
field public static final int Widget_ListView_Menu = 16973873; // 0x1030031
field public static final int Widget_ListView_White = 16973871; // 0x103002f
- field public static final int Widget_Material = 16974422; // 0x1030256
- field public static final int Widget_Material_ActionBar = 16974423; // 0x1030257
- field public static final int Widget_Material_ActionBar_Solid = 16974424; // 0x1030258
- field public static final int Widget_Material_ActionBar_TabBar = 16974425; // 0x1030259
- field public static final int Widget_Material_ActionBar_TabText = 16974426; // 0x103025a
- field public static final int Widget_Material_ActionBar_TabView = 16974427; // 0x103025b
- field public static final int Widget_Material_ActionButton = 16974428; // 0x103025c
- field public static final int Widget_Material_ActionButton_CloseMode = 16974429; // 0x103025d
- field public static final int Widget_Material_ActionButton_Overflow = 16974430; // 0x103025e
- field public static final int Widget_Material_ActionMode = 16974431; // 0x103025f
- field public static final int Widget_Material_AutoCompleteTextView = 16974432; // 0x1030260
- field public static final int Widget_Material_Button = 16974433; // 0x1030261
- field public static final int Widget_Material_ButtonBar = 16974439; // 0x1030267
- field public static final int Widget_Material_ButtonBar_AlertDialog = 16974440; // 0x1030268
- field public static final int Widget_Material_Button_Borderless = 16974434; // 0x1030262
- field public static final int Widget_Material_Button_Borderless_Colored = 16974556; // 0x10302dc
- field public static final int Widget_Material_Button_Borderless_Small = 16974435; // 0x1030263
- field public static final int Widget_Material_Button_Inset = 16974436; // 0x1030264
- field public static final int Widget_Material_Button_Small = 16974437; // 0x1030265
- field public static final int Widget_Material_Button_Toggle = 16974438; // 0x1030266
- field public static final int Widget_Material_CalendarView = 16974441; // 0x1030269
- field public static final int Widget_Material_CheckedTextView = 16974442; // 0x103026a
- field public static final int Widget_Material_CompoundButton_CheckBox = 16974443; // 0x103026b
- field public static final int Widget_Material_CompoundButton_RadioButton = 16974444; // 0x103026c
- field public static final int Widget_Material_CompoundButton_Star = 16974445; // 0x103026d
- field public static final int Widget_Material_DatePicker = 16974446; // 0x103026e
- field public static final int Widget_Material_DropDownItem = 16974447; // 0x103026f
- field public static final int Widget_Material_DropDownItem_Spinner = 16974448; // 0x1030270
- field public static final int Widget_Material_EditText = 16974449; // 0x1030271
- field public static final int Widget_Material_ExpandableListView = 16974450; // 0x1030272
- field public static final int Widget_Material_FastScroll = 16974451; // 0x1030273
- field public static final int Widget_Material_GridView = 16974452; // 0x1030274
- field public static final int Widget_Material_HorizontalScrollView = 16974453; // 0x1030275
- field public static final int Widget_Material_ImageButton = 16974454; // 0x1030276
- field public static final int Widget_Material_Light = 16974483; // 0x1030293
- field public static final int Widget_Material_Light_ActionBar = 16974484; // 0x1030294
- field public static final int Widget_Material_Light_ActionBar_Solid = 16974485; // 0x1030295
- field public static final int Widget_Material_Light_ActionBar_TabBar = 16974486; // 0x1030296
- field public static final int Widget_Material_Light_ActionBar_TabText = 16974487; // 0x1030297
- field public static final int Widget_Material_Light_ActionBar_TabView = 16974488; // 0x1030298
- field public static final int Widget_Material_Light_ActionButton = 16974489; // 0x1030299
- field public static final int Widget_Material_Light_ActionButton_CloseMode = 16974490; // 0x103029a
- field public static final int Widget_Material_Light_ActionButton_Overflow = 16974491; // 0x103029b
- field public static final int Widget_Material_Light_ActionMode = 16974492; // 0x103029c
- field public static final int Widget_Material_Light_AutoCompleteTextView = 16974493; // 0x103029d
- field public static final int Widget_Material_Light_Button = 16974494; // 0x103029e
- field public static final int Widget_Material_Light_ButtonBar = 16974500; // 0x10302a4
- field public static final int Widget_Material_Light_ButtonBar_AlertDialog = 16974501; // 0x10302a5
- field public static final int Widget_Material_Light_Button_Borderless = 16974495; // 0x103029f
- field public static final int Widget_Material_Light_Button_Borderless_Colored = 16974557; // 0x10302dd
- field public static final int Widget_Material_Light_Button_Borderless_Small = 16974496; // 0x10302a0
- field public static final int Widget_Material_Light_Button_Inset = 16974497; // 0x10302a1
- field public static final int Widget_Material_Light_Button_Small = 16974498; // 0x10302a2
- field public static final int Widget_Material_Light_Button_Toggle = 16974499; // 0x10302a3
- field public static final int Widget_Material_Light_CalendarView = 16974502; // 0x10302a6
- field public static final int Widget_Material_Light_CheckedTextView = 16974503; // 0x10302a7
- field public static final int Widget_Material_Light_CompoundButton_CheckBox = 16974504; // 0x10302a8
- field public static final int Widget_Material_Light_CompoundButton_RadioButton = 16974505; // 0x10302a9
- field public static final int Widget_Material_Light_CompoundButton_Star = 16974506; // 0x10302aa
- field public static final int Widget_Material_Light_DatePicker = 16974578; // 0x10302f2
- field public static final int Widget_Material_Light_DropDownItem = 16974507; // 0x10302ab
- field public static final int Widget_Material_Light_DropDownItem_Spinner = 16974508; // 0x10302ac
- field public static final int Widget_Material_Light_EditText = 16974509; // 0x10302ad
- field public static final int Widget_Material_Light_ExpandableListView = 16974510; // 0x10302ae
- field public static final int Widget_Material_Light_FastScroll = 16974511; // 0x10302af
- field public static final int Widget_Material_Light_GridView = 16974512; // 0x10302b0
- field public static final int Widget_Material_Light_HorizontalScrollView = 16974513; // 0x10302b1
- field public static final int Widget_Material_Light_ImageButton = 16974514; // 0x10302b2
- field public static final int Widget_Material_Light_ListPopupWindow = 16974515; // 0x10302b3
- field public static final int Widget_Material_Light_ListView = 16974516; // 0x10302b4
- field public static final int Widget_Material_Light_ListView_DropDown = 16974517; // 0x10302b5
- field public static final int Widget_Material_Light_MediaRouteButton = 16974518; // 0x10302b6
- field public static final int Widget_Material_Light_PopupMenu = 16974519; // 0x10302b7
- field public static final int Widget_Material_Light_PopupMenu_Overflow = 16974520; // 0x10302b8
- field public static final int Widget_Material_Light_PopupWindow = 16974521; // 0x10302b9
- field public static final int Widget_Material_Light_ProgressBar = 16974522; // 0x10302ba
- field public static final int Widget_Material_Light_ProgressBar_Horizontal = 16974523; // 0x10302bb
- field public static final int Widget_Material_Light_ProgressBar_Inverse = 16974524; // 0x10302bc
- field public static final int Widget_Material_Light_ProgressBar_Large = 16974525; // 0x10302bd
- field public static final int Widget_Material_Light_ProgressBar_Large_Inverse = 16974526; // 0x10302be
- field public static final int Widget_Material_Light_ProgressBar_Small = 16974527; // 0x10302bf
- field public static final int Widget_Material_Light_ProgressBar_Small_Inverse = 16974528; // 0x10302c0
- field public static final int Widget_Material_Light_ProgressBar_Small_Title = 16974529; // 0x10302c1
- field public static final int Widget_Material_Light_RatingBar = 16974530; // 0x10302c2
- field public static final int Widget_Material_Light_RatingBar_Indicator = 16974531; // 0x10302c3
- field public static final int Widget_Material_Light_RatingBar_Small = 16974532; // 0x10302c4
- field public static final int Widget_Material_Light_ScrollView = 16974533; // 0x10302c5
- field public static final int Widget_Material_Light_SearchView = 16974575; // 0x10302ef
- field public static final int Widget_Material_Light_SeekBar = 16974534; // 0x10302c6
- field public static final int Widget_Material_Light_SegmentedButton = 16974535; // 0x10302c7
- field public static final int Widget_Material_Light_Spinner = 16974537; // 0x10302c9
- field public static final int Widget_Material_Light_Spinner_Underlined = 16974567; // 0x10302e7
- field public static final int Widget_Material_Light_StackView = 16974536; // 0x10302c8
- field public static final int Widget_Material_Light_Tab = 16974538; // 0x10302ca
- field public static final int Widget_Material_Light_TabWidget = 16974539; // 0x10302cb
- field public static final int Widget_Material_Light_TextView = 16974540; // 0x10302cc
- field public static final int Widget_Material_Light_TextView_SpinnerItem = 16974541; // 0x10302cd
- field public static final int Widget_Material_Light_TimePicker = 16974577; // 0x10302f1
+ field public static final int Widget_Material = 16974413; // 0x103024d
+ field public static final int Widget_Material_ActionBar = 16974414; // 0x103024e
+ field public static final int Widget_Material_ActionBar_Solid = 16974415; // 0x103024f
+ field public static final int Widget_Material_ActionBar_TabBar = 16974416; // 0x1030250
+ field public static final int Widget_Material_ActionBar_TabText = 16974417; // 0x1030251
+ field public static final int Widget_Material_ActionBar_TabView = 16974418; // 0x1030252
+ field public static final int Widget_Material_ActionButton = 16974419; // 0x1030253
+ field public static final int Widget_Material_ActionButton_CloseMode = 16974420; // 0x1030254
+ field public static final int Widget_Material_ActionButton_Overflow = 16974421; // 0x1030255
+ field public static final int Widget_Material_ActionMode = 16974422; // 0x1030256
+ field public static final int Widget_Material_AutoCompleteTextView = 16974423; // 0x1030257
+ field public static final int Widget_Material_Button = 16974424; // 0x1030258
+ field public static final int Widget_Material_ButtonBar = 16974431; // 0x103025f
+ field public static final int Widget_Material_ButtonBar_AlertDialog = 16974432; // 0x1030260
+ field public static final int Widget_Material_Button_Borderless = 16974425; // 0x1030259
+ field public static final int Widget_Material_Button_Borderless_Colored = 16974426; // 0x103025a
+ field public static final int Widget_Material_Button_Borderless_Small = 16974427; // 0x103025b
+ field public static final int Widget_Material_Button_Inset = 16974428; // 0x103025c
+ field public static final int Widget_Material_Button_Small = 16974429; // 0x103025d
+ field public static final int Widget_Material_Button_Toggle = 16974430; // 0x103025e
+ field public static final int Widget_Material_CalendarView = 16974433; // 0x1030261
+ field public static final int Widget_Material_CheckedTextView = 16974434; // 0x1030262
+ field public static final int Widget_Material_CompoundButton_CheckBox = 16974435; // 0x1030263
+ field public static final int Widget_Material_CompoundButton_RadioButton = 16974436; // 0x1030264
+ field public static final int Widget_Material_CompoundButton_Star = 16974437; // 0x1030265
+ field public static final int Widget_Material_DatePicker = 16974438; // 0x1030266
+ field public static final int Widget_Material_DropDownItem = 16974439; // 0x1030267
+ field public static final int Widget_Material_DropDownItem_Spinner = 16974440; // 0x1030268
+ field public static final int Widget_Material_EditText = 16974441; // 0x1030269
+ field public static final int Widget_Material_ExpandableListView = 16974442; // 0x103026a
+ field public static final int Widget_Material_FastScroll = 16974443; // 0x103026b
+ field public static final int Widget_Material_GridView = 16974444; // 0x103026c
+ field public static final int Widget_Material_HorizontalScrollView = 16974445; // 0x103026d
+ field public static final int Widget_Material_ImageButton = 16974446; // 0x103026e
+ field public static final int Widget_Material_Light = 16974478; // 0x103028e
+ field public static final int Widget_Material_Light_ActionBar = 16974479; // 0x103028f
+ field public static final int Widget_Material_Light_ActionBar_Solid = 16974480; // 0x1030290
+ field public static final int Widget_Material_Light_ActionBar_TabBar = 16974481; // 0x1030291
+ field public static final int Widget_Material_Light_ActionBar_TabText = 16974482; // 0x1030292
+ field public static final int Widget_Material_Light_ActionBar_TabView = 16974483; // 0x1030293
+ field public static final int Widget_Material_Light_ActionButton = 16974484; // 0x1030294
+ field public static final int Widget_Material_Light_ActionButton_CloseMode = 16974485; // 0x1030295
+ field public static final int Widget_Material_Light_ActionButton_Overflow = 16974486; // 0x1030296
+ field public static final int Widget_Material_Light_ActionMode = 16974487; // 0x1030297
+ field public static final int Widget_Material_Light_AutoCompleteTextView = 16974488; // 0x1030298
+ field public static final int Widget_Material_Light_Button = 16974489; // 0x1030299
+ field public static final int Widget_Material_Light_ButtonBar = 16974496; // 0x10302a0
+ field public static final int Widget_Material_Light_ButtonBar_AlertDialog = 16974497; // 0x10302a1
+ field public static final int Widget_Material_Light_Button_Borderless = 16974490; // 0x103029a
+ field public static final int Widget_Material_Light_Button_Borderless_Colored = 16974491; // 0x103029b
+ field public static final int Widget_Material_Light_Button_Borderless_Small = 16974492; // 0x103029c
+ field public static final int Widget_Material_Light_Button_Inset = 16974493; // 0x103029d
+ field public static final int Widget_Material_Light_Button_Small = 16974494; // 0x103029e
+ field public static final int Widget_Material_Light_Button_Toggle = 16974495; // 0x103029f
+ field public static final int Widget_Material_Light_CalendarView = 16974498; // 0x10302a2
+ field public static final int Widget_Material_Light_CheckedTextView = 16974499; // 0x10302a3
+ field public static final int Widget_Material_Light_CompoundButton_CheckBox = 16974500; // 0x10302a4
+ field public static final int Widget_Material_Light_CompoundButton_RadioButton = 16974501; // 0x10302a5
+ field public static final int Widget_Material_Light_CompoundButton_Star = 16974502; // 0x10302a6
+ field public static final int Widget_Material_Light_DatePicker = 16974503; // 0x10302a7
+ field public static final int Widget_Material_Light_DropDownItem = 16974504; // 0x10302a8
+ field public static final int Widget_Material_Light_DropDownItem_Spinner = 16974505; // 0x10302a9
+ field public static final int Widget_Material_Light_EditText = 16974506; // 0x10302aa
+ field public static final int Widget_Material_Light_ExpandableListView = 16974507; // 0x10302ab
+ field public static final int Widget_Material_Light_FastScroll = 16974508; // 0x10302ac
+ field public static final int Widget_Material_Light_GridView = 16974509; // 0x10302ad
+ field public static final int Widget_Material_Light_HorizontalScrollView = 16974510; // 0x10302ae
+ field public static final int Widget_Material_Light_ImageButton = 16974511; // 0x10302af
+ field public static final int Widget_Material_Light_ListPopupWindow = 16974512; // 0x10302b0
+ field public static final int Widget_Material_Light_ListView = 16974513; // 0x10302b1
+ field public static final int Widget_Material_Light_ListView_DropDown = 16974514; // 0x10302b2
+ field public static final int Widget_Material_Light_MediaRouteButton = 16974515; // 0x10302b3
+ field public static final int Widget_Material_Light_PopupMenu = 16974516; // 0x10302b4
+ field public static final int Widget_Material_Light_PopupMenu_Overflow = 16974517; // 0x10302b5
+ field public static final int Widget_Material_Light_PopupWindow = 16974518; // 0x10302b6
+ field public static final int Widget_Material_Light_ProgressBar = 16974519; // 0x10302b7
+ field public static final int Widget_Material_Light_ProgressBar_Horizontal = 16974520; // 0x10302b8
+ field public static final int Widget_Material_Light_ProgressBar_Inverse = 16974521; // 0x10302b9
+ field public static final int Widget_Material_Light_ProgressBar_Large = 16974522; // 0x10302ba
+ field public static final int Widget_Material_Light_ProgressBar_Large_Inverse = 16974523; // 0x10302bb
+ field public static final int Widget_Material_Light_ProgressBar_Small = 16974524; // 0x10302bc
+ field public static final int Widget_Material_Light_ProgressBar_Small_Inverse = 16974525; // 0x10302bd
+ field public static final int Widget_Material_Light_ProgressBar_Small_Title = 16974526; // 0x10302be
+ field public static final int Widget_Material_Light_RatingBar = 16974527; // 0x10302bf
+ field public static final int Widget_Material_Light_RatingBar_Indicator = 16974528; // 0x10302c0
+ field public static final int Widget_Material_Light_RatingBar_Small = 16974529; // 0x10302c1
+ field public static final int Widget_Material_Light_ScrollView = 16974530; // 0x10302c2
+ field public static final int Widget_Material_Light_SearchView = 16974531; // 0x10302c3
+ field public static final int Widget_Material_Light_SeekBar = 16974532; // 0x10302c4
+ field public static final int Widget_Material_Light_SegmentedButton = 16974533; // 0x10302c5
+ field public static final int Widget_Material_Light_Spinner = 16974535; // 0x10302c7
+ field public static final int Widget_Material_Light_Spinner_Underlined = 16974536; // 0x10302c8
+ field public static final int Widget_Material_Light_StackView = 16974534; // 0x10302c6
+ field public static final int Widget_Material_Light_Tab = 16974537; // 0x10302c9
+ field public static final int Widget_Material_Light_TabWidget = 16974538; // 0x10302ca
+ field public static final int Widget_Material_Light_TextView = 16974539; // 0x10302cb
+ field public static final int Widget_Material_Light_TextView_SpinnerItem = 16974540; // 0x10302cc
+ field public static final int Widget_Material_Light_TimePicker = 16974541; // 0x10302cd
field public static final int Widget_Material_Light_WebTextView = 16974542; // 0x10302ce
field public static final int Widget_Material_Light_WebView = 16974543; // 0x10302cf
- field public static final int Widget_Material_ListPopupWindow = 16974455; // 0x1030277
- field public static final int Widget_Material_ListView = 16974456; // 0x1030278
- field public static final int Widget_Material_ListView_DropDown = 16974457; // 0x1030279
- field public static final int Widget_Material_MediaRouteButton = 16974458; // 0x103027a
- field public static final int Widget_Material_PopupMenu = 16974459; // 0x103027b
- field public static final int Widget_Material_PopupMenu_Overflow = 16974460; // 0x103027c
- field public static final int Widget_Material_PopupWindow = 16974461; // 0x103027d
- field public static final int Widget_Material_ProgressBar = 16974462; // 0x103027e
- field public static final int Widget_Material_ProgressBar_Horizontal = 16974463; // 0x103027f
- field public static final int Widget_Material_ProgressBar_Large = 16974464; // 0x1030280
- field public static final int Widget_Material_ProgressBar_Small = 16974465; // 0x1030281
- field public static final int Widget_Material_ProgressBar_Small_Title = 16974466; // 0x1030282
- field public static final int Widget_Material_RatingBar = 16974467; // 0x1030283
- field public static final int Widget_Material_RatingBar_Indicator = 16974468; // 0x1030284
- field public static final int Widget_Material_RatingBar_Small = 16974469; // 0x1030285
- field public static final int Widget_Material_ScrollView = 16974470; // 0x1030286
- field public static final int Widget_Material_SearchView = 16974574; // 0x10302ee
- field public static final int Widget_Material_SeekBar = 16974471; // 0x1030287
- field public static final int Widget_Material_SegmentedButton = 16974472; // 0x1030288
- field public static final int Widget_Material_Spinner = 16974474; // 0x103028a
- field public static final int Widget_Material_Spinner_Underlined = 16974566; // 0x10302e6
- field public static final int Widget_Material_StackView = 16974473; // 0x1030289
- field public static final int Widget_Material_Tab = 16974475; // 0x103028b
- field public static final int Widget_Material_TabWidget = 16974476; // 0x103028c
- field public static final int Widget_Material_TextView = 16974477; // 0x103028d
- field public static final int Widget_Material_TextView_SpinnerItem = 16974478; // 0x103028e
- field public static final int Widget_Material_TimePicker = 16974576; // 0x10302f0
- field public static final int Widget_Material_Toolbar = 16974479; // 0x103028f
- field public static final int Widget_Material_Toolbar_Button_Navigation = 16974480; // 0x1030290
- field public static final int Widget_Material_WebTextView = 16974481; // 0x1030291
- field public static final int Widget_Material_WebView = 16974482; // 0x1030292
+ field public static final int Widget_Material_ListPopupWindow = 16974447; // 0x103026f
+ field public static final int Widget_Material_ListView = 16974448; // 0x1030270
+ field public static final int Widget_Material_ListView_DropDown = 16974449; // 0x1030271
+ field public static final int Widget_Material_MediaRouteButton = 16974450; // 0x1030272
+ field public static final int Widget_Material_PopupMenu = 16974451; // 0x1030273
+ field public static final int Widget_Material_PopupMenu_Overflow = 16974452; // 0x1030274
+ field public static final int Widget_Material_PopupWindow = 16974453; // 0x1030275
+ field public static final int Widget_Material_ProgressBar = 16974454; // 0x1030276
+ field public static final int Widget_Material_ProgressBar_Horizontal = 16974455; // 0x1030277
+ field public static final int Widget_Material_ProgressBar_Large = 16974456; // 0x1030278
+ field public static final int Widget_Material_ProgressBar_Small = 16974457; // 0x1030279
+ field public static final int Widget_Material_ProgressBar_Small_Title = 16974458; // 0x103027a
+ field public static final int Widget_Material_RatingBar = 16974459; // 0x103027b
+ field public static final int Widget_Material_RatingBar_Indicator = 16974460; // 0x103027c
+ field public static final int Widget_Material_RatingBar_Small = 16974461; // 0x103027d
+ field public static final int Widget_Material_ScrollView = 16974462; // 0x103027e
+ field public static final int Widget_Material_SearchView = 16974463; // 0x103027f
+ field public static final int Widget_Material_SeekBar = 16974464; // 0x1030280
+ field public static final int Widget_Material_SegmentedButton = 16974465; // 0x1030281
+ field public static final int Widget_Material_Spinner = 16974467; // 0x1030283
+ field public static final int Widget_Material_Spinner_Underlined = 16974468; // 0x1030284
+ field public static final int Widget_Material_StackView = 16974466; // 0x1030282
+ field public static final int Widget_Material_Tab = 16974469; // 0x1030285
+ field public static final int Widget_Material_TabWidget = 16974470; // 0x1030286
+ field public static final int Widget_Material_TextView = 16974471; // 0x1030287
+ field public static final int Widget_Material_TextView_SpinnerItem = 16974472; // 0x1030288
+ field public static final int Widget_Material_TimePicker = 16974473; // 0x1030289
+ field public static final int Widget_Material_Toolbar = 16974474; // 0x103028a
+ field public static final int Widget_Material_Toolbar_Button_Navigation = 16974475; // 0x103028b
+ field public static final int Widget_Material_WebTextView = 16974476; // 0x103028c
+ field public static final int Widget_Material_WebView = 16974477; // 0x103028d
field public static final int Widget_PopupMenu = 16973958; // 0x1030086
field public static final int Widget_PopupWindow = 16973878; // 0x1030036
field public static final int Widget_ProgressBar = 16973852; // 0x103001c
@@ -2636,48 +2523,14 @@
field public static final int Widget_SeekBar = 16973856; // 0x1030020
field public static final int Widget_Spinner = 16973864; // 0x1030028
field public static final int Widget_Spinner_DropDown = 16973955; // 0x1030083
- field public static final int Widget_StackView = 16974338; // 0x1030202
+ field public static final int Widget_StackView = 16974310; // 0x10301e6
field public static final int Widget_TabWidget = 16973876; // 0x1030034
field public static final int Widget_TextView = 16973858; // 0x1030022
field public static final int Widget_TextView_PopupMenu = 16973865; // 0x1030029
field public static final int Widget_TextView_SpinnerItem = 16973866; // 0x103002a
- field public static final int Widget_Toolbar = 16974339; // 0x1030203
- field public static final int Widget_Toolbar_Button_Navigation = 16974340; // 0x1030204
+ field public static final int Widget_Toolbar = 16974311; // 0x10301e7
+ field public static final int Widget_Toolbar_Button_Navigation = 16974312; // 0x10301e8
field public static final int Widget_WebView = 16973875; // 0x1030033
- field public static final int __removed1 = 16974559; // 0x10302df
- field public static final int __removed3 = 16974341; // 0x1030205
- field public static final int __removed4 = 16974342; // 0x1030206
- field public static final int __removed5 = 16974343; // 0x1030207
- field public static final int __removed6 = 16974344; // 0x1030208
- field public static final int __removed7 = 16974345; // 0x1030209
- field public static final int l_resource_pad1 = 16974336; // 0x1030200
- field public static final int l_resource_pad10 = 16974327; // 0x10301f7
- field public static final int l_resource_pad11 = 16974326; // 0x10301f6
- field public static final int l_resource_pad12 = 16974325; // 0x10301f5
- field public static final int l_resource_pad13 = 16974324; // 0x10301f4
- field public static final int l_resource_pad14 = 16974323; // 0x10301f3
- field public static final int l_resource_pad15 = 16974322; // 0x10301f2
- field public static final int l_resource_pad16 = 16974321; // 0x10301f1
- field public static final int l_resource_pad17 = 16974320; // 0x10301f0
- field public static final int l_resource_pad18 = 16974319; // 0x10301ef
- field public static final int l_resource_pad19 = 16974318; // 0x10301ee
- field public static final int l_resource_pad2 = 16974335; // 0x10301ff
- field public static final int l_resource_pad20 = 16974317; // 0x10301ed
- field public static final int l_resource_pad21 = 16974316; // 0x10301ec
- field public static final int l_resource_pad22 = 16974315; // 0x10301eb
- field public static final int l_resource_pad23 = 16974314; // 0x10301ea
- field public static final int l_resource_pad24 = 16974313; // 0x10301e9
- field public static final int l_resource_pad25 = 16974312; // 0x10301e8
- field public static final int l_resource_pad26 = 16974311; // 0x10301e7
- field public static final int l_resource_pad27 = 16974310; // 0x10301e6
- field public static final int l_resource_pad28 = 16974309; // 0x10301e5
- field public static final int l_resource_pad3 = 16974334; // 0x10301fe
- field public static final int l_resource_pad4 = 16974333; // 0x10301fd
- field public static final int l_resource_pad5 = 16974332; // 0x10301fc
- field public static final int l_resource_pad6 = 16974331; // 0x10301fb
- field public static final int l_resource_pad7 = 16974330; // 0x10301fa
- field public static final int l_resource_pad8 = 16974329; // 0x10301f9
- field public static final int l_resource_pad9 = 16974328; // 0x10301f8
}
public static final class R.transition {
@@ -7386,7 +7239,7 @@
field public static final java.lang.String SEARCH_SERVICE = "search";
field public static final java.lang.String SENSOR_SERVICE = "sensor";
field public static final java.lang.String STORAGE_SERVICE = "storage";
- field public static final java.lang.String TELECOMM_SERVICE = "telecomm";
+ field public static final java.lang.String TELECOM_SERVICE = "telecom";
field public static final java.lang.String TELEPHONY_SERVICE = "phone";
field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
field public static final java.lang.String TV_INPUT_SERVICE = "tv_input";
@@ -8905,7 +8758,7 @@
field public static final java.lang.String FEATURE_LOCATION = "android.hardware.location";
field public static final java.lang.String FEATURE_LOCATION_GPS = "android.hardware.location.gps";
field public static final java.lang.String FEATURE_LOCATION_NETWORK = "android.hardware.location.network";
- field public static final java.lang.String FEATURE_MANAGED_PROFILES = "android.software.managed_profiles";
+ field public static final java.lang.String FEATURE_MANAGED_USERS = "android.software.managed_users";
field public static final java.lang.String FEATURE_MICROPHONE = "android.hardware.microphone";
field public static final java.lang.String FEATURE_NFC = "android.hardware.nfc";
field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce";
@@ -28197,11 +28050,11 @@
}
-package android.telecomm {
+package android.telecom {
public final class AudioState implements android.os.Parcelable {
ctor public AudioState(boolean, int, int);
- ctor public AudioState(android.telecomm.AudioState);
+ ctor public AudioState(android.telecom.AudioState);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator CREATOR;
@@ -28216,20 +28069,20 @@
}
public abstract class Conference {
- ctor public Conference(android.telecomm.PhoneAccountHandle);
- method public final boolean addConnection(android.telecomm.Connection);
+ ctor public Conference(android.telecom.PhoneAccountHandle);
+ method public final boolean addConnection(android.telecom.Connection);
method public final void destroy();
method public final int getCapabilities();
- method public final java.util.List<android.telecomm.Connection> getConnections();
- method public final android.telecomm.PhoneAccountHandle getPhoneAccountHandle();
+ method public final java.util.List<android.telecom.Connection> getConnections();
+ method public final android.telecom.PhoneAccountHandle getPhoneAccountHandle();
method public final int getState();
method public void onDisconnect();
method public void onHold();
method public void onMerge();
- method public void onSeparate(android.telecomm.Connection);
+ method public void onSeparate(android.telecom.Connection);
method public void onSwap();
method public void onUnhold();
- method public final void removeConnection(android.telecomm.Connection);
+ method public final void removeConnection(android.telecom.Connection);
method public final void setActive();
method public final void setCapabilities(int);
method public final void setDisconnected(int, java.lang.String);
@@ -28238,27 +28091,27 @@
public abstract class Connection {
ctor public Connection();
- method public static android.telecomm.Connection createCanceledConnection();
- method public static android.telecomm.Connection createFailedConnection(int, java.lang.String);
+ method public static android.telecom.Connection createCanceledConnection();
+ method public static android.telecom.Connection createFailedConnection(int, java.lang.String);
method public final void destroy();
method public final android.net.Uri getAddress();
method public final int getAddressPresentation();
method public final boolean getAudioModeIsVoip();
- method public final android.telecomm.AudioState getAudioState();
+ method public final android.telecom.AudioState getAudioState();
method public final int getCallCapabilities();
method public final java.lang.String getCallerDisplayName();
method public final int getCallerDisplayNamePresentation();
- method public final android.telecomm.Conference getConference();
- method public final java.util.List<android.telecomm.Connection> getConferenceableConnections();
+ method public final android.telecom.Conference getConference();
+ method public final java.util.List<android.telecom.Connection> getConferenceableConnections();
method public final int getDisconnectCause();
method public final java.lang.String getDisconnectMessage();
method public final int getState();
- method public final android.telecomm.StatusHints getStatusHints();
+ method public final android.telecom.StatusHints getStatusHints();
method public final boolean isRingbackRequested();
method public void onAbort();
method public void onAnswer();
- method public void onAudioStateChanged(android.telecomm.AudioState);
- method public void onConferenceWith(android.telecomm.Connection);
+ method public void onAudioStateChanged(android.telecom.AudioState);
+ method public void onConferenceWith(android.telecom.Connection);
method public void onDisconnect();
method public void onHold();
method public void onPlayDtmfTone(char);
@@ -28273,8 +28126,8 @@
method public final void setAudioModeIsVoip(boolean);
method public final void setCallCapabilities(int);
method public final void setCallerDisplayName(java.lang.String, int);
- method public final void setConferenceableConnections(java.util.List<android.telecomm.Connection>);
- method public final void setConnectionService(android.telecomm.ConnectionService);
+ method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
+ method public final void setConnectionService(android.telecom.ConnectionService);
method public final void setDialing();
method public final void setDisconnected(int, java.lang.String);
method public final void setInitialized();
@@ -28283,7 +28136,7 @@
method public final void setPostDialWait(java.lang.String);
method public final void setRingbackRequested(boolean);
method public final void setRinging();
- method public final void setStatusHints(android.telecomm.StatusHints);
+ method public final void setStatusHints(android.telecom.StatusHints);
method public static java.lang.String stateToString(int);
field public static final int STATE_ACTIVE = 4; // 0x4
field public static final int STATE_DIALING = 3; // 0x3
@@ -28295,9 +28148,9 @@
}
public final class ConnectionRequest implements android.os.Parcelable {
- ctor public ConnectionRequest(android.telecomm.PhoneAccountHandle, android.net.Uri, android.os.Bundle);
+ ctor public ConnectionRequest(android.telecom.PhoneAccountHandle, android.net.Uri, android.os.Bundle);
method public int describeContents();
- method public android.telecomm.PhoneAccountHandle getAccountHandle();
+ method public android.telecom.PhoneAccountHandle getAccountHandle();
method public android.net.Uri getAddress();
method public android.os.Bundle getExtras();
method public void writeToParcel(android.os.Parcel, int);
@@ -28306,17 +28159,17 @@
public abstract class ConnectionService extends android.app.Service {
ctor public ConnectionService();
- method public final void addConference(android.telecomm.Conference);
- method public final void conferenceRemoteConnections(android.telecomm.RemoteConnection, android.telecomm.RemoteConnection);
- method public final android.telecomm.RemoteConnection createRemoteIncomingConnection(android.telecomm.PhoneAccountHandle, android.telecomm.ConnectionRequest);
- method public final android.telecomm.RemoteConnection createRemoteOutgoingConnection(android.telecomm.PhoneAccountHandle, android.telecomm.ConnectionRequest);
- method public final java.util.Collection<android.telecomm.Connection> getAllConnections();
+ method public final void addConference(android.telecom.Conference);
+ method public final void conferenceRemoteConnections(android.telecom.RemoteConnection, android.telecom.RemoteConnection);
+ method public final android.telecom.RemoteConnection createRemoteIncomingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
+ method public final android.telecom.RemoteConnection createRemoteOutgoingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
+ method public final java.util.Collection<android.telecom.Connection> getAllConnections();
method public final android.os.IBinder onBind(android.content.Intent);
- method public void onConference(android.telecomm.Connection, android.telecomm.Connection);
- method public android.telecomm.Connection onCreateIncomingConnection(android.telecomm.PhoneAccountHandle, android.telecomm.ConnectionRequest);
- method public android.telecomm.Connection onCreateOutgoingConnection(android.telecomm.PhoneAccountHandle, android.telecomm.ConnectionRequest);
- method public void onRemoteConferenceAdded(android.telecomm.RemoteConference);
- field public static final java.lang.String SERVICE_INTERFACE = "android.telecomm.ConnectionService";
+ method public void onConference(android.telecom.Connection, android.telecom.Connection);
+ method public android.telecom.Connection onCreateIncomingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
+ method public android.telecom.Connection onCreateOutgoingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
+ method public void onRemoteConferenceAdded(android.telecom.RemoteConference);
+ field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.ConnectionService";
}
public class GatewayInfo implements android.os.Parcelable {
@@ -28330,9 +28183,9 @@
}
public class PhoneAccount implements android.os.Parcelable {
- method public static android.telecomm.PhoneAccount.Builder builder(android.telecomm.PhoneAccountHandle, java.lang.CharSequence);
+ method public static android.telecom.PhoneAccount.Builder builder(android.telecom.PhoneAccountHandle, java.lang.CharSequence);
method public int describeContents();
- method public android.telecomm.PhoneAccountHandle getAccountHandle();
+ method public android.telecom.PhoneAccountHandle getAccountHandle();
method public android.net.Uri getAddress();
method public int getCapabilities();
method public android.graphics.drawable.Drawable getIcon(android.content.Context);
@@ -28355,15 +28208,15 @@
}
public static class PhoneAccount.Builder {
- ctor public PhoneAccount.Builder(android.telecomm.PhoneAccountHandle, java.lang.CharSequence);
- ctor public PhoneAccount.Builder(android.telecomm.PhoneAccount);
- method public android.telecomm.PhoneAccount build();
- method public android.telecomm.PhoneAccount.Builder setAddress(android.net.Uri);
- method public android.telecomm.PhoneAccount.Builder setCapabilities(int);
- method public android.telecomm.PhoneAccount.Builder setIconResId(int);
- method public android.telecomm.PhoneAccount.Builder setShortDescription(java.lang.CharSequence);
- method public android.telecomm.PhoneAccount.Builder setSubscriptionAddress(android.net.Uri);
- method public android.telecomm.PhoneAccount.Builder setSupportedUriSchemes(java.util.List<java.lang.String>);
+ ctor public PhoneAccount.Builder(android.telecom.PhoneAccountHandle, java.lang.CharSequence);
+ ctor public PhoneAccount.Builder(android.telecom.PhoneAccount);
+ method public android.telecom.PhoneAccount build();
+ method public android.telecom.PhoneAccount.Builder setAddress(android.net.Uri);
+ method public android.telecom.PhoneAccount.Builder setCapabilities(int);
+ method public android.telecom.PhoneAccount.Builder setIconResId(int);
+ method public android.telecom.PhoneAccount.Builder setShortDescription(java.lang.CharSequence);
+ method public android.telecom.PhoneAccount.Builder setSubscriptionAddress(android.net.Uri);
+ method public android.telecom.PhoneAccount.Builder setSupportedUriSchemes(java.util.List<java.lang.String>);
}
public class PhoneAccountHandle implements android.os.Parcelable {
@@ -28393,25 +28246,25 @@
public final class RemoteConference {
method public void disconnect();
method public final int getCallCapabilities();
- method public final java.util.List<android.telecomm.RemoteConnection> getConnections();
+ method public final java.util.List<android.telecom.RemoteConnection> getConnections();
method public int getDisconnectCause();
method public java.lang.String getDisconnectMessage();
method public final int getState();
method public void hold();
- method public final void registerCallback(android.telecomm.RemoteConference.Callback);
- method public void separate(android.telecomm.RemoteConnection);
+ method public final void registerCallback(android.telecom.RemoteConference.Callback);
+ method public void separate(android.telecom.RemoteConnection);
method public void unhold();
- method public final void unregisterCallback(android.telecomm.RemoteConference.Callback);
+ method public final void unregisterCallback(android.telecom.RemoteConference.Callback);
}
public static abstract class RemoteConference.Callback {
ctor public RemoteConference.Callback();
- method public void onCapabilitiesChanged(android.telecomm.RemoteConference, int);
- method public void onConnectionAdded(android.telecomm.RemoteConference, android.telecomm.RemoteConnection);
- method public void onConnectionRemoved(android.telecomm.RemoteConference, android.telecomm.RemoteConnection);
- method public void onDestroyed(android.telecomm.RemoteConference);
- method public void onDisconnected(android.telecomm.RemoteConference, int, java.lang.String);
- method public void onStateChanged(android.telecomm.RemoteConference, int, int);
+ method public void onCapabilitiesChanged(android.telecom.RemoteConference, int);
+ method public void onConnectionAdded(android.telecom.RemoteConference, android.telecom.RemoteConnection);
+ method public void onConnectionRemoved(android.telecom.RemoteConference, android.telecom.RemoteConnection);
+ method public void onDestroyed(android.telecom.RemoteConference);
+ method public void onDisconnected(android.telecom.RemoteConference, int, java.lang.String);
+ method public void onStateChanged(android.telecom.RemoteConference, int, int);
}
public final class RemoteConnection {
@@ -28423,41 +28276,41 @@
method public int getCallCapabilities();
method public java.lang.CharSequence getCallerDisplayName();
method public int getCallerDisplayNamePresentation();
- method public android.telecomm.RemoteConference getConference();
- method public java.util.List<android.telecomm.RemoteConnection> getConferenceableConnections();
+ method public android.telecom.RemoteConference getConference();
+ method public java.util.List<android.telecom.RemoteConnection> getConferenceableConnections();
method public int getDisconnectCauseCode();
method public java.lang.String getDisconnectCauseMessage();
method public int getFailureCode();
method public java.lang.String getFailureMessage();
method public int getState();
- method public android.telecomm.StatusHints getStatusHints();
+ method public android.telecom.StatusHints getStatusHints();
method public void hold();
method public boolean isRingbackRequested();
method public boolean isVoipAudioMode();
method public void playDtmfTone(char);
method public void postDialContinue(boolean);
- method public void registerCallback(android.telecomm.RemoteConnection.Callback);
+ method public void registerCallback(android.telecom.RemoteConnection.Callback);
method public void reject();
- method public void setAudioState(android.telecomm.AudioState);
+ method public void setAudioState(android.telecom.AudioState);
method public void stopDtmfTone();
method public void unhold();
- method public void unregisterCallback(android.telecomm.RemoteConnection.Callback);
+ method public void unregisterCallback(android.telecom.RemoteConnection.Callback);
}
public static abstract class RemoteConnection.Callback {
ctor public RemoteConnection.Callback();
- method public void onAddressChanged(android.telecomm.RemoteConnection, android.net.Uri, int);
- method public void onCallCapabilitiesChanged(android.telecomm.RemoteConnection, int);
- method public void onCallerDisplayNameChanged(android.telecomm.RemoteConnection, java.lang.String, int);
- method public void onConferenceChanged(android.telecomm.RemoteConnection, android.telecomm.RemoteConference);
- method public void onConferenceableConnectionsChanged(android.telecomm.RemoteConnection, java.util.List<android.telecomm.RemoteConnection>);
- method public void onDestroyed(android.telecomm.RemoteConnection);
- method public void onDisconnected(android.telecomm.RemoteConnection, int, java.lang.String);
- method public void onPostDialWait(android.telecomm.RemoteConnection, java.lang.String);
- method public void onRingbackRequested(android.telecomm.RemoteConnection, boolean);
- method public void onStateChanged(android.telecomm.RemoteConnection, int);
- method public void onStatusHintsChanged(android.telecomm.RemoteConnection, android.telecomm.StatusHints);
- method public void onVoipAudioChanged(android.telecomm.RemoteConnection, boolean);
+ method public void onAddressChanged(android.telecom.RemoteConnection, android.net.Uri, int);
+ method public void onCallCapabilitiesChanged(android.telecom.RemoteConnection, int);
+ method public void onCallerDisplayNameChanged(android.telecom.RemoteConnection, java.lang.String, int);
+ method public void onConferenceChanged(android.telecom.RemoteConnection, android.telecom.RemoteConference);
+ method public void onConferenceableConnectionsChanged(android.telecom.RemoteConnection, java.util.List<android.telecom.RemoteConnection>);
+ method public void onDestroyed(android.telecom.RemoteConnection);
+ method public void onDisconnected(android.telecom.RemoteConnection, int, java.lang.String);
+ method public void onPostDialWait(android.telecom.RemoteConnection, java.lang.String);
+ method public void onRingbackRequested(android.telecom.RemoteConnection, boolean);
+ method public void onStateChanged(android.telecom.RemoteConnection, int);
+ method public void onStatusHintsChanged(android.telecom.RemoteConnection, android.telecom.StatusHints);
+ method public void onVoipAudioChanged(android.telecom.RemoteConnection, boolean);
}
public final class StatusHints implements android.os.Parcelable {
@@ -28472,36 +28325,36 @@
field public static final android.os.Parcelable.Creator CREATOR;
}
- public class TelecommManager {
- method public void addNewIncomingCall(android.telecomm.PhoneAccountHandle, android.os.Bundle);
+ public class TelecomManager {
+ method public void addNewIncomingCall(android.telecom.PhoneAccountHandle, android.os.Bundle);
method public void cancelMissedCallsNotification();
method public void clearAccounts();
- method public android.telecomm.PhoneAccountHandle getConnectionManager();
- method public android.telecomm.PhoneAccountHandle getDefaultOutgoingPhoneAccount(java.lang.String);
- method public java.util.List<android.telecomm.PhoneAccountHandle> getEnabledPhoneAccounts();
- method public android.telecomm.PhoneAccount getPhoneAccount(android.telecomm.PhoneAccountHandle);
- method public java.util.List<android.telecomm.PhoneAccountHandle> getPhoneAccountsSupportingScheme(java.lang.String);
+ method public android.telecom.PhoneAccountHandle getConnectionManager();
+ method public android.telecom.PhoneAccountHandle getDefaultOutgoingPhoneAccount(java.lang.String);
+ method public java.util.List<android.telecom.PhoneAccountHandle> getEnabledPhoneAccounts();
+ method public android.telecom.PhoneAccount getPhoneAccount(android.telecom.PhoneAccountHandle);
+ method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(java.lang.String);
method public boolean handleMmi(java.lang.String);
method public boolean hasMultipleEnabledAccounts();
method public boolean isInCall();
- method public void registerPhoneAccount(android.telecomm.PhoneAccount);
+ method public void registerPhoneAccount(android.telecom.PhoneAccount);
method public void showInCallScreen(boolean);
- method public void unregisterPhoneAccount(android.telecomm.PhoneAccountHandle);
- field public static final java.lang.String ACTION_CHANGE_PHONE_ACCOUNTS = "android.telecomm.action.CHANGE_PHONE_ACCOUNTS";
- field public static final java.lang.String ACTION_CONNECTION_SERVICE_CONFIGURE = "android.telecomm.action.CONNECTION_SERVICE_CONFIGURE";
+ method public void unregisterPhoneAccount(android.telecom.PhoneAccountHandle);
+ field public static final java.lang.String ACTION_CHANGE_PHONE_ACCOUNTS = "android.telecom.action.CHANGE_PHONE_ACCOUNTS";
+ field public static final java.lang.String ACTION_CONNECTION_SERVICE_CONFIGURE = "android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
field public static final java.lang.String ACTION_PHONE_ACCOUNT_DISABLED = "android.telecom.action.PHONE_ACCOUNT_DISABLED";
field public static final java.lang.String ACTION_PHONE_ACCOUNT_ENABLED = "android.telecom.action.PHONE_ACCOUNT_ENABLED";
- field public static final java.lang.String ACTION_SHOW_CALL_SETTINGS = "android.telecomm.action.SHOW_CALL_SETTINGS";
+ field public static final java.lang.String ACTION_SHOW_CALL_SETTINGS = "android.telecom.action.SHOW_CALL_SETTINGS";
field public static final char DTMF_CHARACTER_PAUSE = 44; // 0x002c ','
field public static final char DTMF_CHARACTER_WAIT = 59; // 0x003b ';'
- field public static final java.lang.String EXTRA_CALL_BACK_NUMBER = "android.telecomm.extra.CALL_BACK_NUMBER";
- field public static final java.lang.String EXTRA_CALL_DISCONNECT_CAUSE = "android.telecomm.extra.CALL_DISCONNECT_CAUSE";
- field public static final java.lang.String EXTRA_CALL_DISCONNECT_MESSAGE = "android.telecomm.extra.CALL_DISCONNECT_MESSAGE";
- field public static final java.lang.String EXTRA_CONNECTION_SERVICE = "android.telecomm.extra.CONNECTION_SERVICE";
- field public static final java.lang.String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telecomm.extra.PHONE_ACCOUNT_HANDLE";
- field public static final java.lang.String EXTRA_START_CALL_WITH_SPEAKERPHONE = "android.telecomm.extra.START_CALL_WITH_SPEAKERPHONE";
- field public static final java.lang.String GATEWAY_ORIGINAL_ADDRESS = "android.telecomm.extra.GATEWAY_ORIGINAL_ADDRESS";
- field public static final java.lang.String GATEWAY_PROVIDER_PACKAGE = "android.telecomm.extra.GATEWAY_PROVIDER_PACKAGE";
+ field public static final java.lang.String EXTRA_CALL_BACK_NUMBER = "android.telecom.extra.CALL_BACK_NUMBER";
+ field public static final java.lang.String EXTRA_CALL_DISCONNECT_CAUSE = "android.telecom.extra.CALL_DISCONNECT_CAUSE";
+ field public static final java.lang.String EXTRA_CALL_DISCONNECT_MESSAGE = "android.telecom.extra.CALL_DISCONNECT_MESSAGE";
+ field public static final java.lang.String EXTRA_CONNECTION_SERVICE = "android.telecom.extra.CONNECTION_SERVICE";
+ field public static final java.lang.String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telecom.extra.PHONE_ACCOUNT_HANDLE";
+ field public static final java.lang.String EXTRA_START_CALL_WITH_SPEAKERPHONE = "android.telecom.extra.START_CALL_WITH_SPEAKERPHONE";
+ field public static final java.lang.String GATEWAY_ORIGINAL_ADDRESS = "android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS";
+ field public static final java.lang.String GATEWAY_PROVIDER_PACKAGE = "android.telecom.extra.GATEWAY_PROVIDER_PACKAGE";
field public static final int PRESENTATION_ALLOWED = 1; // 0x1
field public static final int PRESENTATION_PAYPHONE = 4; // 0x4
field public static final int PRESENTATION_RESTRICTED = 2; // 0x2
@@ -33653,6 +33506,7 @@
method protected int computeHorizontalScrollOffset();
method protected int computeHorizontalScrollRange();
method public void computeScroll();
+ method public android.view.WindowInsets computeSystemWindowInsets(android.view.WindowInsets, android.graphics.Rect);
method protected int computeVerticalScrollExtent();
method protected int computeVerticalScrollOffset();
method protected int computeVerticalScrollRange();
@@ -34978,6 +34832,7 @@
method public boolean isConsumed();
method public boolean isRound();
method public android.view.WindowInsets replaceSystemWindowInsets(int, int, int, int);
+ method public android.view.WindowInsets replaceSystemWindowInsets(android.graphics.Rect);
}
public abstract interface WindowManager implements android.view.ViewManager {
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 3a39900..b4877de 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -122,6 +122,7 @@
import libcore.io.DropBox;
import libcore.io.EventLogger;
import libcore.io.IoUtils;
+import libcore.net.event.NetworkEventDispatcher;
import dalvik.system.CloseGuard;
import dalvik.system.VMDebug;
@@ -827,6 +828,9 @@
public void clearDnsCache() {
// a non-standard API to get this to libcore
InetAddress.clearDnsCache();
+ // Allow libcore to perform the necessary actions as it sees fit upon a network
+ // configuration change.
+ NetworkEventDispatcher.getInstance().onNetworkConfigurationChanged();
}
public void setHttpProxy(String host, String port, String exclList, Uri pacFileUrl) {
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 64eafb0..e9340eb 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -124,7 +124,7 @@
import android.print.PrintManager;
import android.service.fingerprint.IFingerprintService;
import android.service.fingerprint.FingerprintManager;
-import android.telecomm.TelecommManager;
+import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.content.ClipboardManager;
import android.util.AndroidRuntimeException;
@@ -148,7 +148,7 @@
import com.android.internal.annotations.GuardedBy;
import com.android.internal.app.IAppOpsService;
import com.android.internal.os.IDropBoxManagerService;
-import com.android.internal.telecomm.ITelecommService;
+import com.android.internal.telecom.ITelecomService;
import java.io.File;
import java.io.FileInputStream;
@@ -562,9 +562,9 @@
return new TelephonyManager(ctx.getOuterContext());
}});
- registerService(TELECOMM_SERVICE, new ServiceFetcher() {
+ registerService(TELECOM_SERVICE, new ServiceFetcher() {
public Object createService(ContextImpl ctx) {
- return new TelecommManager(ctx.getOuterContext());
+ return new TelecomManager(ctx.getOuterContext());
}});
registerService(UI_MODE_SERVICE, new ServiceFetcher() {
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 4f20705..158a40c 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -2115,7 +2115,7 @@
AUDIO_SERVICE,
MEDIA_ROUTER_SERVICE,
TELEPHONY_SERVICE,
- TELECOMM_SERVICE,
+ TELECOM_SERVICE,
CLIPBOARD_SERVICE,
INPUT_METHOD_SERVICE,
TEXT_SERVICES_MANAGER_SERVICE,
@@ -2588,13 +2588,13 @@
/**
* Use with {@link #getSystemService} to retrieve a
- * {@link android.telecomm.TelecommManager} to manage telecomm-related features
+ * {@link android.telecom.TelecomManager} to manage telecom-related features
* of the device.
*
* @see #getSystemService
- * @see android.telecomm.TelecommManager
+ * @see android.telecom.TelecomManager
*/
- public static final String TELECOMM_SERVICE = "telecomm";
+ public static final String TELECOM_SERVICE = "telecom";
/**
* Use with {@link #getSystemService} to retrieve a
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 8f3d90f..3fc9b67 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -23,6 +23,7 @@
import android.annotation.SystemApi;
import android.app.PackageDeleteObserver;
import android.app.PackageInstallObserver;
+import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -1518,10 +1519,17 @@
/**
* Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}:
- * The device supports managed profiles for enterprise users.
+ * The device supports creating secondary users and managed profiles via
+ * {@link DevicePolicyManager}.
*/
@SdkConstant(SdkConstantType.FEATURE)
- public static final String FEATURE_MANAGED_PROFILES = "android.software.managed_profiles";
+ public static final String FEATURE_MANAGED_USERS = "android.software.managed_users";
+
+ /**
+ * @hide
+ * TODO: Remove after dependencies updated b/17392243
+ */
+ public static final String FEATURE_MANAGED_PROFILES = "android.software.managed_users";
/**
* Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}:
diff --git a/core/java/android/hardware/soundtrigger/SoundTrigger.java b/core/java/android/hardware/soundtrigger/SoundTrigger.java
index 7390e2b..746ead2 100644
--- a/core/java/android/hardware/soundtrigger/SoundTrigger.java
+++ b/core/java/android/hardware/soundtrigger/SoundTrigger.java
@@ -873,7 +873,7 @@
int capturePreambleMs = in.readInt();
boolean triggerInData = in.readByte() == 1;
AudioFormat captureFormat = null;
- if (triggerInData) {
+ if (in.readByte() == 1) {
int sampleRate = in.readInt();
int encoding = in.readInt();
int channelMask = in.readInt();
@@ -899,7 +899,8 @@
dest.writeInt(captureSession);
dest.writeInt(captureDelayMs);
dest.writeInt(capturePreambleMs);
- if (triggerInData && (captureFormat != null)) {
+ dest.writeByte((byte) (triggerInData ? 1 : 0));
+ if (captureFormat != null) {
dest.writeByte((byte)1);
dest.writeInt(captureFormat.getSampleRate());
dest.writeInt(captureFormat.getEncoding());
diff --git a/core/java/android/os/IPowerManager.aidl b/core/java/android/os/IPowerManager.aidl
index 658180b..182dbee 100644
--- a/core/java/android/os/IPowerManager.aidl
+++ b/core/java/android/os/IPowerManager.aidl
@@ -42,6 +42,7 @@
void nap(long time);
boolean isInteractive();
boolean isPowerSaveMode();
+ boolean setPowerSaveMode(boolean mode);
void reboot(boolean confirm, String reason, boolean wait);
void shutdown(boolean confirm, boolean wait);
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 18b2082..3b6ce53 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -796,6 +796,23 @@
}
/**
+ * Set the current power save mode.
+ *
+ * @return True if the set was allowed.
+ *
+ * @see #isPowerSaveMode()
+ *
+ * @hide
+ */
+ public boolean setPowerSaveMode(boolean mode) {
+ try {
+ return mService.setPowerSaveMode(mode);
+ } catch (RemoteException e) {
+ return false;
+ }
+ }
+
+ /**
* Intent that is broadcast when the state of {@link #isPowerSaveMode()} changes.
* This broadcast is only sent to registered receivers.
*/
diff --git a/core/java/android/provider/CallLog.java b/core/java/android/provider/CallLog.java
index a5e86d8..c8d0fd5 100644
--- a/core/java/android/provider/CallLog.java
+++ b/core/java/android/provider/CallLog.java
@@ -33,7 +33,7 @@
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.DataUsageFeedback;
-import android.telecomm.PhoneAccountHandle;
+import android.telecom.PhoneAccountHandle;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java
index 7e04ae8..92647f0 100644
--- a/core/java/android/service/dreams/DreamService.java
+++ b/core/java/android/service/dreams/DreamService.java
@@ -29,7 +29,6 @@
import android.os.IBinder;
import android.os.PowerManager;
import android.os.RemoteException;
-import android.os.RemoteException;
import android.os.ServiceManager;
import android.util.Slog;
import android.view.ActionMode;
diff --git a/core/java/android/transition/Transition.java b/core/java/android/transition/Transition.java
index 40bb6ec..b677888 100644
--- a/core/java/android/transition/Transition.java
+++ b/core/java/android/transition/Transition.java
@@ -690,11 +690,18 @@
for (int i = 0; i < startValuesListCount; ++i) {
TransitionValues start = startValuesList.get(i);
TransitionValues end = endValuesList.get(i);
- // Only bother trying to animate with valid values that differ between start/end
- boolean isInvalidStart = start != null && !isValidTarget(start.view);
- boolean isInvalidEnd = end != null && !isValidTarget(end.view);
- boolean isChanged = start != end && (start == null || !start.equals(end));
- if (isChanged && !isInvalidStart && !isInvalidEnd) {
+ if (start != null && !start.targetedTransitions.contains(this)) {
+ start = null;
+ }
+ if (end != null && !end.targetedTransitions.contains(this)) {
+ end = null;
+ }
+ if (start == null && end == null) {
+ continue;
+ }
+ // Only bother trying to animate with values that differ between start/end
+ boolean isChanged = start == null || end == null || areValuesChanged(start, end);
+ if (isChanged) {
if (DBG) {
View view = (end != null) ? end.view : start.view;
Log.d(LOG_TAG, " differing start/end values for view " + view);
@@ -1415,11 +1422,12 @@
} else {
captureEndValues(values);
}
+ values.targetedTransitions.add(this);
capturePropagationValues(values);
if (start) {
- addViewValues(mStartValues, view, values, true);
+ addViewValues(mStartValues, view, values);
} else {
- addViewValues(mEndValues, view, values, true);
+ addViewValues(mEndValues, view, values);
}
}
}
@@ -1432,6 +1440,7 @@
} else {
captureEndValues(values);
}
+ values.targetedTransitions.add(this);
capturePropagationValues(values);
if (start) {
mStartValues.viewValues.put(view, values);
@@ -1460,7 +1469,7 @@
}
static void addViewValues(TransitionValuesMaps transitionValuesMaps,
- View view, TransitionValues transitionValues, boolean setTransientState) {
+ View view, TransitionValues transitionValues) {
transitionValuesMaps.viewValues.put(view, transitionValues);
int id = view.getId();
if (id >= 0) {
@@ -1489,15 +1498,11 @@
// Duplicate item IDs: cannot match by item ID.
View alreadyMatched = transitionValuesMaps.itemIdValues.get(itemId);
if (alreadyMatched != null) {
- if (setTransientState) {
- alreadyMatched.setHasTransientState(false);
- }
+ alreadyMatched.setHasTransientState(false);
transitionValuesMaps.itemIdValues.put(itemId, null);
}
} else {
- if (setTransientState) {
- view.setHasTransientState(true);
- }
+ view.setHasTransientState(true);
transitionValuesMaps.itemIdValues.put(itemId, view);
}
}
@@ -1562,11 +1567,12 @@
} else {
captureEndValues(values);
}
+ values.targetedTransitions.add(this);
capturePropagationValues(values);
if (start) {
- addViewValues(mStartValues, view, values, true);
+ addViewValues(mStartValues, view, values);
} else {
- addViewValues(mEndValues, view, values, true);
+ addViewValues(mEndValues, view, values);
}
}
if (view instanceof ViewGroup) {
@@ -1731,8 +1737,10 @@
if (oldInfo != null && oldInfo.view != null && oldInfo.windowId == windowId) {
TransitionValues oldValues = oldInfo.values;
View oldView = oldInfo.view;
- TransitionValues newValues = getMatchedTransitionValues(oldView, true);
- boolean cancel = oldInfo.transition.areValuesChanged(oldValues, newValues);
+ TransitionValues startValues = getTransitionValues(oldView, true);
+ TransitionValues endValues = getMatchedTransitionValues(oldView, true);
+ boolean cancel = (startValues != null || endValues != null) &&
+ oldInfo.transition.areValuesChanged(oldValues, endValues);
if (cancel) {
if (anim.isRunning() || anim.isStarted()) {
if (DBG) {
@@ -1784,7 +1792,17 @@
String key) {
Object oldValue = oldValues.values.get(key);
Object newValue = newValues.values.get(key);
- boolean changed = (oldValue != null && newValue != null && !oldValue.equals(newValue));
+ boolean changed;
+ if (oldValue == null && newValue == null) {
+ // both are null
+ changed = false;
+ } else if (oldValue == null || newValue == null) {
+ // one is null
+ changed = true;
+ } else {
+ // neither is null
+ changed = !oldValue.equals(newValue);
+ }
if (DBG && changed) {
Log.d(LOG_TAG, "Transition.playTransition: " +
"oldValue != newValue for " + key +
diff --git a/core/java/android/transition/TransitionSet.java b/core/java/android/transition/TransitionSet.java
index 669621eb3..09d2c69 100644
--- a/core/java/android/transition/TransitionSet.java
+++ b/core/java/android/transition/TransitionSet.java
@@ -388,8 +388,6 @@
protected void createAnimators(ViewGroup sceneRoot, TransitionValuesMaps startValues,
TransitionValuesMaps endValues, ArrayList<TransitionValues> startValuesList,
ArrayList<TransitionValues> endValuesList) {
- startValues = removeExcludes(startValues);
- endValues = removeExcludes(endValues);
long startDelay = getStartDelay();
int numTransitions = mTransitions.size();
for (int i = 0; i < numTransitions; i++) {
@@ -409,24 +407,6 @@
}
}
- private TransitionValuesMaps removeExcludes(TransitionValuesMaps values) {
- if (mTargetIds.isEmpty() && mTargetIdExcludes == null && mTargetTypeExcludes == null
- && mTargetNames == null && mTargetTypes == null
- && mTargetExcludes == null && mTargetNameExcludes == null
- && mTargets.isEmpty()) {
- return values;
- }
- TransitionValuesMaps included = new TransitionValuesMaps();
- int numValues = values.viewValues.size();
- for (int i = 0; i < numValues; i++) {
- View view = values.viewValues.keyAt(i);
- if (isValidTarget(view)) {
- addViewValues(included, view, values.viewValues.valueAt(i), false);
- }
- }
- return included;
- }
-
/**
* @hide
*/
@@ -470,6 +450,7 @@
for (Transition childTransition : mTransitions) {
if (childTransition.isValidTarget(transitionValues.view)) {
childTransition.captureStartValues(transitionValues);
+ transitionValues.targetedTransitions.add(childTransition);
}
}
}
@@ -481,6 +462,7 @@
for (Transition childTransition : mTransitions) {
if (childTransition.isValidTarget(transitionValues.view)) {
childTransition.captureEndValues(transitionValues);
+ transitionValues.targetedTransitions.add(childTransition);
}
}
}
diff --git a/core/java/android/transition/TransitionValues.java b/core/java/android/transition/TransitionValues.java
index 8989f89..11f2962 100644
--- a/core/java/android/transition/TransitionValues.java
+++ b/core/java/android/transition/TransitionValues.java
@@ -20,6 +20,7 @@
import android.view.View;
import android.view.ViewGroup;
+import java.util.ArrayList;
import java.util.Map;
/**
@@ -52,6 +53,11 @@
*/
public final Map<String, Object> values = new ArrayMap<String, Object>();
+ /**
+ * The Transitions that targeted this view.
+ */
+ final ArrayList<Transition> targetedTransitions = new ArrayList<Transition>();
+
@Override
public boolean equals(Object other) {
if (other instanceof TransitionValues) {
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index eb8f3bf..ac00667 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -6525,6 +6525,28 @@
}
/**
+ * Compute insets that should be consumed by this view and the ones that should propagate
+ * to those under it.
+ *
+ * @param in Insets currently being processed by this View, likely received as a parameter
+ * to {@link #onApplyWindowInsets(WindowInsets)}.
+ * @param outLocalInsets A Rect that will receive the insets that should be consumed
+ * by this view
+ * @return Insets that should be passed along to views under this one
+ */
+ public WindowInsets computeSystemWindowInsets(WindowInsets in, Rect outLocalInsets) {
+ if ((mViewFlags & OPTIONAL_FITS_SYSTEM_WINDOWS) == 0
+ || mAttachInfo == null
+ || (mAttachInfo.mSystemUiVisibility & SYSTEM_UI_LAYOUT_FLAGS) == 0) {
+ outLocalInsets.set(in.getSystemWindowInsets());
+ return in.consumeSystemWindowInsets();
+ } else {
+ outLocalInsets.set(0, 0, 0, 0);
+ return in;
+ }
+ }
+
+ /**
* Sets whether or not this view should account for system screen decorations
* such as the status bar and inset its content; that is, controlling whether
* the default implementation of {@link #fitSystemWindows(Rect)} will be
diff --git a/core/java/android/view/WindowInsets.java b/core/java/android/view/WindowInsets.java
index 24c3c1a..2bfe3b4 100644
--- a/core/java/android/view/WindowInsets.java
+++ b/core/java/android/view/WindowInsets.java
@@ -341,6 +341,21 @@
}
/**
+ * Returns a copy of this WindowInsets with selected system window insets replaced
+ * with new values.
+ *
+ * @param systemWindowInsets New system window insets. Each field is the inset in pixels
+ * for that edge
+ * @return A modified copy of this WindowInsets
+ */
+ public WindowInsets replaceSystemWindowInsets(Rect systemWindowInsets) {
+ final WindowInsets result = new WindowInsets(this);
+ result.mSystemWindowInsets = new Rect(systemWindowInsets);
+ result.mSystemWindowInsetsConsumed = !hasSystemWindowInsets();
+ return result;
+ }
+
+ /**
* @hide
*/
public WindowInsets consumeWindowDecorInsets() {
diff --git a/core/java/com/android/internal/inputmethod/InputMethodUtils.java b/core/java/com/android/internal/inputmethod/InputMethodUtils.java
index 6eb0099..2d067d5 100644
--- a/core/java/com/android/internal/inputmethod/InputMethodUtils.java
+++ b/core/java/com/android/internal/inputmethod/InputMethodUtils.java
@@ -44,6 +44,7 @@
public class InputMethodUtils {
public static final boolean DEBUG = false;
public static final int NOT_A_SUBTYPE_ID = -1;
+ public static final String SUBTYPE_MODE_ANY = null;
public static final String SUBTYPE_MODE_KEYBOARD = "keyboard";
public static final String SUBTYPE_MODE_VOICE = "voice";
private static final String TAG = "InputMethodUtils";
@@ -108,7 +109,7 @@
return containsSubtypeOf(imi, ENGLISH_LOCALE.getLanguage(), SUBTYPE_MODE_KEYBOARD);
}
- private static boolean isSystemAuxilialyImeThatHashAutomaticSubtype(InputMethodInfo imi) {
+ private static boolean isSystemAuxilialyImeThatHasAutomaticSubtype(InputMethodInfo imi) {
if (!isSystemIme(imi)) {
return false;
}
@@ -127,23 +128,38 @@
public static ArrayList<InputMethodInfo> getDefaultEnabledImes(
Context context, boolean isSystemReady, ArrayList<InputMethodInfo> imis) {
- final ArrayList<InputMethodInfo> retval = new ArrayList<InputMethodInfo>();
+ if (!isSystemReady) {
+ final ArrayList<InputMethodInfo> retval = new ArrayList<>();
+ for (int i = 0; i < imis.size(); ++i) {
+ final InputMethodInfo imi = imis.get(i);
+ if (isSystemImeThatHasEnglishKeyboardSubtype(imi)) {
+ retval.add(imi);
+ }
+ }
+ return retval;
+ }
+
+ final ArrayList<InputMethodInfo> retval = new ArrayList<>();
boolean auxilialyImeAdded = false;
for (int i = 0; i < imis.size(); ++i) {
final InputMethodInfo imi = imis.get(i);
- if (isDefaultEnabledIme(isSystemReady, imi, context)) {
+ // TODO: We should check isAsciiCapable instead of relying on
+ // isSystemImeThatHasEnglishKeyboardSubtype().
+ if (isValidSystemDefaultIme(isSystemReady, imi, context)
+ || isSystemImeThatHasEnglishKeyboardSubtype(imi)) {
retval.add(imi);
if (imi.isAuxiliaryIme()) {
auxilialyImeAdded = true;
}
}
}
+ // If one or more auxiliary input methods are available, OK to stop populating the list.
if (auxilialyImeAdded) {
return retval;
}
for (int i = 0; i < imis.size(); ++i) {
final InputMethodInfo imi = imis.get(i);
- if (isSystemAuxilialyImeThatHashAutomaticSubtype(imi)) {
+ if (isSystemAuxilialyImeThatHasAutomaticSubtype(imi)) {
retval.add(imi);
}
}
@@ -163,7 +179,7 @@
try {
if (imi.isDefault(context) && containsSubtypeOf(
imi, context.getResources().getConfiguration().locale.getLanguage(),
- null /* mode */)) {
+ SUBTYPE_MODE_ANY)) {
return true;
}
} catch (Resources.NotFoundException ex) {
@@ -175,22 +191,17 @@
return false;
}
- public static boolean isDefaultEnabledIme(
- boolean isSystemReady, InputMethodInfo imi, Context context) {
- return isValidSystemDefaultIme(isSystemReady, imi, context)
- || isSystemImeThatHasEnglishKeyboardSubtype(imi);
- }
-
public static boolean containsSubtypeOf(InputMethodInfo imi, String language, String mode) {
final int N = imi.getSubtypeCount();
for (int i = 0; i < N; ++i) {
- if (!imi.getSubtypeAt(i).getLocale().startsWith(language)) {
+ final InputMethodSubtype subtype = imi.getSubtypeAt(i);
+ if (!subtype.getLocale().startsWith(language)) {
continue;
}
- if(!TextUtils.isEmpty(mode) && !imi.getSubtypeAt(i).getMode().equalsIgnoreCase(mode)) {
- continue;
+ if (mode == SUBTYPE_MODE_ANY || TextUtils.isEmpty(mode) ||
+ mode.equalsIgnoreCase(subtype.getMode())) {
+ return true;
}
- return true;
}
return false;
}
@@ -217,27 +228,26 @@
return subtypes;
}
- public static InputMethodInfo getMostApplicableDefaultIME(
- List<InputMethodInfo> enabledImes) {
- if (enabledImes != null && enabledImes.size() > 0) {
- // We'd prefer to fall back on a system IME, since that is safer.
- int i = enabledImes.size();
- int firstFoundSystemIme = -1;
- while (i > 0) {
- i--;
- final InputMethodInfo imi = enabledImes.get(i);
- if (InputMethodUtils.isSystemImeThatHasEnglishKeyboardSubtype(imi)
- && !imi.isAuxiliaryIme()) {
- return imi;
- }
- if (firstFoundSystemIme < 0 && InputMethodUtils.isSystemIme(imi)
- && !imi.isAuxiliaryIme()) {
- firstFoundSystemIme = i;
- }
- }
- return enabledImes.get(Math.max(firstFoundSystemIme, 0));
+ public static InputMethodInfo getMostApplicableDefaultIME(List<InputMethodInfo> enabledImes) {
+ if (enabledImes == null || enabledImes.isEmpty()) {
+ return null;
}
- return null;
+ // We'd prefer to fall back on a system IME, since that is safer.
+ int i = enabledImes.size();
+ int firstFoundSystemIme = -1;
+ while (i > 0) {
+ i--;
+ final InputMethodInfo imi = enabledImes.get(i);
+ if (InputMethodUtils.isSystemImeThatHasEnglishKeyboardSubtype(imi)
+ && !imi.isAuxiliaryIme()) {
+ return imi;
+ }
+ if (firstFoundSystemIme < 0 && InputMethodUtils.isSystemIme(imi)
+ && !imi.isAuxiliaryIme()) {
+ firstFoundSystemIme = i;
+ }
+ }
+ return enabledImes.get(Math.max(firstFoundSystemIme, 0));
}
public static boolean isValidSubtypeId(InputMethodInfo imi, int subtypeHashCode) {
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 45a9dde..81705be 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -237,6 +237,9 @@
String mStartPlatformVersion;
String mEndPlatformVersion;
+ long mLastRecordedClockTime;
+ long mLastRecordedClockRealtime;
+
long mUptime;
long mUptimeStart;
long mRealtime;
@@ -2271,6 +2274,8 @@
if (dataSize == 0) {
// The history is currently empty; we need it to start with a time stamp.
cur.currentTime = System.currentTimeMillis();
+ mLastRecordedClockTime = cur.currentTime;
+ mLastRecordedClockRealtime = elapsedRealtimeMs;
addHistoryBufferLocked(elapsedRealtimeMs, uptimeMs, HistoryItem.CMD_RESET, cur);
}
addHistoryBufferLocked(elapsedRealtimeMs, uptimeMs, HistoryItem.CMD_UPDATE, cur);
@@ -2439,6 +2444,8 @@
mNumHistoryTagChars = 0;
mHistoryBufferLastPos = -1;
mHistoryOverflow = false;
+ mLastRecordedClockTime = 0;
+ mLastRecordedClockRealtime = 0;
}
public void updateTimeBasesLocked(boolean unplugged, boolean screenOff, long uptime,
@@ -2498,6 +2505,18 @@
final long currentTime = System.currentTimeMillis();
final long elapsedRealtime = SystemClock.elapsedRealtime();
final long uptime = SystemClock.uptimeMillis();
+ if (isStartClockTimeValid()) {
+ // Has the time changed sufficiently that it is really worth recording?
+ if (mLastRecordedClockTime != 0) {
+ long expectedClockTime = mLastRecordedClockTime
+ + (elapsedRealtime - mLastRecordedClockRealtime);
+ if (currentTime >= (expectedClockTime-500)
+ && currentTime <= (expectedClockTime+500)) {
+ // Not sufficiently changed, skip!
+ return;
+ }
+ }
+ }
recordCurrentTimeChangeLocked(currentTime, elapsedRealtime, uptime);
if (isStartClockTimeValid()) {
mStartClockTime = currentTime;
@@ -6821,6 +6840,8 @@
boolean reset) {
mRecordingHistory = true;
mHistoryCur.currentTime = System.currentTimeMillis();
+ mLastRecordedClockTime = mHistoryCur.currentTime;
+ mLastRecordedClockRealtime = elapsedRealtimeMs;
addHistoryBufferLocked(elapsedRealtimeMs, uptimeMs,
reset ? HistoryItem.CMD_RESET : HistoryItem.CMD_CURRENT_TIME,
mHistoryCur);
@@ -6834,6 +6855,8 @@
final long uptimeMs) {
if (mRecordingHistory) {
mHistoryCur.currentTime = currentTime;
+ mLastRecordedClockTime = currentTime;
+ mLastRecordedClockRealtime = elapsedRealtimeMs;
addHistoryBufferLocked(elapsedRealtimeMs, uptimeMs, HistoryItem.CMD_CURRENT_TIME,
mHistoryCur);
mHistoryCur.currentTime = 0;
diff --git a/core/java/com/android/internal/os/TransferPipe.java b/core/java/com/android/internal/os/TransferPipe.java
index 068d914..e76b395 100644
--- a/core/java/com/android/internal/os/TransferPipe.java
+++ b/core/java/com/android/internal/os/TransferPipe.java
@@ -174,15 +174,27 @@
}
public void kill() {
- closeFd(0);
- closeFd(1);
+ synchronized (this) {
+ closeFd(0);
+ closeFd(1);
+ }
}
@Override
public void run() {
final byte[] buffer = new byte[1024];
- final FileInputStream fis = new FileInputStream(getReadFd().getFileDescriptor());
- final FileOutputStream fos = new FileOutputStream(mOutFd);
+ final FileInputStream fis;
+ final FileOutputStream fos;
+
+ synchronized (this) {
+ ParcelFileDescriptor readFd = getReadFd();
+ if (readFd == null) {
+ Slog.w(TAG, "Pipe has been closed...");
+ return;
+ }
+ fis = new FileInputStream(readFd.getFileDescriptor());
+ fos = new FileOutputStream(mOutFd);
+ }
if (DEBUG) Slog.i(TAG, "Ready to read pipe...");
byte[] bufferPrefix = null;
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
index c84708e0..f25cf9b 100644
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
@@ -35,7 +35,7 @@
import android.os.storage.IMountService;
import android.os.storage.StorageManager;
import android.provider.Settings;
-import android.telecomm.TelecommManager;
+import android.telecom.TelecomManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.IWindowManager;
@@ -1477,8 +1477,8 @@
return getTelecommManager().isInCall();
}
- private TelecommManager getTelecommManager() {
- return (TelecommManager) mContext.getSystemService(Context.TELECOMM_SERVICE);
+ private TelecomManager getTelecommManager() {
+ return (TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);
}
private void finishBiometricWeak() {
diff --git a/core/res/res/values-television/dimens.xml b/core/res/res/values-television/dimens.xml
index 69c3da5..4c25225 100644
--- a/core/res/res/values-television/dimens.xml
+++ b/core/res/res/values-television/dimens.xml
@@ -17,7 +17,7 @@
<!-- Lighting and shadow properties -->
<dimen name="light_y">-400dp</dimen>
- <item type="dimen" format="float" name="ambient_shadow_alpha">0.06</item>
+ <item type="dimen" format="float" name="ambient_shadow_alpha">0.15</item>
<item type="dimen" format="float" name="spot_shadow_alpha">0.3</item>
</resources>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 3907fc5..5c0e5cf 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -339,6 +339,42 @@
capability can provide power savings when wifi needs to be always kept on. -->
<bool translatable="false" name="config_wifi_background_scan_support">false</bool>
+ <!-- Boolean indicating we re-try re-associating once upon disconnection and RSSI is high failure -->
+ <bool translatable="true" name="config_wifi_enable_disconnection_debounce">true</bool>
+
+ <!-- Boolean indicating autojoin will prefer 5GHz and choose 5GHz BSSIDs -->
+ <bool translatable="true" name="config_wifi_enable_5GHz_preference">true</bool>
+
+ <!-- Integer specifying the basic autojoin parameters -->
+ <integer translatable="false" name="config_wifi_framework_5GHz_preference_boost_threshold">-65</integer>
+ <integer translatable="false" name="config_wifi_framework_5GHz_preference_boost_factor">5</integer>
+ <integer translatable="false" name="config_wifi_framework_current_association_hysteresis_high">16</integer>
+ <integer translatable="false" name="config_wifi_framework_current_association_hysteresis_low">10</integer>
+ <integer translatable="false" name="config_wifi_framework_5GHz_preference_penalty_threshold">-75</integer>
+ <integer translatable="false" name="config_wifi_framework_5GHz_preference_penalty_factor">2</integer>
+
+ <!-- Integer parameters of the wifi to cellular handover feature
+ wifi should not stick to bad networks -->
+ <integer translatable="false" name="config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz">-60</integer>
+ <integer translatable="false" name="config_wifi_framework_wifi_score_low_rssi_threshold_5GHz">-72</integer>
+ <integer translatable="false" name="config_wifi_framework_wifi_score_good_rssi_threshold_5GHz">-82</integer>
+ <integer translatable="false" name="config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz">-87</integer>
+ <integer translatable="false" name="config_wifi_framework_wifi_score_low_rssi_threshold_24GHz">-77</integer>
+ <integer translatable="false" name="config_wifi_framework_wifi_score_good_rssi_threshold_24GHz">-65</integer>
+ <integer translatable="false" name="config_wifi_framework_wifi_score_bad_link_speed_24">6</integer>
+ <integer translatable="false" name="config_wifi_framework_wifi_score_bad_link_speed_5">12</integer>
+ <integer translatable="false" name="config_wifi_framework_wifi_score_good_link_speed_24">24</integer>
+ <integer translatable="false" name="config_wifi_framework_wifi_score_good_link_speed_5">36</integer>
+ <bool translatable="false" name="config_wifi_framework_cellular_handover_enable_user_triggered_adjustment">true</bool>
+
+ <!-- Integer packet threshold used to allow scan while associated -->
+ <integer translatable="false" name="config_wifi_framework_associated_full_scan_tx_packet_threshold">5</integer>
+ <integer translatable="false" name="config_wifi_framework_associated_full_scan_rx_packet_threshold">10</integer>
+ <integer translatable="false" name="config_wifi_framework_associated_partial_scan_tx_packet_threshold">40</integer>
+ <integer translatable="false" name="config_wifi_framework_associated_partial_scan_rx_packet_threshold">80</integer>
+ <integer translatable="false" name="config_wifi_framework_network_switch_tx_packet_threshold">2</integer>
+ <integer translatable="false" name="config_wifi_framework_network_switch_rx_packet_threshold">20</integer>
+
<!-- Integer indicating wpa_supplicant scan interval in milliseconds -->
<integer translatable="false" name="config_wifi_supplicant_scan_interval">15000</integer>
@@ -351,9 +387,24 @@
point on the move. A value of 0 means no periodic scans will be used in the framework. -->
<integer translatable="false" name="config_wifi_framework_scan_interval">300000</integer>
- <!-- Integer indicating associated scan interval in milliseconds -->
+ <!-- Integer indicating associated partial scan interval in milliseconds -->
<integer translatable="false" name="config_wifi_framework_associated_scan_interval">10000</integer>
+ <!-- Integer indicating associated full scan backoff, representing a fraction: xx/8 -->
+ <integer translatable="false" name="config_wifi_framework_associated_full_scan_backoff">12</integer>
+
+ <!-- Integer indicating associated full scan max interval in milliseconds -->
+ <integer translatable="false" name="config_wifi_framework_associated_full_scan_max_interval">300000</integer>
+
+ <!-- Integer indicating associated full scan max total dwell time in milliseconds -->
+ <integer translatable="false" name="config_wifi_framework_associated_full_scan_max_total_dwell_time">500</integer>
+
+ <!-- Integer indicating associated full scan max num active channels -->
+ <integer translatable="false" name="config_wifi_framework_associated_partial_scan_max_num_active_channels">6</integer>
+
+ <!-- Integer indicating associated full scan max num passive channels -->
+ <integer translatable="false" name="config_wifi_framework_associated_partial_scan_max_num_passive_channels">3</integer>
+
<!-- Boolean indicating associated scan are allowed -->
<bool translatable="false" name="config_wifi_framework_enable_associated_autojoin_scan">true</bool>
@@ -1250,6 +1301,10 @@
Doze dreams will run whenever the power manager is in a dozing state. -->
<string name="config_dozeComponent"></string>
+ <!-- If true, the doze component is not started until after the screen has been
+ turned off and the screen off animation has been performed. -->
+ <bool name="config_dozeAfterScreenOff">false</bool>
+
<!-- Power Management: Specifies whether to decouple the auto-suspend state of the
device from the display on/off state.
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 77b451f..7a2bbc1 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -412,7 +412,7 @@
<dimen name="light_y">-200dp</dimen>
<dimen name="light_z">800dp</dimen>
<dimen name="light_radius">800dp</dimen>
- <item type="dimen" format="float" name="ambient_shadow_alpha">0.06</item>
- <item type="dimen" format="float" name="spot_shadow_alpha">0.16</item>
+ <item type="dimen" format="float" name="ambient_shadow_alpha">0.047</item>
+ <item type="dimen" format="float" name="spot_shadow_alpha">0.098</item>
</resources>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 99918a0..4bc1ff3 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2103,8 +2103,6 @@
=============================================================== -->
<eat-comment />
- <public-padding type="attr" name="l_resource_pad" end="0x1010410" />
-
<public type="attr" name="fastScrollStyle" />
<public type="attr" name="windowContentTransitions" />
<public type="attr" name="windowContentTransitionManager" />
@@ -2248,7 +2246,6 @@
<public type="attr" name="timePickerDialogTheme" />
<public type="attr" name="headerTimeTextAppearance" />
<public type="attr" name="headerAmPmTextAppearance" />
- <public type="attr" name="__removed2" />
<public type="attr" name="numbersTextColor" />
<public type="attr" name="numbersBackgroundColor" />
<public type="attr" name="numbersSelectorColor" />
@@ -2295,43 +2292,49 @@
<public type="attr" name="fillAlpha" />
<public type="attr" name="windowActivityTransitions" />
- <public-padding type="dimen" name="l_resource_pad" end="0x01050010" />
-
- <public-padding type="id" name="l_resource_pad" end="0x01020040" />
-
<public type="id" name="mask" />
<public type="id" name="statusBarBackground" />
<public type="id" name="navigationBarBackground" />
- <public-padding type="style" name="l_resource_pad" end="0x01030200" />
-
<public type="style" name="Widget.FastScroll" />
<public type="style" name="Widget.StackView" />
<public type="style" name="Widget.Toolbar" />
<public type="style" name="Widget.Toolbar.Button.Navigation" />
- <public type="style" name="__removed3" />
- <public type="style" name="__removed4" />
- <public type="style" name="__removed5" />
- <public type="style" name="__removed6" />
- <public type="style" name="__removed7" />
-
<public type="style" name="Widget.DeviceDefault.FastScroll" />
<public type="style" name="Widget.DeviceDefault.StackView" />
<public type="style" name="Widget.DeviceDefault.Light.FastScroll" />
<public type="style" name="Widget.DeviceDefault.Light.StackView" />
<public type="style" name="TextAppearance.Material" />
+ <public type="style" name="TextAppearance.Material.Button" />
+ <public type="style" name="TextAppearance.Material.Body2" />
+ <public type="style" name="TextAppearance.Material.Body1" />
+ <public type="style" name="TextAppearance.Material.Caption" />
<public type="style" name="TextAppearance.Material.DialogWindowTitle" />
+ <public type="style" name="TextAppearance.Material.Display4" />
+ <public type="style" name="TextAppearance.Material.Display3" />
+ <public type="style" name="TextAppearance.Material.Display2" />
+ <public type="style" name="TextAppearance.Material.Display1" />
+ <public type="style" name="TextAppearance.Material.Headline" />
<public type="style" name="TextAppearance.Material.Inverse" />
<public type="style" name="TextAppearance.Material.Large" />
<public type="style" name="TextAppearance.Material.Large.Inverse" />
<public type="style" name="TextAppearance.Material.Medium" />
<public type="style" name="TextAppearance.Material.Medium.Inverse" />
+ <public type="style" name="TextAppearance.Material.Menu" />
+ <public type="style" name="TextAppearance.Material.Notification" />
+ <public type="style" name="TextAppearance.Material.Notification.Emphasis" />
+ <public type="style" name="TextAppearance.Material.Notification.Info" />
+ <public type="style" name="TextAppearance.Material.Notification.Line2" />
+ <public type="style" name="TextAppearance.Material.Notification.Time" />
+ <public type="style" name="TextAppearance.Material.Notification.Title" />
<public type="style" name="TextAppearance.Material.SearchResult.Subtitle" />
<public type="style" name="TextAppearance.Material.SearchResult.Title" />
<public type="style" name="TextAppearance.Material.Small" />
<public type="style" name="TextAppearance.Material.Small.Inverse" />
+ <public type="style" name="TextAppearance.Material.Subhead" />
+ <public type="style" name="TextAppearance.Material.Title" />
<public type="style" name="TextAppearance.Material.WindowTitle" />
<public type="style" name="TextAppearance.Material.Widget" />
@@ -2356,14 +2359,18 @@
<public type="style" name="TextAppearance.Material.Widget.TextView" />
<public type="style" name="TextAppearance.Material.Widget.TextView.PopupMenu" />
<public type="style" name="TextAppearance.Material.Widget.TextView.SpinnerItem" />
+ <public type="style" name="TextAppearance.Material.Widget.Toolbar.Subtitle" />
+ <public type="style" name="TextAppearance.Material.Widget.Toolbar.Title" />
<public type="style" name="Theme.DeviceDefault.Settings" />
<public type="style" name="Theme.Material" />
<public type="style" name="Theme.Material.Dialog" />
+ <public type="style" name="Theme.Material.Dialog.Alert" />
<public type="style" name="Theme.Material.Dialog.MinWidth" />
<public type="style" name="Theme.Material.Dialog.NoActionBar" />
<public type="style" name="Theme.Material.Dialog.NoActionBar.MinWidth" />
+ <public type="style" name="Theme.Material.Dialog.Presentation" />
<public type="style" name="Theme.Material.DialogWhenLarge" />
<public type="style" name="Theme.Material.DialogWhenLarge.NoActionBar" />
<public type="style" name="Theme.Material.InputMethod" />
@@ -2380,9 +2387,11 @@
<public type="style" name="Theme.Material.Light" />
<public type="style" name="Theme.Material.Light.DarkActionBar" />
<public type="style" name="Theme.Material.Light.Dialog" />
+ <public type="style" name="Theme.Material.Light.Dialog.Alert" />
<public type="style" name="Theme.Material.Light.Dialog.MinWidth" />
<public type="style" name="Theme.Material.Light.Dialog.NoActionBar" />
<public type="style" name="Theme.Material.Light.Dialog.NoActionBar.MinWidth" />
+ <public type="style" name="Theme.Material.Light.Dialog.Presentation" />
<public type="style" name="Theme.Material.Light.DialogWhenLarge" />
<public type="style" name="Theme.Material.Light.DialogWhenLarge.NoActionBar" />
<public type="style" name="Theme.Material.Light.NoActionBar" />
@@ -2412,6 +2421,7 @@
<public type="style" name="Widget.Material.AutoCompleteTextView" />
<public type="style" name="Widget.Material.Button" />
<public type="style" name="Widget.Material.Button.Borderless" />
+ <public type="style" name="Widget.Material.Button.Borderless.Colored" />
<public type="style" name="Widget.Material.Button.Borderless.Small" />
<public type="style" name="Widget.Material.Button.Inset" />
<public type="style" name="Widget.Material.Button.Small" />
@@ -2448,14 +2458,17 @@
<public type="style" name="Widget.Material.RatingBar.Indicator" />
<public type="style" name="Widget.Material.RatingBar.Small" />
<public type="style" name="Widget.Material.ScrollView" />
+ <public type="style" name="Widget.Material.SearchView" />
<public type="style" name="Widget.Material.SeekBar" />
<public type="style" name="Widget.Material.SegmentedButton" />
<public type="style" name="Widget.Material.StackView" />
<public type="style" name="Widget.Material.Spinner" />
+ <public type="style" name="Widget.Material.Spinner.Underlined" />
<public type="style" name="Widget.Material.Tab" />
<public type="style" name="Widget.Material.TabWidget" />
<public type="style" name="Widget.Material.TextView" />
<public type="style" name="Widget.Material.TextView.SpinnerItem" />
+ <public type="style" name="Widget.Material.TimePicker" />
<public type="style" name="Widget.Material.Toolbar" />
<public type="style" name="Widget.Material.Toolbar.Button.Navigation" />
<public type="style" name="Widget.Material.WebTextView" />
@@ -2474,6 +2487,7 @@
<public type="style" name="Widget.Material.Light.AutoCompleteTextView" />
<public type="style" name="Widget.Material.Light.Button" />
<public type="style" name="Widget.Material.Light.Button.Borderless" />
+ <public type="style" name="Widget.Material.Light.Button.Borderless.Colored" />
<public type="style" name="Widget.Material.Light.Button.Borderless.Small" />
<public type="style" name="Widget.Material.Light.Button.Inset" />
<public type="style" name="Widget.Material.Light.Button.Small" />
@@ -2485,6 +2499,7 @@
<public type="style" name="Widget.Material.Light.CompoundButton.CheckBox" />
<public type="style" name="Widget.Material.Light.CompoundButton.RadioButton" />
<public type="style" name="Widget.Material.Light.CompoundButton.Star" />
+ <public type="style" name="Widget.Material.Light.DatePicker" />
<public type="style" name="Widget.Material.Light.DropDownItem" />
<public type="style" name="Widget.Material.Light.DropDownItem.Spinner" />
<public type="style" name="Widget.Material.Light.EditText" />
@@ -2512,70 +2527,27 @@
<public type="style" name="Widget.Material.Light.RatingBar.Indicator" />
<public type="style" name="Widget.Material.Light.RatingBar.Small" />
<public type="style" name="Widget.Material.Light.ScrollView" />
+ <public type="style" name="Widget.Material.Light.SearchView" />
<public type="style" name="Widget.Material.Light.SeekBar" />
<public type="style" name="Widget.Material.Light.SegmentedButton" />
<public type="style" name="Widget.Material.Light.StackView" />
<public type="style" name="Widget.Material.Light.Spinner" />
+ <public type="style" name="Widget.Material.Light.Spinner.Underlined" />
<public type="style" name="Widget.Material.Light.Tab" />
<public type="style" name="Widget.Material.Light.TabWidget" />
<public type="style" name="Widget.Material.Light.TextView" />
<public type="style" name="Widget.Material.Light.TextView.SpinnerItem" />
+ <public type="style" name="Widget.Material.Light.TimePicker" />
<public type="style" name="Widget.Material.Light.WebTextView" />
<public type="style" name="Widget.Material.Light.WebView" />
- <public type="style" name="TextAppearance.Material.Display4" />
- <public type="style" name="TextAppearance.Material.Display3" />
- <public type="style" name="TextAppearance.Material.Display2" />
- <public type="style" name="TextAppearance.Material.Display1" />
- <public type="style" name="TextAppearance.Material.Headline" />
- <public type="style" name="TextAppearance.Material.Title" />
- <public type="style" name="TextAppearance.Material.Subhead" />
- <public type="style" name="TextAppearance.Material.Body2" />
- <public type="style" name="TextAppearance.Material.Body1" />
- <public type="style" name="TextAppearance.Material.Caption" />
- <public type="style" name="TextAppearance.Material.Menu" />
- <public type="style" name="TextAppearance.Material.Button" />
-
- <public type="style" name="Widget.Material.Button.Borderless.Colored" />
- <public type="style" name="Widget.Material.Light.Button.Borderless.Colored" />
-
+ <!-- @hide This really shouldn't be public; clients using it should use @* to ref it. -->
<public type="style" name="Theme.Leanback.FormWizard"/>
- <public type="style" name="__removed1" />
- <public type="style" name="TextAppearance.Material.Notification" />
- <public type="style" name="TextAppearance.Material.Notification.Title" />
- <public type="style" name="TextAppearance.Material.Notification.Line2" />
- <public type="style" name="TextAppearance.Material.Notification.Info" />
- <public type="style" name="TextAppearance.Material.Notification.Time" />
- <public type="style" name="TextAppearance.Material.Notification.Emphasis" />
-
- <public type="style" name="Widget.Material.Spinner.Underlined" />
- <public type="style" name="Widget.Material.Light.Spinner.Underlined" />
-
- <public type="style" name="TextAppearance.Material.Widget.Toolbar.Title" />
- <public type="style" name="TextAppearance.Material.Widget.Toolbar.Subtitle" />
-
- <public type="style" name="Theme.Material.Dialog.Alert" />
- <public type="style" name="Theme.Material.Dialog.Presentation" />
- <public type="style" name="Theme.Material.Light.Dialog.Alert" />
- <public type="style" name="Theme.Material.Light.Dialog.Presentation" />
-
- <public type="style" name="Widget.Material.SearchView" />
- <public type="style" name="Widget.Material.Light.SearchView" />
- <public type="style" name="Widget.Material.TimePicker" />
- <public type="style" name="Widget.Material.Light.TimePicker" />
- <public type="style" name="Widget.Material.Light.DatePicker" />
-
- <public-padding type="string" name="l_resource_pad" end="0x01040030" />
-
<public type="string" name="config_webSettingsDefaultTextEncoding" />
- <public-padding type="array" name="l_resource_pad" end="0x01070020" />
-
<public type="array" name="config_keySystemUuidMapping" />
- <public-padding type="interpolator" name="l_resource_pad" end="0x010c0010" />
-
<!-- An interpolator which accelerates fast but decelerates slowly. -->
<public type="interpolator" name="fast_out_slow_in" />
<!-- An interpolator which starts with a peak non-zero velocity and decelerates slowly. -->
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 117e235..0c13bd5 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -297,6 +297,39 @@
<java-symbol type="bool" name="config_wifi_framework_enable_associated_autojoin_scan" />
<java-symbol type="bool" name="config_wifi_framework_enable_associated_network_selection" />
<java-symbol type="bool" name="config_wifi_only_link_same_credential_configurations" />
+ <java-symbol type="bool" name="config_wifi_enable_disconnection_debounce" />
+ <java-symbol type="bool" name="config_wifi_enable_5GHz_preference" />
+ <java-symbol type="integer" name="config_wifi_framework_5GHz_preference_boost_threshold" />
+ <java-symbol type="integer" name="config_wifi_framework_5GHz_preference_boost_factor" />
+ <java-symbol type="integer" name="config_wifi_framework_5GHz_preference_penalty_threshold" />
+ <java-symbol type="integer" name="config_wifi_framework_current_association_hysteresis_high" />
+ <java-symbol type="integer" name="config_wifi_framework_current_association_hysteresis_low" />
+ <java-symbol type="integer" name="config_wifi_framework_5GHz_preference_penalty_threshold" />
+ <java-symbol type="integer" name="config_wifi_framework_5GHz_preference_penalty_factor" />
+ <java-symbol type="integer" name="config_wifi_framework_associated_scan_interval" />
+ <java-symbol type="integer" name="config_wifi_framework_associated_full_scan_backoff" />
+ <java-symbol type="integer" name="config_wifi_framework_associated_full_scan_max_interval" />
+ <java-symbol type="integer" name="config_wifi_framework_associated_full_scan_max_total_dwell_time" />
+ <java-symbol type="integer" name="config_wifi_framework_associated_partial_scan_max_num_active_channels" />
+ <java-symbol type="integer" name="config_wifi_framework_associated_partial_scan_max_num_passive_channels" />
+ <java-symbol type="integer" name="config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz" />
+ <java-symbol type="integer" name="config_wifi_framework_wifi_score_low_rssi_threshold_24GHz" />
+ <java-symbol type="integer" name="config_wifi_framework_wifi_score_good_rssi_threshold_24GHz" />
+ <java-symbol type="integer" name="config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz" />
+ <java-symbol type="integer" name="config_wifi_framework_wifi_score_low_rssi_threshold_5GHz" />
+ <java-symbol type="integer" name="config_wifi_framework_wifi_score_good_rssi_threshold_5GHz" />
+ <java-symbol type="integer" name="config_wifi_framework_wifi_score_bad_link_speed_24" />
+ <java-symbol type="integer" name="config_wifi_framework_wifi_score_bad_link_speed_5" />
+ <java-symbol type="integer" name="config_wifi_framework_wifi_score_good_link_speed_24" />
+ <java-symbol type="integer" name="config_wifi_framework_wifi_score_good_link_speed_5" />
+
+ <java-symbol type="bool" name="config_wifi_framework_cellular_handover_enable_user_triggered_adjustment" />
+ <java-symbol type="integer" name="config_wifi_framework_associated_full_scan_tx_packet_threshold" />
+ <java-symbol type="integer" name="config_wifi_framework_associated_full_scan_rx_packet_threshold" />
+ <java-symbol type="integer" name="config_wifi_framework_associated_partial_scan_tx_packet_threshold" />
+ <java-symbol type="integer" name="config_wifi_framework_associated_partial_scan_rx_packet_threshold" />
+ <java-symbol type="integer" name="config_wifi_framework_network_switch_tx_packet_threshold" />
+ <java-symbol type="integer" name="config_wifi_framework_network_switch_tx_packet_threshold" />
<java-symbol type="integer" name="config_bluetooth_max_advertisers" />
<java-symbol type="integer" name="config_bluetooth_max_scan_filters" />
<java-symbol type="integer" name="config_cursorWindowSize" />
@@ -315,7 +348,6 @@
<java-symbol type="integer" name="config_shortPressOnPowerBehavior" />
<java-symbol type="integer" name="config_toastDefaultGravity" />
<java-symbol type="integer" name="config_wifi_framework_scan_interval" />
- <java-symbol type="integer" name="config_wifi_framework_associated_scan_interval" />
<java-symbol type="integer" name="config_wifi_supplicant_scan_interval" />
<java-symbol type="integer" name="config_wifi_scan_interval_p2p_connected" />
<java-symbol type="integer" name="db_connection_pool_size" />
@@ -1522,6 +1554,7 @@
<java-symbol type="bool" name="config_useAttentionLight" />
<java-symbol type="bool" name="config_animateScreenLights" />
<java-symbol type="bool" name="config_automatic_brightness_available" />
+ <java-symbol type="bool" name="config_dozeAfterScreenOff" />
<java-symbol type="bool" name="config_enableActivityRecognitionHardwareOverlay" />
<java-symbol type="bool" name="config_enableFusedLocationOverlay" />
<java-symbol type="bool" name="config_enableHardwareFlpOverlay" />
diff --git a/core/tests/inputmethodtests/src/android/os/InputMethodTest.java b/core/tests/inputmethodtests/src/android/os/InputMethodTest.java
index cb85fc5..d56c5a9 100644
--- a/core/tests/inputmethodtests/src/android/os/InputMethodTest.java
+++ b/core/tests/inputmethodtests/src/android/os/InputMethodTest.java
@@ -53,10 +53,8 @@
public void testVoiceImes() throws Exception {
// locale: en_US
assertDefaultEnabledImes(getImesWithDefaultVoiceIme(), LOCALE_EN_US, !IS_SYSTEM_READY,
- "DummyNonDefaultAutoVoiceIme0", "DummyNonDefaultAutoVoiceIme1",
- "DummyDefaultEnKeyboardIme", "DummyDefaultAutoVoiceIme");
+ "DummyDefaultEnKeyboardIme");
assertDefaultEnabledImes(getImesWithoutDefaultVoiceIme(), LOCALE_EN_US, !IS_SYSTEM_READY,
- "DummyNonDefaultAutoVoiceIme0", "DummyNonDefaultAutoVoiceIme1",
"DummyDefaultEnKeyboardIme");
assertDefaultEnabledImes(getImesWithDefaultVoiceIme(), LOCALE_EN_US, IS_SYSTEM_READY,
"DummyDefaultAutoVoiceIme", "DummyDefaultEnKeyboardIme");
@@ -66,10 +64,8 @@
// locale: en_GB
assertDefaultEnabledImes(getImesWithDefaultVoiceIme(), LOCALE_EN_GB, !IS_SYSTEM_READY,
- "DummyNonDefaultAutoVoiceIme0", "DummyNonDefaultAutoVoiceIme1",
- "DummyDefaultEnKeyboardIme", "DummyDefaultAutoVoiceIme");
+ "DummyDefaultEnKeyboardIme");
assertDefaultEnabledImes(getImesWithoutDefaultVoiceIme(), LOCALE_EN_GB, !IS_SYSTEM_READY,
- "DummyNonDefaultAutoVoiceIme0", "DummyNonDefaultAutoVoiceIme1",
"DummyDefaultEnKeyboardIme");
assertDefaultEnabledImes(getImesWithDefaultVoiceIme(), LOCALE_EN_GB, IS_SYSTEM_READY,
"DummyDefaultEnKeyboardIme", "DummyDefaultAutoVoiceIme");
@@ -79,10 +75,8 @@
// locale: ja_JP
assertDefaultEnabledImes(getImesWithDefaultVoiceIme(), LOCALE_JA_JP, !IS_SYSTEM_READY,
- "DummyNonDefaultAutoVoiceIme0", "DummyNonDefaultAutoVoiceIme1",
- "DummyDefaultEnKeyboardIme", "DummyDefaultAutoVoiceIme");
+ "DummyDefaultEnKeyboardIme");
assertDefaultEnabledImes(getImesWithoutDefaultVoiceIme(), LOCALE_JA_JP, !IS_SYSTEM_READY,
- "DummyNonDefaultAutoVoiceIme0", "DummyNonDefaultAutoVoiceIme1",
"DummyDefaultEnKeyboardIme");
assertDefaultEnabledImes(getImesWithDefaultVoiceIme(), LOCALE_JA_JP, IS_SYSTEM_READY,
"DummyNonDefaultAutoVoiceIme0", "DummyNonDefaultAutoVoiceIme1",
@@ -96,40 +90,35 @@
public void testKeyboardImes() throws Exception {
// locale: en_US
assertDefaultEnabledImes(getSamplePreinstalledImes(), LOCALE_EN_US, !IS_SYSTEM_READY,
- "com.android.apps.inputmethod.voice", "com.android.apps.inputmethod.latin",
- "com.android.apps.inputmethod.hindi");
+ "com.android.apps.inputmethod.latin", "com.android.apps.inputmethod.hindi");
assertDefaultEnabledImes(getSamplePreinstalledImes(), LOCALE_EN_US, IS_SYSTEM_READY,
"com.android.apps.inputmethod.voice", "com.android.apps.inputmethod.latin",
"com.android.apps.inputmethod.hindi");
// locale: en_GB
assertDefaultEnabledImes(getSamplePreinstalledImes(), LOCALE_EN_GB, !IS_SYSTEM_READY,
- "com.android.apps.inputmethod.voice", "com.android.apps.inputmethod.latin",
- "com.android.apps.inputmethod.hindi");
+ "com.android.apps.inputmethod.latin", "com.android.apps.inputmethod.hindi");
assertDefaultEnabledImes(getSamplePreinstalledImes(), LOCALE_EN_GB, IS_SYSTEM_READY,
"com.android.apps.inputmethod.voice", "com.android.apps.inputmethod.latin",
"com.android.apps.inputmethod.hindi");
// locale: en_IN
assertDefaultEnabledImes(getSamplePreinstalledImes(), LOCALE_EN_IN, !IS_SYSTEM_READY,
- "com.android.apps.inputmethod.voice", "com.android.apps.inputmethod.latin",
- "com.android.apps.inputmethod.hindi");
+ "com.android.apps.inputmethod.latin", "com.android.apps.inputmethod.hindi");
assertDefaultEnabledImes(getSamplePreinstalledImes(), LOCALE_EN_IN, IS_SYSTEM_READY,
"com.android.apps.inputmethod.voice", "com.android.apps.inputmethod.latin",
"com.android.apps.inputmethod.hindi");
// locale: hi
assertDefaultEnabledImes(getSamplePreinstalledImes(), LOCALE_HI, !IS_SYSTEM_READY,
- "com.android.apps.inputmethod.voice", "com.android.apps.inputmethod.latin",
- "com.android.apps.inputmethod.hindi");
+ "com.android.apps.inputmethod.latin", "com.android.apps.inputmethod.hindi");
assertDefaultEnabledImes(getSamplePreinstalledImes(), LOCALE_HI, IS_SYSTEM_READY,
"com.android.apps.inputmethod.voice", "com.android.apps.inputmethod.latin",
"com.android.apps.inputmethod.hindi");
// locale: ja_JP
assertDefaultEnabledImes(getSamplePreinstalledImes(), LOCALE_JA_JP, !IS_SYSTEM_READY,
- "com.android.apps.inputmethod.voice", "com.android.apps.inputmethod.latin",
- "com.android.apps.inputmethod.hindi");
+ "com.android.apps.inputmethod.latin", "com.android.apps.inputmethod.hindi");
assertDefaultEnabledImes(getSamplePreinstalledImes(), LOCALE_JA_JP, IS_SYSTEM_READY,
"com.android.apps.inputmethod.voice", "com.android.apps.inputmethod.latin",
"com.android.apps.inputmethod.hindi", "com.android.apps.inputmethod.japanese");
diff --git a/docs/html/preview/tv/ui/recommendations.jd b/docs/html/preview/tv/ui/recommendations.jd
index 2c78064..a2ff55c 100644
--- a/docs/html/preview/tv/ui/recommendations.jd
+++ b/docs/html/preview/tv/ui/recommendations.jd
@@ -9,7 +9,6 @@
<li><a href="#service">Create a Recommendations Service</a></li>
<li><a href="#build">Build Recommendations</a></li>
<li><a href="#run-service">Run Recommendations Service</a></li>
- <li><a href="#DesignLandscapeLayouts">Design Landscape Layouts</a></li>
</ol>
</div>
diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java
index 2916d6c..cd6297b 100644
--- a/graphics/java/android/graphics/drawable/GradientDrawable.java
+++ b/graphics/java/android/graphics/drawable/GradientDrawable.java
@@ -825,7 +825,7 @@
@Override
public int getOpacity() {
- return (mAlpha == 255 && mGradientState.mOpaqueOverBounds) ?
+ return (mAlpha == 255 && mGradientState.mOpaqueOverBounds && isOpaqueForState()) ?
PixelFormat.OPAQUE : PixelFormat.TRANSLUCENT;
}
@@ -1414,12 +1414,25 @@
return mGradientState;
}
+ private boolean isOpaqueForState() {
+ if (mGradientState.mStrokeWidth >= 0 && mStrokePaint != null
+ && !isOpaque(mStrokePaint.getColor())) {
+ return false;
+ }
+
+ if (!isOpaque(mFillPaint.getColor())) {
+ return false;
+ }
+
+ return true;
+ }
+
@Override
public void getOutline(Outline outline) {
final GradientState st = mGradientState;
final Rect bounds = getBounds();
// only report non-zero alpha if shape being drawn is opaque
- outline.setAlpha(st.mOpaqueOverShape ? (mAlpha / 255.0f) : 0.0f);
+ outline.setAlpha(st.mOpaqueOverShape && isOpaqueForState() ? (mAlpha / 255.0f) : 0.0f);
switch (st.mShape) {
case RECTANGLE:
@@ -1617,19 +1630,6 @@
mOpaqueOverBounds = false;
mOpaqueOverShape = false;
- // First test opacity of all colors
- if (mStrokeWidth > 0) {
- if (mStrokeColorStateList != null) {
- if (!mStrokeColorStateList.isOpaque()) {
- return;
- }
- }
- }
-
- if (mColorStateList != null && !mColorStateList.isOpaque()) {
- return;
- }
-
if (mColors != null) {
for (int i = 0; i < mColors.length; i++) {
if (!isOpaque(mColors[i])) {
@@ -1651,10 +1651,6 @@
&& mRadiusArray == null;
}
- private static boolean isOpaque(int color) {
- return ((color >> 24) & 0xff) == 0xff;
- }
-
public void setStroke(
int width, ColorStateList colorStateList, float dashWidth, float dashGap) {
mStrokeWidth = width;
@@ -1690,6 +1686,10 @@
}
}
+ static boolean isOpaque(int color) {
+ return ((color >> 24) & 0xff) == 0xff;
+ }
+
/**
* Creates a new themed GradientDrawable based on the specified constant state.
* <p>
diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java
index dd87699..bb6b1c9 100644
--- a/graphics/java/android/graphics/drawable/VectorDrawable.java
+++ b/graphics/java/android/graphics/drawable/VectorDrawable.java
@@ -42,7 +42,6 @@
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import org.xmlpull.v1.XmlPullParserFactory;
import java.io.IOException;
import java.util.ArrayList;
@@ -195,6 +194,7 @@
private VectorDrawableState mVectorState;
private PorterDuffColorFilter mTintFilter;
+ private ColorFilter mColorFilter;
private boolean mMutated;
@@ -216,7 +216,6 @@
}
mTintFilter = updateTintFilter(mTintFilter, state.mTint, state.mTintMode);
- state.setColorFilter(mTintFilter);
}
@Override
@@ -255,14 +254,18 @@
canvas.scale(-1.0f, 1.0f);
}
+ // Color filters always override tint filters.
+ final ColorFilter colorFilter = mColorFilter == null ? mTintFilter : mColorFilter;
+
if (!mAllowCaching) {
// AnimatedVectorDrawable
if (!mVectorState.hasTranslucentRoot()) {
- mVectorState.mVPathRenderer.draw(canvas, bounds.width(), bounds.height());
+ mVectorState.mVPathRenderer.draw(
+ canvas, bounds.width(), bounds.height(), colorFilter);
} else {
mVectorState.createCachedBitmapIfNeeded(bounds);
mVectorState.updateCachedBitmap(bounds);
- mVectorState.drawCachedBitmapWithRootAlpha(canvas);
+ mVectorState.drawCachedBitmapWithRootAlpha(canvas, colorFilter);
}
} else {
// Static Vector Drawable case.
@@ -271,7 +274,7 @@
mVectorState.updateCachedBitmap(bounds);
mVectorState.updateCacheStates();
}
- mVectorState.drawCachedBitmapWithRootAlpha(canvas);
+ mVectorState.drawCachedBitmapWithRootAlpha(canvas, colorFilter);
}
canvas.restoreToCount(saveCount);
@@ -292,18 +295,7 @@
@Override
public void setColorFilter(ColorFilter colorFilter) {
- final VectorDrawableState state = mVectorState;
- if (colorFilter != null) {
- // Color filter overrides tint.
- mTintFilter = null;
- } else if (state.mTint != null && state.mTintMode != null) {
- // Restore the tint filter, if we need one.
- final int color = state.mTint.getColorForState(getState(), Color.TRANSPARENT);
- mTintFilter = new PorterDuffColorFilter(color, state.mTintMode);
- colorFilter = mTintFilter;
- }
-
- state.setColorFilter(colorFilter);
+ mColorFilter = colorFilter;
invalidateSelf();
}
@@ -313,7 +305,6 @@
if (state.mTint != tint) {
state.mTint = tint;
mTintFilter = updateTintFilter(mTintFilter, tint, state.mTintMode);
- state.setColorFilter(mTintFilter);
invalidateSelf();
}
}
@@ -324,7 +315,6 @@
if (state.mTintMode != tintMode) {
state.mTintMode = tintMode;
mTintFilter = updateTintFilter(mTintFilter, state.mTint, tintMode);
- state.setColorFilter(mTintFilter);
invalidateSelf();
}
}
@@ -340,7 +330,6 @@
final VectorDrawableState state = mVectorState;
if (state.mTint != null && state.mTintMode != null) {
mTintFilter = updateTintFilter(mTintFilter, state.mTint, state.mTintMode);
- state.setColorFilter(mTintFilter);
invalidateSelf();
return true;
}
@@ -384,7 +373,6 @@
}
mTintFilter = updateTintFilter(mTintFilter, state.mTint, state.mTintMode);
- state.setColorFilter(mTintFilter);
}
final VPathRenderer path = state.mVPathRenderer;
@@ -464,7 +452,6 @@
inflateInternal(res, parser, attrs, theme);
mTintFilter = updateTintFilter(mTintFilter, state.mTint, state.mTintMode);
- state.setColorFilter(mTintFilter);
}
private void updateStateFromTypedArray(TypedArray a) throws XmlPullParserException {
@@ -657,6 +644,9 @@
boolean mCachedAutoMirrored;
boolean mCacheDirty;
+ /** Temporary paint object used to draw cached bitmaps. */
+ Paint mTempPaint;
+
// Deep copy for mutate() or implicitly mutate.
public VectorDrawableState(VectorDrawableState copy) {
if (copy != null) {
@@ -669,20 +659,16 @@
if (copy.mVPathRenderer.mStrokePaint != null) {
mVPathRenderer.mStrokePaint = new Paint(copy.mVPathRenderer.mStrokePaint);
}
- if (copy.mVPathRenderer.mColorFilter != null) {
- mVPathRenderer.mColorFilter = copy.mVPathRenderer.mColorFilter;
- }
mTint = copy.mTint;
mTintMode = copy.mTintMode;
mAutoMirrored = copy.mAutoMirrored;
}
}
- // TODO: Support colorFilter here.
- public void drawCachedBitmapWithRootAlpha(Canvas canvas) {
- Paint alphaPaint = getRootAlphaPaint();
+ public void drawCachedBitmapWithRootAlpha(Canvas canvas, ColorFilter filter) {
// The bitmap's size is the same as the bounds.
- canvas.drawBitmap(mCachedBitmap, 0, 0, alphaPaint);
+ final Paint p = getPaint(filter);
+ canvas.drawBitmap(mCachedBitmap, 0, 0, p);
}
public boolean hasTranslucentRoot() {
@@ -692,20 +678,23 @@
/**
* @return null when there is no need for alpha paint.
*/
- public Paint getRootAlphaPaint() {
- Paint paint = null;
- boolean needsAlphaPaint = hasTranslucentRoot();
- if (needsAlphaPaint) {
- paint = new Paint();
- paint.setAlpha(mVPathRenderer.getRootAlpha());
+ public Paint getPaint(ColorFilter filter) {
+ if (!hasTranslucentRoot() && filter == null) {
+ return null;
}
- return paint;
+
+ if (mTempPaint == null) {
+ mTempPaint = new Paint();
+ }
+ mTempPaint.setAlpha(mVPathRenderer.getRootAlpha());
+ mTempPaint.setColorFilter(filter);
+ return mTempPaint;
}
public void updateCachedBitmap(Rect bounds) {
mCachedBitmap.eraseColor(Color.TRANSPARENT);
Canvas tmpCanvas = new Canvas(mCachedBitmap);
- mVPathRenderer.draw(tmpCanvas, bounds.width(), bounds.height());
+ mVPathRenderer.draw(tmpCanvas, bounds.width(), bounds.height(), null);
}
public void createCachedBitmapIfNeeded(Rect bounds) {
@@ -754,12 +743,6 @@
|| (mVPathRenderer != null && mVPathRenderer.canApplyTheme());
}
- public void setColorFilter(ColorFilter colorFilter) {
- if (mVPathRenderer != null && mVPathRenderer.setColorFilter(colorFilter)) {
- mCacheDirty = true;
- }
- }
-
public VectorDrawableState() {
mVPathRenderer = new VPathRenderer();
}
@@ -807,7 +790,6 @@
private Paint mStrokePaint;
private Paint mFillPaint;
- private ColorFilter mColorFilter;
private PathMeasure mPathMeasure;
/////////////////////////////////////////////////////
@@ -918,25 +900,8 @@
}
}
- public boolean setColorFilter(ColorFilter colorFilter) {
- if (colorFilter != mColorFilter
- || (colorFilter != null && !colorFilter.equals(mColorFilter))) {
- mColorFilter = colorFilter;
-
- if (mFillPaint != null) {
- mFillPaint.setColorFilter(colorFilter);
- }
-
- if (mStrokePaint != null) {
- mStrokePaint.setColorFilter(colorFilter);
- }
- return true;
- }
- return false;
- }
-
private void drawGroupTree(VGroup currentGroup, Matrix currentMatrix,
- Canvas canvas, int w, int h) {
+ Canvas canvas, int w, int h, ColorFilter filter) {
// Calculate current group's matrix by preConcat the parent's and
// and the current one on the top of the stack.
// Basically the Mfinal = Mviewport * M0 * M1 * M2;
@@ -951,20 +916,21 @@
if (child instanceof VGroup) {
VGroup childGroup = (VGroup) child;
drawGroupTree(childGroup, currentGroup.mStackedMatrix,
- canvas, w, h);
+ canvas, w, h, filter);
} else if (child instanceof VPath) {
VPath childPath = (VPath) child;
- drawPath(currentGroup, childPath, canvas, w, h);
+ drawPath(currentGroup, childPath, canvas, w, h, filter);
}
}
}
- public void draw(Canvas canvas, int w, int h) {
+ public void draw(Canvas canvas, int w, int h, ColorFilter filter) {
// Travese the tree in pre-order to draw.
- drawGroupTree(mRootGroup, IDENTITY_MATRIX, canvas, w, h);
+ drawGroupTree(mRootGroup, IDENTITY_MATRIX, canvas, w, h, filter);
}
- private void drawPath(VGroup vGroup, VPath vPath, Canvas canvas, int w, int h) {
+ private void drawPath(VGroup vGroup, VPath vPath, Canvas canvas, int w, int h,
+ ColorFilter filter) {
final float scaleX = w / mViewportWidth;
final float scaleY = h / mViewportHeight;
final float minScale = Math.min(scaleX, scaleY);
@@ -1008,19 +974,19 @@
if (fullPath.mFillColor != Color.TRANSPARENT) {
if (mFillPaint == null) {
mFillPaint = new Paint();
- mFillPaint.setColorFilter(mColorFilter);
mFillPaint.setStyle(Paint.Style.FILL);
mFillPaint.setAntiAlias(true);
}
- mFillPaint.setColor(applyAlpha(fullPath.mFillColor,
- fullPath.mFillAlpha));
- canvas.drawPath(mRenderPath, mFillPaint);
+
+ final Paint fillPaint = mFillPaint;
+ fillPaint.setColor(applyAlpha(fullPath.mFillColor, fullPath.mFillAlpha));
+ fillPaint.setColorFilter(filter);
+ canvas.drawPath(mRenderPath, fillPaint);
}
if (fullPath.mStrokeColor != Color.TRANSPARENT) {
if (mStrokePaint == null) {
mStrokePaint = new Paint();
- mStrokePaint.setColorFilter(mColorFilter);
mStrokePaint.setStyle(Paint.Style.STROKE);
mStrokePaint.setAntiAlias(true);
}
@@ -1035,9 +1001,8 @@
}
strokePaint.setStrokeMiter(fullPath.mStrokeMiterlimit);
-
- strokePaint.setColor(applyAlpha(fullPath.mStrokeColor,
- fullPath.mStrokeAlpha));
+ strokePaint.setColor(applyAlpha(fullPath.mStrokeColor, fullPath.mStrokeAlpha));
+ strokePaint.setColorFilter(filter);
strokePaint.setStrokeWidth(fullPath.mStrokeWidth * minScale);
canvas.drawPath(mRenderPath, strokePaint);
}
diff --git a/keystore/tests/src/android/security/KeyStoreTest.java b/keystore/tests/src/android/security/KeyStoreTest.java
index 7a142cc..c3cba2b 100644
--- a/keystore/tests/src/android/security/KeyStoreTest.java
+++ b/keystore/tests/src/android/security/KeyStoreTest.java
@@ -53,7 +53,8 @@
private static final byte[] TEST_I18N_VALUE = TEST_I18N_KEY.getBytes(StandardCharsets.UTF_8);
// Test vector data for signatures
- private static final byte[] TEST_DATA = new byte[256];
+ private static final int RSA_KEY_SIZE = 1024;
+ private static final byte[] TEST_DATA = new byte[RSA_KEY_SIZE / 8];
static {
for (int i = 0; i < TEST_DATA.length; i++) {
TEST_DATA[i] = (byte) i;
@@ -349,7 +350,7 @@
public void testGenerate_NotInitialized_Fail() throws Exception {
assertFalse("Should fail when keystore is not initialized",
mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
}
public void testGenerate_Locked_Fail() throws Exception {
@@ -357,7 +358,7 @@
mKeyStore.lock();
assertFalse("Should fail when keystore is locked",
mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
}
public void testGenerate_Success() throws Exception {
@@ -365,7 +366,7 @@
assertTrue("Should be able to generate key when unlocked",
mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertTrue(mKeyStore.contains(TEST_KEYNAME));
assertFalse(mKeyStore.contains(TEST_KEYNAME, Process.WIFI_UID));
}
@@ -375,7 +376,7 @@
assertTrue("Should be able to generate key when unlocked",
mKeyStore.generate(TEST_KEYNAME, Process.WIFI_UID, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertTrue(mKeyStore.contains(TEST_KEYNAME, Process.WIFI_UID));
assertFalse(mKeyStore.contains(TEST_KEYNAME));
}
@@ -384,7 +385,7 @@
assertTrue(mKeyStore.password(TEST_PASSWD));
assertFalse(mKeyStore.generate(TEST_KEYNAME, Process.BLUETOOTH_UID,
- NativeCrypto.EVP_PKEY_RSA, 1024, KeyStore.FLAG_ENCRYPTED, null));
+ NativeCrypto.EVP_PKEY_RSA, RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertFalse(mKeyStore.contains(TEST_KEYNAME, Process.BLUETOOTH_UID));
assertFalse(mKeyStore.contains(TEST_KEYNAME, Process.WIFI_UID));
assertFalse(mKeyStore.contains(TEST_KEYNAME));
@@ -431,7 +432,7 @@
mKeyStore.password(TEST_PASSWD);
assertTrue(mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertTrue(mKeyStore.contains(TEST_KEYNAME));
final byte[] signature = mKeyStore.sign(TEST_KEYNAME, TEST_DATA);
@@ -442,7 +443,7 @@
mKeyStore.password(TEST_PASSWD);
assertTrue(mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertTrue(mKeyStore.contains(TEST_KEYNAME));
final byte[] signature = mKeyStore.sign(TEST_KEYNAME, TEST_DATA);
@@ -470,7 +471,7 @@
assertTrue("Should be able to generate key for testcase",
mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertTrue("Should be able to grant key to other user",
mKeyStore.grant(TEST_KEYNAME, 0));
@@ -504,7 +505,7 @@
assertTrue("Should be able to generate key for testcase",
mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertTrue("Should be able to grant key to other user",
mKeyStore.grant(TEST_KEYNAME, 0));
@@ -538,7 +539,7 @@
assertTrue("Should be able to generate key for testcase",
mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertFalse("Should not be able to revoke not existent grant",
mKeyStore.ungrant(TEST_KEYNAME, 0));
@@ -550,7 +551,7 @@
assertTrue("Should be able to generate key for testcase",
mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertTrue("Should be able to grant key to other user",
mKeyStore.grant(TEST_KEYNAME, 0));
@@ -568,7 +569,7 @@
assertTrue("Should be able to generate key for testcase",
mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertTrue("Should be able to grant key to other user",
mKeyStore.grant(TEST_KEYNAME, 0));
@@ -589,7 +590,7 @@
assertFalse(mKeyStore.contains(TEST_KEYNAME));
assertTrue(mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertTrue(mKeyStore.contains(TEST_KEYNAME));
assertFalse(mKeyStore.contains(TEST_KEYNAME, Process.WIFI_UID));
@@ -628,7 +629,7 @@
assertFalse(mKeyStore.contains(TEST_KEYNAME));
assertTrue(mKeyStore.generate(TEST_KEYNAME, KeyStore.UID_SELF, NativeCrypto.EVP_PKEY_RSA,
- 1024, KeyStore.FLAG_ENCRYPTED, null));
+ RSA_KEY_SIZE, KeyStore.FLAG_ENCRYPTED, null));
assertTrue(mKeyStore.contains(TEST_KEYNAME));
assertFalse(mKeyStore.contains(TEST_KEYNAME, Process.BLUETOOTH_UID));
diff --git a/libs/hwui/Animator.cpp b/libs/hwui/Animator.cpp
index 4f3a573..8bf2107 100644
--- a/libs/hwui/Animator.cpp
+++ b/libs/hwui/Animator.cpp
@@ -41,7 +41,8 @@
, mHasStartValue(false)
, mStartTime(0)
, mDuration(300)
- , mStartDelay(0) {
+ , mStartDelay(0)
+ , mMayRunAsync(true) {
}
BaseRenderNodeAnimator::~BaseRenderNodeAnimator() {
diff --git a/libs/hwui/ShadowTessellator.cpp b/libs/hwui/ShadowTessellator.cpp
index c1ffa0a..35cc7a4 100644
--- a/libs/hwui/ShadowTessellator.cpp
+++ b/libs/hwui/ShadowTessellator.cpp
@@ -37,7 +37,7 @@
// A bunch of parameters to tweak the shadow.
// TODO: Allow some of these changable by debug settings or APIs.
- float heightFactor = 1.0f / 128;
+ float heightFactor = 1.0f / 86;
const float geomFactor = 64;
Caches& caches = Caches::getInstance();
diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java
index d7ede34..56fa546 100644
--- a/media/java/android/media/AudioAttributes.java
+++ b/media/java/android/media/AudioAttributes.java
@@ -33,7 +33,35 @@
/**
* A class to encapsulate a collection of attributes describing information about an audio
- * player or recorder.
+ * stream.
+ * <p><code>AudioAttributes</code> supersede the notion of stream types (see for instance
+ * {@link AudioManager#STREAM_MUSIC} or {@link AudioManager#STREAM_ALARM}) for defining the
+ * behavior of audio playback. Attributes allow an application to specify more information than is
+ * conveyed in a stream type by allowing the application to define:
+ * <ul>
+ * <li>usage: "why" you are playing a sound, what is this sound used for. This is achieved with
+ * the "usage" information. Examples of usage are {@link #USAGE_MEDIA} and {@link #USAGE_ALARM}.
+ * These two examples are the closest to stream types, but more detailed use cases are
+ * available. Usage information is more expressive than a stream type, and allows certain
+ * platforms or routing policies to use this information for more refined volume or routing
+ * decisions. Usage is the most important information to supply in <code>AudioAttributes</code>
+ * and it is recommended to build any instance with this information supplied, see
+ * {@link AudioAttributes.Builder} for exceptions.</li>
+ * <li>content type: "what" you are playing. The content type expresses the general category of
+ * the content. This information is optional. But in case it is known (for instance
+ * {@link #CONTENT_TYPE_MOVIE} for a movie streaming service or {@link #CONTENT_TYPE_MUSIC} for
+ * a music playback application) this information might be used by the audio framework to
+ * selectively configure some audio post-processing blocks.</li>
+ * <li>flags: "how" is playback to be affected, see the flag definitions for the specific playback
+ * behaviors they control. </li>
+ * </ul>
+ * <p><code>AudioAttributes</code> are used for example in one of the {@link AudioTrack}
+ * constructors (see {@link AudioTrack#AudioTrack(AudioAttributes, AudioFormat, int, int, int)}),
+ * to configure a {@link MediaPlayer}
+ * (see {@link MediaPlayer#setAudioAttributes(AudioAttributes)} or a
+ * {@link android.app.Notification} (see {@link android.app.Notification#audioAttributes}). An
+ * <code>AudioAttributes</code> instance is built through its builder,
+ * {@link AudioAttributes.Builder}.
*/
public final class AudioAttributes implements Parcelable {
private final static String TAG = "AudioAttributes";
@@ -237,6 +265,22 @@
/**
* Builder class for {@link AudioAttributes} objects.
+ * <p> Here is an example where <code>Builder</code> is used to define the
+ * {@link AudioAttributes} to be used by a new <code>AudioTrack</code> instance:
+ *
+ * <pre class="prettyprint">
+ * AudioTrack myTrack = new AudioTrack(
+ * new AudioAttributes.Builder()
+ * .setUsage(AudioAttributes.USAGE_MEDIA)
+ * .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ * .build(),
+ * myFormat, myBuffSize, AudioTrack.MODE_STREAM, mySession);
+ * </pre>
+ *
+ * <p>By default all types of information (usage, content type, flags) conveyed by an
+ * <code>AudioAttributes</code> instance are set to "unknown". Unknown information will be
+ * interpreted as a default value that is dependent on the context of use, for instance a
+ * {@link MediaPlayer} will use a default usage of {@link AudioAttributes#USAGE_MEDIA}.
*/
public static class Builder {
private int mUsage = USAGE_UNKNOWN;
@@ -247,6 +291,11 @@
/**
* Constructs a new Builder with the defaults.
+ * By default, usage and content type are respectively {@link AudioAttributes#USAGE_UNKNOWN}
+ * and {@link AudioAttributes#CONTENT_TYPE_UNKNOWN}, and flags are 0. It is recommended to
+ * configure the usage (with {@link #setUsage(int)}) or deriving attributes from a legacy
+ * stream type (with {@link #setLegacyStreamType(int)}) before calling {@link #build()}
+ * to override any default playback behavior in terms of routing and volume management.
*/
public Builder() {
}
@@ -373,7 +422,9 @@
}
/**
- * Adds attributes inferred from the legacy stream types.
+ * Sets attributes as inferred from the legacy stream types.
+ * Use this method when building an {@link AudioAttributes} instance to initialize some of
+ * the attributes by information derived from a legacy stream type.
* @param streamType one of {@link AudioManager#STREAM_VOICE_CALL},
* {@link AudioManager#STREAM_SYSTEM}, {@link AudioManager#STREAM_RING},
* {@link AudioManager#STREAM_MUSIC}, {@link AudioManager#STREAM_ALARM},
@@ -432,7 +483,6 @@
/**
* @hide
- * CANDIDATE FOR PUBLIC API
* Sets the capture preset.
* Use this audio attributes configuration method when building an {@link AudioRecord}
* instance with {@link AudioRecord#AudioRecord(AudioAttributes, AudioFormat, int)}.
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index 6c9fb9a..86c4d02 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -25,7 +25,6 @@
import android.app.ActivityManagerNative;
import android.app.AppOpsManager;
import android.app.KeyguardManager;
-import android.app.PendingIntent;
import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothClass;
@@ -68,7 +67,7 @@
import android.os.Vibrator;
import android.provider.Settings;
import android.provider.Settings.System;
-import android.telecomm.TelecommManager;
+import android.telecom.TelecomManager;
import android.text.TextUtils;
import android.util.Log;
import android.util.MathUtils;
@@ -2939,9 +2938,9 @@
private boolean isInCommunication() {
boolean IsInCall = false;
- TelecommManager telecommManager =
- (TelecommManager) mContext.getSystemService(Context.TELECOMM_SERVICE);
- IsInCall = telecommManager.isInCall();
+ TelecomManager telecomManager =
+ (TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);
+ IsInCall = telecomManager.isInCall();
return (IsInCall || getMode() == AudioManager.MODE_IN_COMMUNICATION);
}
diff --git a/media/java/android/media/tv/TvInputInfo.java b/media/java/android/media/tv/TvInputInfo.java
index 704e4a1..54ebc6a 100644
--- a/media/java/android/media/tv/TvInputInfo.java
+++ b/media/java/android/media/tv/TvInputInfo.java
@@ -120,7 +120,9 @@
// Attributes from XML meta data.
private String mSetupActivity;
private String mSettingsActivity;
+
private int mType = TYPE_TUNER;
+ private HdmiDeviceInfo mHdmiDeviceInfo;
private String mLabel;
private Uri mIconUri;
private boolean mIsConnectedToHdmiSwitch;
@@ -159,7 +161,7 @@
* ResolveInfo, and HdmiDeviceInfo.
*
* @param service The ResolveInfo returned from the package manager about this TV input service.
- * @param deviceInfo The HdmiDeviceInfo for a HDMI CEC logical device.
+ * @param hdmiDeviceInfo The HdmiDeviceInfo for a HDMI CEC logical device.
* @param parentId The ID of this TV input's parent input. {@code null} if none exists.
* @param iconUri The {@link android.net.Uri} to load the icon image. See
* {@link android.content.ContentResolver#openInputStream}. If it is {@code null},
@@ -170,12 +172,14 @@
*/
@SystemApi
public static TvInputInfo createTvInputInfo(Context context, ResolveInfo service,
- HdmiDeviceInfo deviceInfo, String parentId, String label, Uri iconUri)
+ HdmiDeviceInfo hdmiDeviceInfo, String parentId, String label, Uri iconUri)
throws XmlPullParserException, IOException {
- boolean isConnectedToHdmiSwitch = (deviceInfo.getPhysicalAddress() & 0x0FFF) != 0;
- return createTvInputInfo(context, service, generateInputIdForHdmiDevice(
+ boolean isConnectedToHdmiSwitch = (hdmiDeviceInfo.getPhysicalAddress() & 0x0FFF) != 0;
+ TvInputInfo input = createTvInputInfo(context, service, generateInputIdForHdmiDevice(
new ComponentName(service.serviceInfo.packageName, service.serviceInfo.name),
- deviceInfo), parentId, TYPE_HDMI, label, iconUri, isConnectedToHdmiSwitch);
+ hdmiDeviceInfo), parentId, TYPE_HDMI, label, iconUri, isConnectedToHdmiSwitch);
+ input.mHdmiDeviceInfo = hdmiDeviceInfo;
+ return input;
}
/**
@@ -345,15 +349,27 @@
}
/**
- * Returns the type of this TV input service.
+ * Returns the type of this TV input.
*/
public int getType() {
return mType;
}
/**
- * Returns {@code true} if this TV input is pass-though which does not have any real channels
- * in TvProvider. {@code false} otherwise.
+ * Returns the HDMI device information of this TV input.
+ * @hide
+ */
+ @SystemApi
+ public HdmiDeviceInfo getHdmiDeviceInfo() {
+ if (mType == TYPE_HDMI) {
+ return mHdmiDeviceInfo;
+ }
+ return null;
+ }
+
+ /**
+ * Returns {@code true} if this TV input is pass-though which does not have any real channels in
+ * TvProvider. {@code false} otherwise.
*
* @see TvContract#buildChannelUriForPassthroughInput(String)
*/
@@ -480,6 +496,7 @@
dest.writeString(mSetupActivity);
dest.writeString(mSettingsActivity);
dest.writeInt(mType);
+ dest.writeParcelable(mHdmiDeviceInfo, flags);
dest.writeParcelable(mIconUri, flags);
dest.writeString(mLabel);
dest.writeByte(mIsConnectedToHdmiSwitch ? (byte) 1 : 0);
@@ -552,6 +569,7 @@
mSetupActivity = in.readString();
mSettingsActivity = in.readString();
mType = in.readInt();
+ mHdmiDeviceInfo = in.readParcelable(null);
mIconUri = in.readParcelable(null);
mLabel = in.readString();
mIsConnectedToHdmiSwitch = in.readByte() == 1 ? true : false;
diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java
index 317d472..4f8facb 100644
--- a/media/java/android/media/tv/TvInputService.java
+++ b/media/java/android/media/tv/TvInputService.java
@@ -66,8 +66,7 @@
* </p>
*/
public abstract class TvInputService extends Service {
- // STOPSHIP: Turn debugging off.
- private static final boolean DEBUG = true;
+ private static final boolean DEBUG = false;
private static final String TAG = "TvInputService";
/**
diff --git a/media/java/android/media/tv/TvView.java b/media/java/android/media/tv/TvView.java
index 213e34c..0949b1a 100644
--- a/media/java/android/media/tv/TvView.java
+++ b/media/java/android/media/tv/TvView.java
@@ -57,8 +57,7 @@
*/
public class TvView extends ViewGroup {
private static final String TAG = "TvView";
- // STOPSHIP: Turn debugging off.
- private static final boolean DEBUG = true;
+ private static final boolean DEBUG = false;
private static final int VIDEO_SIZE_VALUE_UNKNOWN = 0;
diff --git a/packages/PrintSpooler/res/layout/print_activity_controls.xml b/packages/PrintSpooler/res/layout/print_activity_controls.xml
index f0b8adf..0bf64aa 100644
--- a/packages/PrintSpooler/res/layout/print_activity_controls.xml
+++ b/packages/PrintSpooler/res/layout/print_activity_controls.xml
@@ -59,6 +59,7 @@
android:id="@+id/copies_edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
+ android:layout_marginStart="8dip"
style="?android:attr/editTextStyle"
android:singleLine="true"
android:ellipsize="end"
@@ -89,7 +90,8 @@
<Spinner
android:id="@+id/paper_size_spinner"
android:layout_width="fill_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:layout_marginStart="4dip">
</Spinner>
</LinearLayout>
@@ -116,7 +118,8 @@
<Spinner
android:id="@+id/color_spinner"
android:layout_width="fill_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:layout_marginStart="4dip">
</Spinner>
</LinearLayout>
@@ -143,7 +146,8 @@
<Spinner
android:id="@+id/orientation_spinner"
android:layout_width="fill_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:layout_marginStart="4dip">
</Spinner>
</LinearLayout>
@@ -170,7 +174,8 @@
<Spinner
android:id="@+id/range_options_spinner"
android:layout_width="fill_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:layout_marginStart="4dip">
</Spinner>
</LinearLayout>
@@ -202,6 +207,7 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|fill_horizontal"
+ android:layout_marginStart="8dip"
android:singleLine="true"
android:ellipsize="end"
android:visibility="visible"
@@ -239,7 +245,7 @@
android:id="@+id/expand_collapse_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="4dip"
+ android:layout_marginTop="0dip"
android:layout_marginBottom="4dip"
android:layout_gravity="center"
android:background="@drawable/ic_expand_more">
diff --git a/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java b/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java
index 1d8261b..14c41da 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java
@@ -345,7 +345,7 @@
Iterator<Map.Entry<Integer, RenderedPage>> iterator =
mRenderedPages.entrySet().iterator();
while (iterator.hasNext()) {
- iterator.next().getValue().recycle();
+ iterator.next();
iterator.remove();
}
}
@@ -425,10 +425,6 @@
return content.getBitmap().getByteCount();
}
- public void recycle() {
- content.getBitmap().recycle();
- }
-
public void erase() {
content.getBitmap().eraseColor(Color.WHITE);
}
@@ -738,7 +734,6 @@
+ " with different size.");
}
mPageContentCache.removeRenderedPage(mPageIndex);
- mRenderedPage.recycle();
mRenderedPage = null;
}
@@ -762,7 +757,6 @@
Log.i(LOG_TAG, "Recycling bitmap for page: " + mPageIndex
+ " with different size.");
}
- renderedPage.recycle();
continue;
}
diff --git a/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java b/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java
index 429437d..c53fcad 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java
@@ -107,11 +107,13 @@
mDocumentInfo.info.getPageCount());
}
// Notify we are done.
+ mState = STATE_UPDATED;
notifyUpdateCompleted();
}
}
} else {
// We always notify after a write.
+ mState = STATE_UPDATED;
notifyUpdateCompleted();
}
runPendingCommand();
diff --git a/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java b/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java
index c22c0e2..1000117 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java
@@ -46,16 +46,12 @@
private boolean mContentRequested;
- private boolean mNeedsLayout;
-
public PageContentView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
- super.onLayout(changed, left, top, right, bottom);
- mNeedsLayout = false;
+ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
requestPageContentIfNeeded();
}
@@ -91,7 +87,6 @@
mEmptyState = emptyState;
mContentRequested = false;
- mNeedsLayout = mNeedsLayout || mediaSizeChanged || marginsChanged;
// If there is no provider we want immediately to switch to
// the empty state, so pages with no content appear blank.
@@ -104,7 +99,7 @@
private void requestPageContentIfNeeded() {
if (getWidth() > 0 && getHeight() > 0 && !mContentRequested
- && mProvider != null && !mNeedsLayout) {
+ && mProvider != null) {
mContentRequested = true;
mProvider.getPageContent(new RenderSpec(getWidth(), getHeight(),
mMediaSize, mMinMargins), this);
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index 625dc96..934ed38 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -193,11 +193,11 @@
<!-- Default for Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED, 1==on -->
<integer name="def_heads_up_enabled">1</integer>
- <!-- Default for Settings.Global.DEVICE_NAME $1=MODEL-->
- <string name="def_device_name">%1$s</string>
-
<!-- Default for Settings.Global.DEVICE_NAME $1=MANUFACTURER $2=MODEL-->
- <string name="def_device_name_old">%1$s %2$s</string>
+ <string name="def_device_name">%1$s %2$s</string>
+
+ <!-- Default for Settings.Global.DEVICE_NAME $1=MODEL-->
+ <string name="def_device_name_simple">%1$s</string>
<!-- Default for Settings.Secure.WAKE_GESTURE_ENABLED -->
<bool name="def_wake_gesture_enabled">true</bool>
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index bdb167f..873257c 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2609,11 +2609,11 @@
}
private String getOldDefaultDeviceName() {
- return mContext.getResources().getString(R.string.def_device_name_old,
+ return mContext.getResources().getString(R.string.def_device_name,
Build.MANUFACTURER, Build.MODEL);
}
private String getDefaultDeviceName() {
- return mContext.getResources().getString(R.string.def_device_name, Build.MODEL);
+ return mContext.getResources().getString(R.string.def_device_name_simple, Build.MODEL);
}
}
diff --git a/packages/SystemUI/res/layout-sw600dp/navigation_bar.xml b/packages/SystemUI/res/layout-sw600dp/navigation_bar.xml
index b5983bb..c2733fb 100644
--- a/packages/SystemUI/res/layout-sw600dp/navigation_bar.xml
+++ b/packages/SystemUI/res/layout-sw600dp/navigation_bar.xml
@@ -59,7 +59,6 @@
android:src="@drawable/ic_sysbar_back"
systemui:keyCode="4"
android:layout_weight="0"
- android:background="@drawable/ripple_drawable"
android:contentDescription="@string/accessibility_back"
/>
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/home"
@@ -69,7 +68,6 @@
systemui:keyCode="3"
systemui:keyRepeat="true"
android:layout_weight="0"
- android:background="@drawable/ripple_drawable"
android:contentDescription="@string/accessibility_home"
/>
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/recent_apps"
@@ -77,7 +75,6 @@
android:layout_height="match_parent"
android:src="@drawable/ic_sysbar_recent"
android:layout_weight="0"
- android:background="@drawable/ripple_drawable"
android:contentDescription="@string/accessibility_recent"
/>
<Space
@@ -98,7 +95,6 @@
systemui:keyCode="82"
android:visibility="invisible"
android:contentDescription="@string/accessibility_menu"
- android:background="@drawable/ripple_drawable"
/>
<com.android.systemui.statusbar.policy.KeyButtonView
android:id="@+id/ime_switcher"
@@ -108,8 +104,7 @@
android:scaleType="centerInside"
android:src="@drawable/ic_ime_switcher_default"
android:visibility="invisible"
- android:contentDescription="@string/accessibility_ime_switch_button"
- android:background="@drawable/ripple_drawable" />
+ android:contentDescription="@string/accessibility_ime_switch_button" />
</FrameLayout>
</LinearLayout>
@@ -205,7 +200,6 @@
android:src="@drawable/ic_sysbar_back"
systemui:keyCode="4"
android:layout_weight="0"
- android:background="@drawable/ripple_drawable"
android:contentDescription="@string/accessibility_back"
/>
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/home"
@@ -215,7 +209,6 @@
systemui:keyCode="3"
systemui:keyRepeat="true"
android:layout_weight="0"
- android:background="@drawable/ripple_drawable"
android:contentDescription="@string/accessibility_home"
/>
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/recent_apps"
@@ -223,7 +216,6 @@
android:layout_height="match_parent"
android:src="@drawable/ic_sysbar_recent"
android:layout_weight="0"
- android:background="@drawable/ripple_drawable"
android:contentDescription="@string/accessibility_recent"
/>
<Space
@@ -243,9 +235,7 @@
android:src="@drawable/ic_sysbar_menu"
systemui:keyCode="82"
android:visibility="invisible"
- android:contentDescription="@string/accessibility_menu"
- android:background="@drawable/ripple_drawable"
- />
+ android:contentDescription="@string/accessibility_menu" />
<com.android.systemui.statusbar.policy.KeyButtonView
android:id="@+id/ime_switcher"
android:layout_width="@dimen/navigation_extra_key_width"
@@ -254,8 +244,7 @@
android:src="@drawable/ic_ime_switcher_default"
android:visibility="invisible"
android:contentDescription="@string/accessibility_ime_switch_button"
- android:scaleType="centerInside"
- android:background="@drawable/ripple_drawable" />
+ android:scaleType="centerInside" />
</FrameLayout>
</LinearLayout>
diff --git a/packages/SystemUI/res/layout/navigation_bar.xml b/packages/SystemUI/res/layout/navigation_bar.xml
index a165940..16027d9 100644
--- a/packages/SystemUI/res/layout/navigation_bar.xml
+++ b/packages/SystemUI/res/layout/navigation_bar.xml
@@ -55,7 +55,6 @@
systemui:keyCode="4"
android:layout_weight="0"
android:scaleType="center"
- android:background="@drawable/ripple_drawable"
android:contentDescription="@string/accessibility_back"
/>
<View
@@ -71,7 +70,6 @@
systemui:keyCode="3"
systemui:keyRepeat="false"
android:layout_weight="0"
- android:background="@drawable/ripple_drawable"
android:contentDescription="@string/accessibility_home"
/>
<View
@@ -85,7 +83,6 @@
android:layout_height="match_parent"
android:src="@drawable/ic_sysbar_recent"
android:layout_weight="0"
- android:background="@drawable/ripple_drawable"
android:contentDescription="@string/accessibility_recent"
/>
<FrameLayout
@@ -99,7 +96,6 @@
android:contentDescription="@string/accessibility_menu"
android:src="@drawable/ic_sysbar_menu"
android:visibility="invisible"
- android:background="@drawable/ripple_drawable"
systemui:keyCode="82" />
<com.android.systemui.statusbar.policy.KeyButtonView
@@ -109,8 +105,7 @@
android:contentDescription="@string/accessibility_ime_switch_button"
android:scaleType="centerInside"
android:src="@drawable/ic_ime_switcher_default"
- android:visibility="invisible"
- android:background="@drawable/ripple_drawable" />
+ android:visibility="invisible" />
</FrameLayout>
</LinearLayout>
@@ -202,8 +197,7 @@
android:contentDescription="@string/accessibility_ime_switch_button"
android:scaleType="centerInside"
android:src="@drawable/ic_ime_switcher_default"
- android:visibility="invisible"
- android:background="@drawable/ripple_drawable" />
+ android:visibility="invisible" />
<com.android.systemui.statusbar.policy.KeyButtonView
android:id="@+id/menu"
@@ -212,7 +206,6 @@
android:contentDescription="@string/accessibility_menu"
android:src="@drawable/ic_sysbar_menu_land"
android:visibility="invisible"
- android:background="@drawable/ripple_drawable"
systemui:keyCode="82" />
</FrameLayout>
@@ -222,7 +215,6 @@
android:src="@drawable/ic_sysbar_recent_land"
android:layout_weight="0"
android:contentDescription="@string/accessibility_recent"
- android:background="@drawable/ripple_drawable"
/>
<View
android:layout_height="match_parent"
@@ -238,7 +230,6 @@
systemui:keyRepeat="false"
android:layout_weight="0"
android:contentDescription="@string/accessibility_home"
- android:background="@drawable/ripple_drawable"
/>
<View
android:layout_height="match_parent"
@@ -254,7 +245,6 @@
systemui:keyCode="4"
android:layout_weight="0"
android:contentDescription="@string/accessibility_back"
- android:background="@drawable/ripple_drawable"
/>
<View
android:layout_height="40dp"
diff --git a/packages/SystemUI/res/values-land/dimens.xml b/packages/SystemUI/res/values-land/dimens.xml
index 9b772bd..a9e7735 100644
--- a/packages/SystemUI/res/values-land/dimens.xml
+++ b/packages/SystemUI/res/values-land/dimens.xml
@@ -39,7 +39,7 @@
<dimen name="status_bar_recents_app_icon_top_margin">8dp</dimen>
<!-- The side padding for the task stack as a percentage of the width. -->
- <item name="recents_stack_width_padding_percentage" format="float" type="dimen">0.2229</item>
+ <item name="recents_stack_width_padding_percentage" format="float" type="dimen">0.26</item>
<!-- Standard notification width + gravity -->
<dimen name="notification_panel_width">@dimen/standard_notification_panel_width</dimen>
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java
index f411e62..0aa7f35 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java
@@ -121,7 +121,7 @@
new Intent(NOTIFICATION_PULSE_ACTION).setPackage(getPackageName()),
PendingIntent.FLAG_UPDATE_CURRENT);
mDisplayStateWhenOn = mDisplayStateSupported ? Display.STATE_DOZE : Display.STATE_ON;
- setDozeScreenState(mDisplayStateWhenOn);
+ mDisplayOff.run();
}
@Override
@@ -160,16 +160,6 @@
mHandler.postDelayed(mDisplayOff, millis);
}
- public void startDozing() {
- if (DEBUG) Log.d(mTag, "startDozing mDreaming=" + mDreaming);
- if (!mDreaming) {
- Log.w(mTag, "Not dozing, no longer dreaming");
- return;
- }
-
- super.startDozing();
- }
-
@Override
public void onDreamingStopped() {
if (DEBUG) Log.d(mTag, "onDreamingStopped isDozing=" + isDozing());
@@ -180,24 +170,8 @@
mWakeLock.release();
}
listenForPulseSignals(false);
- stopDozing();
dozingStopped();
- }
-
- @Override
- public void onDetachedFromWindow() {
- if (DEBUG) Log.d(mTag, "onDetachedFromWindow");
- super.onDetachedFromWindow();
-
- dozingStopped();
- }
-
- @Override
- public void onDestroy() {
- if (DEBUG) Log.d(mTag, "onDestroy");
- super.onDestroy();
-
- dozingStopped();
+ mHandler.removeCallbacks(mDisplayOff);
}
private void requestDoze() {
diff --git a/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java b/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
index 4c7f8ec..f184ad2 100644
--- a/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
+++ b/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
@@ -31,6 +31,7 @@
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Handler;
+import android.os.PowerManager;
import android.os.SystemClock;
import android.os.UserHandle;
import android.provider.Settings;
@@ -72,6 +73,7 @@
private final Context mContext;
private final NotificationManager mNoMan;
+ private final PowerManager mPowerMan;
private final Handler mHandler = new Handler();
private final Receiver mReceiver = new Receiver();
private final Intent mOpenBatterySettings = settings(Intent.ACTION_POWER_USAGE_SUMMARY);
@@ -93,6 +95,7 @@
public PowerNotificationWarnings(Context context, PhoneStatusBar phoneStatusBar) {
mContext = context;
mNoMan = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+ mPowerMan = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
mReceiver.init();
}
@@ -356,9 +359,8 @@
mSaverConfirmation = d;
}
- private void setSaverSetting(boolean mode) {
- final int val = mode ? 1 : 0;
- Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.LOW_POWER_MODE, val);
+ private void setSaverMode(boolean mode) {
+ mPowerMan.setPowerSaveMode(mode);
}
private final class Receiver extends BroadcastReceiver {
@@ -384,7 +386,7 @@
} else if (action.equals(ACTION_STOP_SAVER)) {
dismissSaverNotification();
dismissLowBatteryNotification();
- setSaverSetting(false);
+ setSaverMode(false);
}
}
}
@@ -395,7 +397,7 @@
AsyncTask.execute(new Runnable() {
@Override
public void run() {
- setSaverSetting(true);
+ setSaverMode(true);
}
});
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
index ed5c126..2a2caa0 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
@@ -347,8 +347,8 @@
Rect searchBarBounds = new Rect();
getSearchBarBounds(windowWidth, windowHeight, topInset, searchBarBounds);
if (isLandscape && hasTransposedSearchBar) {
- // In landscape, the search bar appears on the left
- taskStackBounds.set(searchBarBounds.right, topInset, windowWidth - rightInset, windowHeight);
+ // In landscape, the search bar appears on the left, but we overlay it on top
+ taskStackBounds.set(0, topInset, windowWidth - rightInset, windowHeight);
} else {
// In portrait, the search bar appears on the top (which already has the inset)
taskStackBounds.set(0, searchBarBounds.bottom, windowWidth, windowHeight);
diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
index bbd0a0d..11b7b8b 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
@@ -179,6 +179,12 @@
ActivityManager.RECENT_IGNORE_UNAVAILABLE |
ActivityManager.RECENT_INCLUDE_PROFILES |
ActivityManager.RECENT_WITH_EXCLUDED, userId);
+
+ // Break early if we can't get a valid set of tasks
+ if (tasks == null) {
+ return new ArrayList<ActivityManager.RecentTaskInfo>();
+ }
+
boolean isFirstValidTask = true;
Iterator<ActivityManager.RecentTaskInfo> iter = tasks.iterator();
while (iter.hasNext()) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
index 18ef024..b71c9bf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
@@ -257,7 +257,7 @@
(mMobileVisible ? "VISIBLE" : "GONE"),
mMobileStrengthId, mMobileTypeId));
- mMobileType.setVisibility(!mWifiVisible || mRoaming ? View.VISIBLE : View.GONE);
+ mMobileType.setVisibility((mRoaming || mMobileTypeId != 0) ? View.VISIBLE : View.GONE);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
index 20eed3f..e323dd6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
@@ -30,7 +30,7 @@
import android.os.RemoteException;
import android.os.UserHandle;
import android.provider.MediaStore;
-import android.telecomm.TelecommManager;
+import android.telecom.TelecomManager;
import android.util.AttributeSet;
import android.util.Log;
import android.util.TypedValue;
@@ -331,7 +331,7 @@
}
public void launchPhone() {
- final TelecommManager tm = TelecommManager.from(mContext);
+ final TelecomManager tm = TelecomManager.from(mContext);
if (tm.isInCall()) {
AsyncTask.execute(new Runnable() {
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 3bdae47..e6db2c8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -4079,7 +4079,6 @@
@Override
public void requestDoze(DozeService dozeService) {
if (dozeService == null) return;
- dozeService.stayAwake(PROCESSING_TIME);
mHandler.obtainMessage(H.REQUEST_DOZE, dozeService).sendToTarget();
}
@@ -4094,7 +4093,6 @@
@Override
public void dozingStopped(DozeService dozeService) {
if (dozeService == null) return;
- dozeService.stayAwake(PROCESSING_TIME);
mHandler.obtainMessage(H.DOZING_STOPPED, dozeService).sendToTarget();
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
index 237b782..6006217 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
@@ -27,7 +27,7 @@
import android.os.Handler;
import android.os.UserHandle;
import android.provider.Settings.Global;
-import android.telecomm.TelecommManager;
+import android.telecom.TelecomManager;
import android.util.Log;
import com.android.internal.telephony.IccCardConstants;
@@ -93,7 +93,7 @@
else if (action.equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) {
updateSimState(intent);
}
- else if (action.equals(TelecommManager.ACTION_CURRENT_TTY_MODE_CHANGED)) {
+ else if (action.equals(TelecomManager.ACTION_CURRENT_TTY_MODE_CHANGED)) {
updateTTY(intent);
}
else if (action.equals(Intent.ACTION_USER_SWITCHED)) {
@@ -115,7 +115,7 @@
filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
filter.addAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED);
filter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED);
- filter.addAction(TelecommManager.ACTION_CURRENT_TTY_MODE_CHANGED);
+ filter.addAction(TelecomManager.ACTION_CURRENT_TTY_MODE_CHANGED);
filter.addAction(Intent.ACTION_USER_SWITCHED);
mContext.registerReceiver(mIntentReceiver, filter, null, mHandler);
@@ -279,9 +279,9 @@
}
private final void updateTTY(Intent intent) {
- int currentTtyMode = intent.getIntExtra(TelecommManager.EXTRA_CURRENT_TTY_MODE,
- TelecommManager.TTY_MODE_OFF);
- boolean enabled = currentTtyMode != TelecommManager.TTY_MODE_OFF;
+ int currentTtyMode = intent.getIntExtra(TelecomManager.EXTRA_CURRENT_TTY_MODE,
+ TelecomManager.TTY_MODE_OFF);
+ boolean enabled = currentTtyMode != TelecomManager.TTY_MODE_OFF;
if (DEBUG) Log.v(TAG, "updateTTY: enabled: " + enabled);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
index 16c0e66..b814b61 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
@@ -17,11 +17,15 @@
package com.android.systemui.statusbar.policy;
import android.animation.Animator;
+import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
+import android.animation.TimeInterpolator;
import android.app.ActivityManager;
import android.content.Context;
import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.RectF;
import android.hardware.input.InputManager;
import android.media.AudioManager;
import android.os.Bundle;
@@ -34,10 +38,12 @@
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SoundEffectConstants;
+import android.view.View;
import android.view.ViewConfiguration;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.ImageView;
+import java.lang.Math;
import com.android.systemui.R;
@@ -50,15 +56,21 @@
// TODO: Get rid of this
public static final float DEFAULT_QUIESCENT_ALPHA = 1f;
+ public static final float MAX_ALPHA = 0.15f;
+ public static final float GLOW_MAX_SCALE_FACTOR = 1.5f;
private long mDownTime;
private int mCode;
private int mTouchSlop;
+ private float mGlowAlpha = 0f;
+ private float mGlowScale = 1f;
private float mDrawingAlpha = 1f;
private float mQuiescentAlpha = DEFAULT_QUIESCENT_ALPHA;
private boolean mSupportsLongpress = true;
+ private AnimatorSet mPressedAnim;
private Animator mAnimateToQuiescent = new ObjectAnimator();
- private Drawable mBackground;
+ private Paint mRipplePaint;
+ private final TimeInterpolator mInterpolator = (TimeInterpolator) new LogInterpolator();
private AudioManager mAudioManager;
private final Runnable mCheckLongPress = new Runnable() {
@@ -90,11 +102,6 @@
mSupportsLongpress = a.getBoolean(R.styleable.KeyButtonView_keyRepeat, true);
- Drawable d = getBackground();
- if (d != null) {
- mBackground = d.mutate();
- setBackground(mBackground);
- }
setDrawingAlpha(mQuiescentAlpha);
@@ -134,13 +141,45 @@
return super.performAccessibilityAction(action, arguments);
}
+ private Paint getRipplePaint() {
+ if (mRipplePaint == null) {
+ mRipplePaint = new Paint();
+ mRipplePaint.setAntiAlias(true);
+ mRipplePaint.setColor(0xffffffff);
+ }
+ return mRipplePaint;
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ final Paint p = getRipplePaint();
+ p.setAlpha((int)(MAX_ALPHA * mDrawingAlpha * mGlowAlpha * 255));
+
+ final float w = getWidth();
+ final float h = getHeight();
+ final boolean horizontal = w > h;
+ final float diameter = (horizontal ? w : h) * mGlowScale;
+ final float radius = diameter * .5f;
+ final float cx = w * .5f;
+ final float cy = h * .5f;
+ final float rx = horizontal ? radius : cx;
+ final float ry = horizontal ? cy : radius;
+ final float corner = horizontal ? cy : cx;
+
+ canvas.drawRoundRect(cx - rx, cy - ry,
+ cx + rx, cy + ry,
+ corner, corner, p);
+
+ super.onDraw(canvas);
+ }
+
public void setQuiescentAlpha(float alpha, boolean animate) {
mAnimateToQuiescent.cancel();
alpha = Math.min(Math.max(alpha, 0), 1);
if (alpha == mQuiescentAlpha && alpha == mDrawingAlpha) return;
mQuiescentAlpha = alpha;
if (DEBUG) Log.d(TAG, "New quiescent alpha = " + mQuiescentAlpha);
- if (mBackground != null && animate) {
+ if (animate) {
mAnimateToQuiescent = animateToQuiescent();
mAnimateToQuiescent.start();
} else {
@@ -162,34 +201,79 @@
public void setDrawingAlpha(float x) {
setImageAlpha((int) (x * 255));
- if (mBackground != null) {
- mBackground.setAlpha((int)(x * 255));
- }
mDrawingAlpha = x;
}
- public void setPressed(boolean pressed) {
- if (mBackground != null) {
- if (pressed != isPressed()) {
- if (pressed) {
- setDrawingAlpha(1f);
- } else {
- mAnimateToQuiescent.cancel();
- mAnimateToQuiescent = animateToQuiescent();
- mAnimateToQuiescent.setDuration(500);
- mAnimateToQuiescent.start();
- }
- }
- }
- super.setPressed(pressed);
+ public float getGlowAlpha() {
+ return mGlowAlpha;
}
- private void setHotspot(float x, float y) {
- if (mBackground != null) {
- mBackground.setHotspot(x, y);
+ public void setGlowAlpha(float x) {
+ mGlowAlpha = x;
+ invalidate();
+ }
+
+ public float getGlowScale() {
+ return mGlowScale;
+ }
+
+ public void setGlowScale(float x) {
+ mGlowScale = x;
+ final float w = getWidth();
+ final float h = getHeight();
+ if (GLOW_MAX_SCALE_FACTOR <= 1.0f) {
+ // this only works if we know the glow will never leave our bounds
+ invalidate();
+ } else {
+ final float rx = (w * (GLOW_MAX_SCALE_FACTOR - 1.0f)) / 2.0f + 1.0f;
+ final float ry = (h * (GLOW_MAX_SCALE_FACTOR - 1.0f)) / 2.0f + 1.0f;
+ com.android.systemui.SwipeHelper.invalidateGlobalRegion(
+ this,
+ new RectF(getLeft() - rx,
+ getTop() - ry,
+ getRight() + rx,
+ getBottom() + ry));
+
+ // also invalidate our immediate parent to help avoid situations where nearby glows
+ // interfere
+ ((View)getParent()).invalidate();
}
}
+ public void setPressed(boolean pressed) {
+ if (pressed != isPressed()) {
+ if (mPressedAnim != null && mPressedAnim.isRunning()) {
+ mPressedAnim.cancel();
+ }
+ final AnimatorSet as = mPressedAnim = new AnimatorSet();
+ final ObjectAnimator scaleAnimator = ObjectAnimator.ofFloat(this,
+ "glowScale", GLOW_MAX_SCALE_FACTOR);
+ scaleAnimator.setInterpolator(mInterpolator);
+ if (pressed) {
+ mGlowScale = 0f;
+ if (mGlowAlpha < mQuiescentAlpha)
+ mGlowAlpha = mQuiescentAlpha;
+ setDrawingAlpha(1f);
+ as.playTogether(
+ ObjectAnimator.ofFloat(this, "glowAlpha", 1f),
+ scaleAnimator
+ );
+ as.setDuration(500);
+ } else {
+ mAnimateToQuiescent.cancel();
+ mAnimateToQuiescent = animateToQuiescent();
+ as.playTogether(
+ ObjectAnimator.ofFloat(this, "glowAlpha", mGlowAlpha, mGlowAlpha * .2f, 0f),
+ scaleAnimator,
+ mAnimateToQuiescent
+ );
+ as.setDuration(500);
+ }
+ as.start();
+ }
+ super.setPressed(pressed);
+ }
+
public boolean onTouchEvent(MotionEvent ev) {
final int action = ev.getAction();
int x, y;
@@ -209,7 +293,6 @@
removeCallbacks(mCheckLongPress);
postDelayed(mCheckLongPress, ViewConfiguration.getLongPressTimeout());
}
- setHotspot(ev.getX(), ev.getY());
break;
case MotionEvent.ACTION_MOVE:
x = (int)ev.getX();
@@ -218,7 +301,6 @@
&& x < getWidth() + mTouchSlop
&& y >= -mTouchSlop
&& y < getHeight() + mTouchSlop);
- setHotspot(ev.getX(), ev.getY());
break;
case MotionEvent.ACTION_CANCEL:
setPressed(false);
@@ -272,6 +354,17 @@
InputManager.getInstance().injectInputEvent(ev,
InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
}
+
+ /**
+ * Interpolator with a smooth log deceleration
+ */
+ private static final class LogInterpolator implements TimeInterpolator {
+ @Override
+ public float getInterpolation(float input) {
+ return 1 - (float) Math.pow(400, -input * 1.4);
+ }
+ }
+
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
index 4d248c2..79d769a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
@@ -128,6 +128,8 @@
private boolean mConnected = false;
private int mConnectedNetworkType = ConnectivityManager.TYPE_NONE;
private String mConnectedNetworkTypeName;
+ private int mLastConnectedNetworkType = ConnectivityManager.TYPE_NONE;
+
private int mInetCondition = 0;
private int mLastInetCondition = 0;
private static final int INET_CONDITION_THRESHOLD = 50;
@@ -221,7 +223,7 @@
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
filter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED);
filter.addAction(TelephonyIntents.SPN_STRINGS_UPDATED_ACTION);
- filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
+ filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION_IMMEDIATE);
filter.addAction(ConnectivityManager.INET_CONDITION_ACTION);
filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
@@ -462,7 +464,7 @@
intent.getBooleanExtra(TelephonyIntents.EXTRA_SHOW_PLMN, false),
intent.getStringExtra(TelephonyIntents.EXTRA_PLMN));
refreshViews();
- } else if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION) ||
+ } else if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION_IMMEDIATE) ||
action.equals(ConnectivityManager.INET_CONDITION_ACTION)) {
updateConnectivity(intent);
refreshViews();
@@ -669,21 +671,28 @@
}
}
+ private int inetConditionForNetwork(int networkType) {
+ return (mInetCondition == 1 && mConnectedNetworkType == networkType) ? 1 : 0;
+ }
+
private final void updateDataNetType() {
+ int inetCondition;
+ mDataTypeIconId = mQSDataTypeIconId = 0;
if (mIsWimaxEnabled && mWimaxConnected) {
// wimax is a special 4g network not handled by telephony
- mDataIconList = TelephonyIcons.DATA_4G[mInetCondition];
+ inetCondition = inetConditionForNetwork(ConnectivityManager.TYPE_WIMAX);
+ mDataIconList = TelephonyIcons.DATA_4G[inetCondition];
mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_4g;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_4G[mInetCondition];
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_4G[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_4g);
} else {
+ inetCondition = inetConditionForNetwork(ConnectivityManager.TYPE_MOBILE);
+ final boolean showDataTypeIcon = (inetCondition > 0);
switch (mDataNetType) {
case TelephonyManager.NETWORK_TYPE_UNKNOWN:
if (!mShowAtLeastThreeGees) {
- mDataIconList = TelephonyIcons.DATA_G[mInetCondition];
- mDataTypeIconId = 0;
- mQSDataTypeIconId = 0;
+ mDataIconList = TelephonyIcons.DATA_G[inetCondition];
mContentDescriptionDataType = "";
break;
} else {
@@ -691,9 +700,10 @@
}
case TelephonyManager.NETWORK_TYPE_EDGE:
if (!mShowAtLeastThreeGees) {
- mDataIconList = TelephonyIcons.DATA_E[mInetCondition];
- mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_e;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_E[mInetCondition];
+ mDataIconList = TelephonyIcons.DATA_E[inetCondition];
+ mDataTypeIconId = showDataTypeIcon ?
+ R.drawable.stat_sys_data_fully_connected_e : 0;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_E[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_edge);
break;
@@ -701,9 +711,10 @@
// fall through
}
case TelephonyManager.NETWORK_TYPE_UMTS:
- mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
- mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_3g;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
+ mDataIconList = TelephonyIcons.DATA_3G[inetCondition];
+ mDataTypeIconId = showDataTypeIcon ?
+ R.drawable.stat_sys_data_fully_connected_3g : 0;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_3g);
break;
@@ -712,15 +723,17 @@
case TelephonyManager.NETWORK_TYPE_HSPA:
case TelephonyManager.NETWORK_TYPE_HSPAP:
if (mHspaDataDistinguishable) {
- mDataIconList = TelephonyIcons.DATA_H[mInetCondition];
- mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_h;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_H[mInetCondition];
+ mDataIconList = TelephonyIcons.DATA_H[inetCondition];
+ mDataTypeIconId = showDataTypeIcon ?
+ R.drawable.stat_sys_data_fully_connected_h : 0;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_H[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_3_5g);
} else {
- mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
- mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_3g;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
+ mDataIconList = TelephonyIcons.DATA_3G[inetCondition];
+ mDataTypeIconId = showDataTypeIcon ?
+ R.drawable.stat_sys_data_fully_connected_3g : 0;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_3g);
}
@@ -728,9 +741,10 @@
case TelephonyManager.NETWORK_TYPE_CDMA:
if (!mShowAtLeastThreeGees) {
// display 1xRTT for IS95A/B
- mDataIconList = TelephonyIcons.DATA_1X[mInetCondition];
- mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_1x;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_1X[mInetCondition];
+ mDataIconList = TelephonyIcons.DATA_1X[inetCondition];
+ mDataTypeIconId = showDataTypeIcon ?
+ R.drawable.stat_sys_data_fully_connected_1x : 0;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_1X[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_cdma);
break;
@@ -739,9 +753,10 @@
}
case TelephonyManager.NETWORK_TYPE_1xRTT:
if (!mShowAtLeastThreeGees) {
- mDataIconList = TelephonyIcons.DATA_1X[mInetCondition];
- mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_1x;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_1X[mInetCondition];
+ mDataIconList = TelephonyIcons.DATA_1X[inetCondition];
+ mDataTypeIconId = showDataTypeIcon ?
+ R.drawable.stat_sys_data_fully_connected_1x : 0;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_1X[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_cdma);
break;
@@ -752,39 +767,43 @@
case TelephonyManager.NETWORK_TYPE_EVDO_A:
case TelephonyManager.NETWORK_TYPE_EVDO_B:
case TelephonyManager.NETWORK_TYPE_EHRPD:
- mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
- mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_3g;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
+ mDataIconList = TelephonyIcons.DATA_3G[inetCondition];
+ mDataTypeIconId = showDataTypeIcon ?
+ R.drawable.stat_sys_data_fully_connected_3g : 0;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_3g);
break;
case TelephonyManager.NETWORK_TYPE_LTE:
boolean show4GforLTE = mContext.getResources().getBoolean(R.bool.config_show4GForLTE);
if (show4GforLTE) {
- mDataIconList = TelephonyIcons.DATA_4G[mInetCondition];
- mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_4g;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_4G[mInetCondition];
+ mDataIconList = TelephonyIcons.DATA_4G[inetCondition];
+ mDataTypeIconId = showDataTypeIcon ?
+ R.drawable.stat_sys_data_fully_connected_4g : 0;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_4G[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_4g);
} else {
- mDataIconList = TelephonyIcons.DATA_LTE[mInetCondition];
- mDataTypeIconId = TelephonyIcons.ICON_LTE;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_LTE[mInetCondition];
+ mDataIconList = TelephonyIcons.DATA_LTE[inetCondition];
+ mDataTypeIconId = showDataTypeIcon ? TelephonyIcons.ICON_LTE : 0;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_LTE[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_lte);
}
break;
default:
if (!mShowAtLeastThreeGees) {
- mDataIconList = TelephonyIcons.DATA_G[mInetCondition];
- mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_g;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_G[mInetCondition];
+ mDataIconList = TelephonyIcons.DATA_G[inetCondition];
+ mDataTypeIconId = showDataTypeIcon ?
+ R.drawable.stat_sys_data_fully_connected_g : 0;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_G[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_gprs);
} else {
- mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
- mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_3g;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
+ mDataIconList = TelephonyIcons.DATA_3G[inetCondition];
+ mDataTypeIconId = showDataTypeIcon ?
+ R.drawable.stat_sys_data_fully_connected_3g : 0;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[inetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_3g);
}
@@ -967,9 +986,10 @@
}
private void updateWifiIcons() {
+ int inetCondition = inetConditionForNetwork(ConnectivityManager.TYPE_WIFI);
if (mWifiConnected) {
- mWifiIconId = WifiIcons.WIFI_SIGNAL_STRENGTH[mInetCondition][mWifiLevel];
- mQSWifiIconId = WifiIcons.QS_WIFI_SIGNAL_STRENGTH[mInetCondition][mWifiLevel];
+ mWifiIconId = WifiIcons.WIFI_SIGNAL_STRENGTH[inetCondition][mWifiLevel];
+ mQSWifiIconId = WifiIcons.QS_WIFI_SIGNAL_STRENGTH[inetCondition][mWifiLevel];
mContentDescriptionWifi = mContext.getString(
AccessibilityContentDescriptions.WIFI_CONNECTION_STRENGTH[mWifiLevel]);
} else {
@@ -1028,10 +1048,11 @@
private void updateWimaxIcons() {
if (mIsWimaxEnabled) {
if (mWimaxConnected) {
+ int inetCondition = inetConditionForNetwork(ConnectivityManager.TYPE_WIMAX);
if (mWimaxIdle)
mWimaxIconId = WimaxIcons.WIMAX_IDLE;
else
- mWimaxIconId = WimaxIcons.WIMAX_SIGNAL_STRENGTH[mInetCondition][mWimaxSignal];
+ mWimaxIconId = WimaxIcons.WIMAX_SIGNAL_STRENGTH[inetCondition][mWimaxSignal];
mContentDescriptionWimax = mContext.getString(
AccessibilityContentDescriptions.WIMAX_CONNECTION_STRENGTH[mWimaxSignal]);
} else {
@@ -1208,6 +1229,8 @@
mContentDescriptionCombinedSignal = mHasMobileDataFeature
? mContentDescriptionDataType : mContentDescriptionWifi;
+ int inetCondition = inetConditionForNetwork(ConnectivityManager.TYPE_MOBILE);
+
mDataTypeIconId = 0;
mQSDataTypeIconId = 0;
if (isCdma()) {
@@ -1266,7 +1289,8 @@
|| mLastWimaxIconId != mWimaxIconId
|| mLastDataTypeIconId != mDataTypeIconId
|| mLastAirplaneMode != mAirplaneMode
- || mLastLocale != mLocale)
+ || mLastLocale != mLocale
+ || mLastConnectedNetworkType != mConnectedNetworkType)
{
// NB: the mLast*s will be updated later
for (SignalCluster cluster : mSignalClusters) {
@@ -1301,6 +1325,10 @@
mLastInetCondition = mInetCondition;
}
+ if (mLastConnectedNetworkType != mConnectedNetworkType) {
+ mLastConnectedNetworkType = mConnectedNetworkType;
+ }
+
// the wimax icon on phones
if (mLastWimaxIconId != mWimaxIconId) {
mLastWimaxIconId = mWimaxIconId;
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 4713a98..02adef4 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -46,11 +46,7 @@
import android.media.IAudioService;
import android.media.Ringtone;
import android.media.RingtoneManager;
-import android.media.session.MediaController;
-import android.media.session.MediaSession;
import android.media.session.MediaSessionLegacyHelper;
-import android.media.session.MediaSessionManager;
-import android.media.session.PlaybackState;
import android.os.Bundle;
import android.os.FactoryTest;
import android.os.Handler;
@@ -72,7 +68,7 @@
import android.service.dreams.DreamService;
import android.service.dreams.IDreamManager;
import android.speech.RecognizerIntent;
-import android.telecomm.TelecommManager;
+import android.telecom.TelecomManager;
import android.util.DisplayMetrics;
import android.util.EventLog;
import android.util.Log;
@@ -101,7 +97,6 @@
import android.view.WindowManagerPolicy;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
-import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.AnimationUtils;
@@ -120,9 +115,7 @@
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
-import java.util.ArrayList;
import java.util.HashSet;
-import java.util.List;
import static android.view.WindowManager.LayoutParams.*;
import static android.view.WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT;
@@ -231,6 +224,9 @@
KeyEvent.KEYCODE_CALCULATOR, Intent.CATEGORY_APP_CALCULATOR);
}
+ /** Amount of time (in milliseconds) to wait for windows drawn before powering on. */
+ static final int WAITING_FOR_DRAWN_TIMEOUT = 1000;
+
/**
* Lock protecting internal state. Must not call out into window
* manager with lock held. (This lock will be acquired in places
@@ -2131,8 +2127,8 @@
ServiceManager.checkService(DreamService.DREAM_SERVICE));
}
- TelecommManager getTelecommService() {
- return (TelecommManager) mContext.getSystemService(Context.TELECOMM_SERVICE);
+ TelecomManager getTelecommService() {
+ return (TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);
}
static IAudioService getAudioService() {
@@ -2221,8 +2217,8 @@
// If an incoming call is ringing, HOME is totally disabled.
// (The user is already on the InCallUI at this point,
// and his ONLY options are to answer or reject the call.)
- TelecommManager telecommManager = getTelecommService();
- if (telecommManager != null && telecommManager.isRinging()) {
+ TelecomManager telecomManager = getTelecommService();
+ if (telecomManager != null && telecomManager.isRinging()) {
Log.i(TAG, "Ignoring HOME; there's a ringing incoming call.");
return -1;
}
@@ -4322,9 +4318,9 @@
}
}
if (down) {
- TelecommManager telecommManager = getTelecommService();
- if (telecommManager != null) {
- if (telecommManager.isRinging()) {
+ TelecomManager telecomManager = getTelecommService();
+ if (telecomManager != null) {
+ if (telecomManager.isRinging()) {
// If an incoming call is ringing, either VOLUME key means
// "silence ringer". We handle these keys here, rather than
// in the InCallScreen, to make sure we'll respond to them
@@ -4336,14 +4332,14 @@
// Silence the ringer. (It's safe to call this
// even if the ringer has already been silenced.)
- telecommManager.silenceRinger();
+ telecomManager.silenceRinger();
// And *don't* pass this key thru to the current activity
// (which is probably the InCallScreen.)
result &= ~ACTION_PASS_TO_USER;
break;
}
- if (telecommManager.isInCall()
+ if (telecomManager.isInCall()
&& (result & ACTION_PASS_TO_USER) == 0) {
// If we are in call but we decided not to pass the key to
// the application, just pass it to the session service.
@@ -4369,10 +4365,10 @@
case KeyEvent.KEYCODE_ENDCALL: {
result &= ~ACTION_PASS_TO_USER;
if (down) {
- TelecommManager telecommManager = getTelecommService();
+ TelecomManager telecomManager = getTelecommService();
boolean hungUp = false;
- if (telecommManager != null) {
- hungUp = telecommManager.endCall();
+ if (telecomManager != null) {
+ hungUp = telecomManager.endCall();
}
interceptPowerKeyDown(!interactive || hungUp);
} else {
@@ -4409,19 +4405,19 @@
interceptScreenshotChord();
}
- TelecommManager telecommManager = getTelecommService();
+ TelecomManager telecomManager = getTelecommService();
boolean hungUp = false;
- if (telecommManager != null) {
- if (telecommManager.isRinging()) {
+ if (telecomManager != null) {
+ if (telecomManager.isRinging()) {
// Pressing Power while there's a ringing incoming
// call should silence the ringer.
- telecommManager.silenceRinger();
+ telecomManager.silenceRinger();
} else if ((mIncallPowerBehavior
& Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP) != 0
- && telecommManager.isInCall() && interactive) {
+ && telecomManager.isInCall() && interactive) {
// Otherwise, if "Power button ends call" is enabled,
// the Power button will hang up any current active call.
- hungUp = telecommManager.endCall();
+ hungUp = telecomManager.endCall();
}
}
interceptPowerKeyDown(!interactive || hungUp
@@ -4459,9 +4455,9 @@
case KeyEvent.KEYCODE_MEDIA_PAUSE:
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
if (down) {
- TelecommManager telecommManager = getTelecommService();
- if (telecommManager != null) {
- if (telecommManager.isInCall()) {
+ TelecomManager telecomManager = getTelecommService();
+ if (telecomManager != null) {
+ if (telecomManager.isInCall()) {
// Suppress PLAY/PAUSE toggle when phone is ringing or in-call
// to avoid music playback.
break;
@@ -4494,12 +4490,12 @@
case KeyEvent.KEYCODE_CALL: {
if (down) {
- TelecommManager telecommManager = getTelecommService();
- if (telecommManager != null) {
- if (telecommManager.isRinging()) {
+ TelecomManager telecomManager = getTelecommService();
+ if (telecomManager != null) {
+ if (telecomManager.isRinging()) {
Log.i(TAG, "interceptKeyBeforeQueueing:"
+ " CALL key-down while ringing: Answer the call!");
- telecommManager.acceptRingingCall();
+ telecomManager.acceptRingingCall();
// And *don't* pass this key thru to the current activity
// (which is presumably the InCallScreen.)
@@ -4778,7 +4774,8 @@
if (DEBUG_WAKEUP) Slog.d(TAG, "null mKeyguardDelegate: setting mKeyguardDrawComplete.");
mKeyguardDrawComplete = true;
}
- mWindowManagerInternal.waitForAllWindowsDrawn(mWindowManagerDrawCallback, 500);
+ mWindowManagerInternal.waitForAllWindowsDrawn(mWindowManagerDrawCallback,
+ WAITING_FOR_DRAWN_TIMEOUT);
}
// Called on the mHandler thread.
diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java
index 083aa9b..f6e2e67 100644
--- a/services/backup/java/com/android/server/backup/BackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerService.java
@@ -1234,6 +1234,7 @@
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_PACKAGE_ADDED);
filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+ filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
filter.addDataScheme("package");
mContext.registerReceiver(mBroadcastReceiver, filter);
// Register for events related to sdcard installation.
@@ -1688,11 +1689,12 @@
String action = intent.getAction();
boolean replacing = false;
boolean added = false;
- boolean rebind = false;
+ boolean changed = false;
Bundle extras = intent.getExtras();
String pkgList[] = null;
if (Intent.ACTION_PACKAGE_ADDED.equals(action) ||
- Intent.ACTION_PACKAGE_REMOVED.equals(action)) {
+ Intent.ACTION_PACKAGE_REMOVED.equals(action) ||
+ Intent.ACTION_PACKAGE_CHANGED.equals(action)) {
Uri uri = intent.getData();
if (uri == null) {
return;
@@ -1701,7 +1703,43 @@
if (pkgName != null) {
pkgList = new String[] { pkgName };
}
- rebind = added = Intent.ACTION_PACKAGE_ADDED.equals(action);
+ changed = Intent.ACTION_PACKAGE_CHANGED.equals(action);
+
+ // At package-changed we only care about looking at new transport states
+ if (changed) {
+ try {
+ if (MORE_DEBUG) {
+ Slog.i(TAG, "Package " + pkgName + " changed; rechecking");
+ }
+ // unbind existing possibly-stale connections to that package's transports
+ synchronized (mTransports) {
+ TransportConnection conn = mTransportConnections.get(pkgName);
+ if (conn != null) {
+ final ServiceInfo svc = conn.mTransport;
+ ComponentName svcName =
+ new ComponentName(svc.packageName, svc.name);
+ String flatName = svcName.flattenToShortString();
+ Slog.i(TAG, "Unbinding " + svcName);
+
+ mContext.unbindService(conn);
+ mTransportConnections.remove(pkgName);
+ mTransports.remove(mTransportNames.get(flatName));
+ mTransportNames.remove(flatName);
+ }
+ }
+ // and then (re)bind as appropriate
+ PackageInfo app = mPackageManager.getPackageInfo(pkgName, 0);
+ checkForTransportAndBind(app);
+ } catch (NameNotFoundException e) {
+ // Nope, can't find it - just ignore
+ if (MORE_DEBUG) {
+ Slog.w(TAG, "Can't find changed package " + pkgName);
+ }
+ }
+ return; // nothing more to do in the PACKAGE_CHANGED case
+ }
+
+ added = Intent.ACTION_PACKAGE_ADDED.equals(action);
replacing = extras.getBoolean(Intent.EXTRA_REPLACING, false);
} else if (Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE.equals(action)) {
added = true;
@@ -1737,17 +1775,15 @@
// Transport maintenance: rebind to known existing transports that have
// just been updated; and bind to any newly-installed transport services.
- if (rebind) {
- synchronized (mTransportConnections) {
- final TransportConnection conn = mTransportConnections.get(packageName);
- if (conn != null) {
- if (DEBUG) {
- Slog.i(TAG, "Transport package changed; rebinding");
- }
- bindTransport(conn.mTransport);
- } else {
- checkForTransportAndBind(app);
+ synchronized (mTransports) {
+ final TransportConnection conn = mTransportConnections.get(packageName);
+ if (conn != null) {
+ if (MORE_DEBUG) {
+ Slog.i(TAG, "Transport package changed; rebinding");
}
+ bindTransport(conn.mTransport);
+ } else {
+ checkForTransportAndBind(app);
}
}
@@ -1840,7 +1876,7 @@
intent.setComponent(svcName);
TransportConnection connection;
- synchronized (mTransportConnections) {
+ synchronized (mTransports) {
connection = mTransportConnections.get(transport.packageName);
if (null == connection) {
connection = new TransportConnection(transport);
@@ -8462,31 +8498,24 @@
return list;
}
- // Select which transport to use for the next backup operation. If the given
- // name is not one of the available transports, no action is taken and the method
- // returns null.
+ // Select which transport to use for the next backup operation.
public String selectBackupTransport(String transport) {
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
"selectBackupTransport");
synchronized (mTransports) {
- String prevTransport = null;
- if (mTransports.get(transport) != null) {
- final long oldId = Binder.clearCallingIdentity();
- try {
- prevTransport = mCurrentTransport;
- mCurrentTransport = transport;
- Settings.Secure.putString(mContext.getContentResolver(),
- Settings.Secure.BACKUP_TRANSPORT, transport);
- } finally {
- Binder.restoreCallingIdentity(oldId);
- }
+ final long oldId = Binder.clearCallingIdentity();
+ try {
+ String prevTransport = mCurrentTransport;
+ mCurrentTransport = transport;
+ Settings.Secure.putString(mContext.getContentResolver(),
+ Settings.Secure.BACKUP_TRANSPORT, transport);
Slog.v(TAG, "selectBackupTransport() set " + mCurrentTransport
+ " returning " + prevTransport);
- } else {
- Slog.w(TAG, "Attempt to select unavailable transport " + transport);
+ return prevTransport;
+ } finally {
+ Binder.restoreCallingIdentity(oldId);
}
- return prevTransport;
}
}
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 7f104c0..55d8c09 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -1785,6 +1785,7 @@
}
private boolean isLiveNetworkAgent(NetworkAgentInfo nai, String msg) {
+ if (nai.network == null) return false;
final NetworkAgentInfo officialNai;
synchronized (mNetworkForNetId) {
officialNai = mNetworkForNetId.get(nai.network.netId);
@@ -1924,12 +1925,16 @@
}
break;
}
- case NetworkMonitor.EVENT_NETWORK_VALIDATED: {
+ case NetworkMonitor.EVENT_NETWORK_TESTED: {
NetworkAgentInfo nai = (NetworkAgentInfo)msg.obj;
if (isLiveNetworkAgent(nai, "EVENT_NETWORK_VALIDATED")) {
- if (DBG) log("Validated " + nai.name());
- nai.validated = true;
- rematchNetworkAndRequests(nai);
+ boolean valid = (msg.arg1 == NetworkMonitor.NETWORK_TEST_RESULT_VALID);
+ if (valid) {
+ if (DBG) log("Validated " + nai.name());
+ nai.validated = true;
+ rematchNetworkAndRequests(nai);
+ }
+ updateInetCondition(nai, valid);
}
break;
}
@@ -4716,6 +4721,21 @@
}
}
+ private void updateInetCondition(NetworkAgentInfo nai, boolean valid) {
+ // Don't bother updating until we've graduated to validated at least once.
+ if (!nai.validated) return;
+ // For now only update icons for default connection.
+ // TODO: Update WiFi and cellular icons separately. b/17237507
+ if (!isDefaultNetwork(nai)) return;
+
+ int newInetCondition = valid ? 100 : 0;
+ // Don't repeat publish.
+ if (newInetCondition == mDefaultInetConditionPublished) return;
+
+ mDefaultInetConditionPublished = newInetCondition;
+ sendInetConditionBroadcast(nai.networkInfo);
+ }
+
private void updateNetworkInfo(NetworkAgentInfo networkAgent, NetworkInfo newInfo) {
NetworkInfo.State state = newInfo.getState();
NetworkInfo oldInfo = null;
diff --git a/services/core/java/com/android/server/NsdService.java b/services/core/java/com/android/server/NsdService.java
index cb1748d..39aa972 100644
--- a/services/core/java/com/android/server/NsdService.java
+++ b/services/core/java/com/android/server/NsdService.java
@@ -716,8 +716,9 @@
for (String key : txtRecords.keySet()) {
try {
// TODO: Send encoded TXT record as bytes once NDC/netd supports binary data.
+ byte[] recordValue = txtRecords.get(key);
cmd.appendArg(String.format(Locale.US, "%s=%s", key,
- new String(txtRecords.get(key), "UTF_8")));
+ recordValue != null ? new String(recordValue, "UTF_8") : ""));
} catch (UnsupportedEncodingException e) {
Slog.e(TAG, "Failed to encode txtRecord " + e);
}
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 2885b83..16b81f9 100755
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -413,7 +413,7 @@
* List of intents that were used to start the most recent tasks.
*/
ArrayList<TaskRecord> mRecentTasks;
- ArraySet<TaskRecord> mTmpRecents = new ArraySet<TaskRecord>();
+ ArrayList<TaskRecord> mTmpRecents = new ArrayList<TaskRecord>();
/**
* For addAppTask: cached of the last activity component that was added.
@@ -937,6 +937,13 @@
private boolean mRunningVoice = false;
/**
+ * Set while the keyguard is waiting for an activity to draw.
+ * In this state, if we are sleeping, we allow Activities to launch
+ * so that they can draw before Keyguard dismisses itself.
+ */
+ private boolean mKeyguardWaitingForDraw = false;
+
+ /**
* State of external calls telling us if the device is asleep.
*/
private boolean mWentToSleep = false;
@@ -3857,6 +3864,86 @@
mTaskPersister.wakeup(null, true);
}
+ // Sort by taskId
+ private Comparator<TaskRecord> mTaskRecordComparator = new Comparator<TaskRecord>() {
+ @Override
+ public int compare(TaskRecord lhs, TaskRecord rhs) {
+ return rhs.taskId - lhs.taskId;
+ }
+ };
+
+ // Extract the affiliates of the chain containing mRecentTasks[start].
+ private int processNextAffiliateChain(int start) {
+ final TaskRecord startTask = mRecentTasks.get(start);
+ final int affiliateId = startTask.mAffiliatedTaskId;
+
+ // Quick identification of isolated tasks. I.e. those not launched behind.
+ if (startTask.taskId == affiliateId && startTask.mPrevAffiliate == null &&
+ startTask.mNextAffiliate == null) {
+ // There is still a slim chance that there are other tasks that point to this task
+ // and that the chain is so messed up that this task no longer points to them but
+ // the gain of this optimization outweighs the risk.
+ startTask.inRecents = true;
+ return start + 1;
+ }
+
+ // Remove all tasks that are affiliated to affiliateId and put them in mTmpRecents.
+ mTmpRecents.clear();
+ for (int i = mRecentTasks.size() - 1; i >= start; --i) {
+ final TaskRecord task = mRecentTasks.get(i);
+ if (task.mAffiliatedTaskId == affiliateId) {
+ mRecentTasks.remove(i);
+ mTmpRecents.add(task);
+ }
+ }
+
+ // Sort them all by taskId. That is the order they were create in and that order will
+ // always be correct.
+ Collections.sort(mTmpRecents, mTaskRecordComparator);
+
+ // Go through and fix up the linked list.
+ // The first one is the end of the chain and has no next.
+ final TaskRecord first = mTmpRecents.get(0);
+ first.inRecents = true;
+ if (first.mNextAffiliate != null) {
+ Slog.w(TAG, "Link error 1 first.next=" + first.mNextAffiliate);
+ first.setNextAffiliate(null);
+ mTaskPersister.wakeup(first, false);
+ }
+ // Everything in the middle is doubly linked from next to prev.
+ final int tmpSize = mTmpRecents.size();
+ for (int i = 0; i < tmpSize - 1; ++i) {
+ final TaskRecord next = mTmpRecents.get(i);
+ final TaskRecord prev = mTmpRecents.get(i + 1);
+ if (next.mPrevAffiliate != prev) {
+ Slog.w(TAG, "Link error 2 next=" + next + " prev=" + next.mPrevAffiliate +
+ " setting prev=" + prev);
+ next.setPrevAffiliate(prev);
+ mTaskPersister.wakeup(next, false);
+ }
+ if (prev.mNextAffiliate != next) {
+ Slog.w(TAG, "Link error 3 prev=" + prev + " next=" + prev.mNextAffiliate +
+ " setting next=" + next);
+ prev.setNextAffiliate(next);
+ mTaskPersister.wakeup(prev, false);
+ }
+ prev.inRecents = true;
+ }
+ // The last one is the beginning of the list and has no prev.
+ final TaskRecord last = mTmpRecents.get(tmpSize - 1);
+ if (last.mPrevAffiliate != null) {
+ Slog.w(TAG, "Link error 4 last.prev=" + last.mPrevAffiliate);
+ last.setPrevAffiliate(null);
+ mTaskPersister.wakeup(last, false);
+ }
+
+ // Insert the group back into mRecentTasks at start.
+ mRecentTasks.addAll(start, mTmpRecents);
+
+ // Let the caller know where we left off.
+ return start + tmpSize;
+ }
+
/**
* Update the recent tasks lists: make sure tasks should still be here (their
* applications / activities still exist), update their availability, fixup ordering
@@ -3969,51 +4056,9 @@
}
// Verify the affiliate chain for each task.
- for (int i = 0; i < N; ) {
- TaskRecord task = mRecentTasks.remove(i);
- if (mTmpRecents.contains(task)) {
- continue;
- }
- int affiliatedTaskId = task.mAffiliatedTaskId;
- while (true) {
- TaskRecord next = task.mNextAffiliate;
- if (next == null) {
- break;
- }
- if (next.mAffiliatedTaskId != affiliatedTaskId) {
- Slog.e(TAG, "Error in Recents: next.affiliatedTaskId=" +
- next.mAffiliatedTaskId + " affiliatedTaskId=" + affiliatedTaskId);
- task.setNextAffiliate(null);
- if (next.mPrevAffiliate == task) {
- next.setPrevAffiliate(null);
- }
- break;
- }
- if (next.mPrevAffiliate != task) {
- Slog.e(TAG, "Error in Recents chain prev.mNextAffiliate=" +
- next.mPrevAffiliate + " task=" + task);
- next.setPrevAffiliate(null);
- task.setNextAffiliate(null);
- break;
- }
- if (!mRecentTasks.contains(next)) {
- Slog.e(TAG, "Error in Recents: next=" + next + " not in mRecentTasks");
- task.setNextAffiliate(null);
- // We know that next.mPrevAffiliate is always task, from above, so clear
- // its previous affiliate.
- next.setPrevAffiliate(null);
- break;
- }
- task = next;
- }
- // task is now the end of the list
- do {
- mRecentTasks.remove(task);
- mRecentTasks.add(i++, task);
- mTmpRecents.add(task);
- task.inRecents = true;
- } while ((task = task.mPrevAffiliate) != null);
+ for (int i = 0; i < N; i = processNextAffiliateChain(i)) {
}
+
mTmpRecents.clear();
// mRecentTasks is now in sorted, affiliated order.
}
@@ -4828,7 +4873,7 @@
try {
File tracesDir = tracesFile.getParentFile();
if (!tracesDir.exists()) {
- tracesFile.mkdirs();
+ tracesDir.mkdirs();
if (!SELinux.restorecon(tracesDir)) {
return null;
}
@@ -4938,7 +4983,7 @@
final File tracesTmp = new File(tracesDir, "__tmp__");
try {
if (!tracesDir.exists()) {
- tracesFile.mkdirs();
+ tracesDir.mkdirs();
if (!SELinux.restorecon(tracesDir.getPath())) {
return;
}
@@ -6204,6 +6249,7 @@
synchronized (this) {
if (DEBUG_LOCKSCREEN) logLockScreen("");
mWindowManager.keyguardWaitingForActivityDrawn();
+ mKeyguardWaitingForDraw = true;
}
} finally {
Binder.restoreCallingIdentity(token);
@@ -9897,11 +9943,11 @@
// Actually is sleeping or shutting down or whatever else in the future
// is an inactive state.
public boolean isSleepingOrShuttingDown() {
- return mSleeping || mShuttingDown;
+ return isSleeping() || mShuttingDown;
}
public boolean isSleeping() {
- return mSleeping;
+ return mSleeping && !mKeyguardWaitingForDraw;
}
void goingToSleep() {
@@ -9923,6 +9969,7 @@
if (mWentToSleep && !mRunningVoice) {
if (!mSleeping) {
mSleeping = true;
+ mKeyguardWaitingForDraw = false;
mStackSupervisor.goingToSleepLocked();
// Initialize the wake times of all processes.
@@ -10032,6 +10079,7 @@
try {
if (DEBUG_LOCKSCREEN) logLockScreen(" shown=" + shown);
mLockScreenShown = shown;
+ mKeyguardWaitingForDraw = false;
comeOutOfSleepIfNeededLocked();
} finally {
Binder.restoreCallingIdentity(ident);
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index b8261a4..c48adc4 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -350,6 +350,9 @@
for (int displayNdx = displays.length - 1; displayNdx >= 0; --displayNdx) {
final int displayId = displays[displayNdx].getDisplayId();
ActivityDisplay activityDisplay = new ActivityDisplay(displayId);
+ if (activityDisplay.mDisplay == null) {
+ throw new IllegalStateException("Default Display does not exist");
+ }
mActivityDisplays.put(displayId, activityDisplay);
}
@@ -3261,6 +3264,10 @@
newDisplay = mActivityDisplays.get(displayId) == null;
if (newDisplay) {
ActivityDisplay activityDisplay = new ActivityDisplay(displayId);
+ if (activityDisplay.mDisplay == null) {
+ Slog.w(TAG, "Display " + displayId + " gone before initialization complete");
+ return;
+ }
mActivityDisplays.put(displayId, activityDisplay);
}
}
@@ -3902,8 +3909,14 @@
ActivityDisplay() {
}
+ // After instantiation, check that mDisplay is not null before using this. The alternative
+ // is for this to throw an exception if mDisplayManager.getDisplay() returns null.
ActivityDisplay(int displayId) {
- init(mDisplayManager.getDisplay(displayId));
+ final Display display = mDisplayManager.getDisplay(displayId);
+ if (display == null) {
+ return;
+ }
+ init(display);
}
void init(Display display) {
diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
index 96872a7..9e33205 100644
--- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java
+++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
@@ -95,6 +95,18 @@
"android.net.netmon.captive_portal_logged_in";
private static final String LOGGED_IN_RESULT = "result";
+ // After a network has been tested this result can be sent with EVENT_NETWORK_TESTED.
+ // The network should be used as a default internet connection. It was found to be:
+ // 1. a functioning network providing internet access, or
+ // 2. a captive portal and the user decided to use it as is.
+ public static final int NETWORK_TEST_RESULT_VALID = 0;
+ // After a network has been tested this result can be sent with EVENT_NETWORK_TESTED.
+ // The network should not be used as a default internet connection. It was found to be:
+ // 1. a captive portal and the user is prompted to sign-in, or
+ // 2. a captive portal and the user did not want to use it, or
+ // 3. a broken network (e.g. DNS failed, connect failed, HTTP request failed).
+ public static final int NETWORK_TEST_RESULT_INVALID = 1;
+
private static final int BASE = Protocol.BASE_NETWORK_MONITOR;
/**
@@ -104,10 +116,11 @@
public static final int CMD_NETWORK_CONNECTED = BASE + 1;
/**
- * Inform ConnectivityService that the network is validated.
+ * Inform ConnectivityService that the network has been tested.
* obj = NetworkAgentInfo
+ * arg1 = One of the NETWORK_TESTED_RESULT_* constants.
*/
- public static final int EVENT_NETWORK_VALIDATED = BASE + 2;
+ public static final int EVENT_NETWORK_TESTED = BASE + 2;
/**
* Inform NetworkMonitor to linger a network. The Monitor should
@@ -216,6 +229,9 @@
private String mServer;
private boolean mIsCaptivePortalCheckEnabled = false;
+ // Set if the user explicitly selected "Do not use this network" in captive portal sign-in app.
+ private boolean mUserDoesNotWant = false;
+
public boolean systemReady = false;
private State mDefaultState = new DefaultState();
@@ -290,9 +306,23 @@
private class OfflineState extends State {
@Override
+ public void enter() {
+ mConnectivityServiceHandler.sendMessage(obtainMessage(EVENT_NETWORK_TESTED,
+ NETWORK_TEST_RESULT_INVALID, 0, mNetworkAgentInfo));
+ }
+
+ @Override
public boolean processMessage(Message message) {
if (DBG) log(getName() + message.toString());
- return NOT_HANDLED;
+ switch (message.what) {
+ case CMD_FORCE_REEVALUATION:
+ // If the user has indicated they explicitly do not want to use this network,
+ // don't allow a reevaluation as this will be pointless and could result in
+ // the user being annoyed with repeated unwanted notifications.
+ return mUserDoesNotWant ? HANDLED : NOT_HANDLED;
+ default:
+ return NOT_HANDLED;
+ }
}
}
@@ -300,8 +330,8 @@
@Override
public void enter() {
if (DBG) log("Validated");
- mConnectivityServiceHandler.sendMessage(
- obtainMessage(EVENT_NETWORK_VALIDATED, mNetworkAgentInfo));
+ mConnectivityServiceHandler.sendMessage(obtainMessage(EVENT_NETWORK_TESTED,
+ NETWORK_TEST_RESULT_VALID, 0, mNetworkAgentInfo));
}
@Override
@@ -393,6 +423,8 @@
@Override
public void enter() {
+ mConnectivityServiceHandler.sendMessage(obtainMessage(EVENT_NETWORK_TESTED,
+ NETWORK_TEST_RESULT_INVALID, 0, mNetworkAgentInfo));
// Wait for user to select sign-in notifcation.
mUserRespondedBroadcastReceiver = new UserRespondedBroadcastReceiver(
++mUserPromptedToken);
@@ -477,6 +509,7 @@
if (message.arg1 != mCaptivePortalLoggedInToken)
return HANDLED;
if (message.arg2 == 0) {
+ mUserDoesNotWant = true;
// TODO: Should teardown network.
transitionTo(mOfflineState);
} else {
@@ -544,6 +577,12 @@
mConnectivityServiceHandler.sendMessage(
obtainMessage(EVENT_NETWORK_LINGER_COMPLETE, mNetworkAgentInfo));
return HANDLED;
+ case CMD_FORCE_REEVALUATION:
+ // Ignore reevaluation attempts when lingering. A reevaluation could result
+ // in a transition to the validated state which would abort the linger
+ // timeout. Lingering is the result of score assessment; validity is
+ // irrelevant.
+ return HANDLED;
default:
return NOT_HANDLED;
}
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 8c342dd..b4009ca 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -497,9 +497,11 @@
// We might override this below based on other factors.
int state;
int brightness = PowerManager.BRIGHTNESS_DEFAULT;
+ boolean performScreenOffTransition = false;
switch (mPowerRequest.policy) {
case DisplayPowerRequest.POLICY_OFF:
state = Display.STATE_OFF;
+ performScreenOffTransition = true;
break;
case DisplayPowerRequest.POLICY_DOZE:
if (mPowerRequest.dozeScreenState != Display.STATE_UNKNOWN) {
@@ -515,6 +517,7 @@
state = Display.STATE_ON;
break;
}
+ assert(state != Display.STATE_UNKNOWN);
// Apply the proximity sensor.
if (mProximitySensor != null) {
@@ -691,7 +694,7 @@
// Wait for previous on animation to complete beforehand.
unblockScreenOn();
if (!mColorFadeOnAnimator.isStarted()) {
- if (mPowerRequest.policy == DisplayPowerRequest.POLICY_OFF) {
+ if (performScreenOffTransition) {
// Perform screen off animation.
if (!mColorFadeOffAnimator.isStarted()) {
if (mPowerState.getColorFadeLevel() == 0.0f) {
@@ -934,8 +937,8 @@
pw.println(" mScreenBrightnessDarkConfig=" + mScreenBrightnessDarkConfig);
pw.println(" mScreenBrightnessRangeMinimum=" + mScreenBrightnessRangeMinimum);
pw.println(" mScreenBrightnessRangeMaximum=" + mScreenBrightnessRangeMaximum);
- pw.println(" mUseSoftwareAutoBrightnessConfig="
- + mUseSoftwareAutoBrightnessConfig);
+ pw.println(" mUseSoftwareAutoBrightnessConfig=" + mUseSoftwareAutoBrightnessConfig);
+ pw.println(" mColorFadeFadesConfig=" + mColorFadeFadesConfig);
mHandler.runWithScissors(new Runnable() {
@Override
diff --git a/services/core/java/com/android/server/hdmi/Constants.java b/services/core/java/com/android/server/hdmi/Constants.java
index 5823f47..b0a3a66 100644
--- a/services/core/java/com/android/server/hdmi/Constants.java
+++ b/services/core/java/com/android/server/hdmi/Constants.java
@@ -212,8 +212,13 @@
// in config.xml to allow customization.
static final int IRT_MS = 300;
- static final String PROPERTY_PREFERRED_ADDRESS_PLAYBACK = "hdmi_cec.prefaddr.playback";
- static final String PROPERTY_PREFERRED_ADDRESS_TV = "hdmi_cec.prefaddr.tv";
+ static final String PROPERTY_PREFERRED_ADDRESS_PLAYBACK = "persist.sys.hdmi.addr.playback";
+ static final String PROPERTY_PREFERRED_ADDRESS_TV = "persist.sys.hdmi.addr.tv";
+
+ // Property name for the local device configurations.
+ // TODO(OEM): OEM should provide this property, and the value is the comma separated integer
+ // values which denotes the device type in HDMI Spec 1.4.
+ static final String PROPERTY_DEVICE_TYPE = "ro.hdmi.device_type";
static final int RECORDING_TYPE_DIGITAL_RF = 1;
static final int RECORDING_TYPE_ANALOGUE_RF = 2;
@@ -250,10 +255,5 @@
static final int DISABLED = 0;
static final int ENABLED = 1;
- // Property name for the local device configurations.
- // TODO(OEM): OEM should provide this property, and the value is the comma separated integer
- // values which denotes the device type in HDMI Spec 1.4.
- static final String PROPERTY_DEVICE_TYPE = "ro.hdmi.device_type";
-
private Constants() { /* cannot be instantiated */ }
}
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index 9c567ac..81b579d 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -1387,7 +1387,7 @@
}
if ((switchMask & SW_CAMERA_LENS_COVER_BIT) != 0) {
- final boolean lensCovered = ((switchValues & SW_CAMERA_LENS_COVER_BIT) == 0);
+ final boolean lensCovered = ((switchValues & SW_CAMERA_LENS_COVER_BIT) != 0);
mWindowManagerCallbacks.notifyCameraLensCoverSwitchChanged(whenNanos, lensCovered);
}
diff --git a/services/core/java/com/android/server/job/JobServiceContext.java b/services/core/java/com/android/server/job/JobServiceContext.java
index d0447bc..9df21a2 100644
--- a/services/core/java/com/android/server/job/JobServiceContext.java
+++ b/services/core/java/com/android/server/job/JobServiceContext.java
@@ -170,6 +170,7 @@
mRunningJob = null;
mParams = null;
mExecutionStartTimeElapsed = 0L;
+ removeOpTimeOut();
return false;
}
try {
@@ -299,7 +300,7 @@
public void handleMessage(Message message) {
switch (message.what) {
case MSG_SERVICE_BOUND:
- removeMessages(MSG_TIMEOUT);
+ removeOpTimeOut();
handleServiceBoundH();
break;
case MSG_CALLBACK:
@@ -307,7 +308,7 @@
Slog.d(TAG, "MSG_CALLBACK of : " + mRunningJob + " v:" +
(mVerb >= 0 ? VERB_STRINGS[mVerb] : "[invalid]"));
}
- removeMessages(MSG_TIMEOUT);
+ removeOpTimeOut();
if (mVerb == VERB_STARTING) {
final boolean workOngoing = message.arg2 == 1;
@@ -498,7 +499,7 @@
* VERB_STOPPING.
*/
private void sendStopMessageH() {
- mCallbackHandler.removeMessages(MSG_TIMEOUT);
+ removeOpTimeOut();
if (mVerb != VERB_EXECUTING) {
Slog.e(TAG, "Sending onStopJob for a job that isn't started. " + mRunningJob);
closeAndCleanupJobH(false /* reschedule */);
@@ -540,7 +541,7 @@
service = null;
mAvailable = true;
}
- removeMessages(MSG_TIMEOUT);
+ removeOpTimeOut();
removeMessages(MSG_CALLBACK);
removeMessages(MSG_SERVICE_BOUND);
removeMessages(MSG_CANCEL);
@@ -555,7 +556,7 @@
* on with life.
*/
private void scheduleOpTimeOut() {
- mCallbackHandler.removeMessages(MSG_TIMEOUT);
+ removeOpTimeOut();
final long timeoutMillis = (mVerb == VERB_EXECUTING) ?
EXECUTING_TIMESLICE_MILLIS : OP_TIMEOUT_MILLIS;
@@ -568,4 +569,9 @@
mCallbackHandler.sendMessageDelayed(m, timeoutMillis);
mTimeoutElapsed = SystemClock.elapsedRealtime() + timeoutMillis;
}
+
+
+ private void removeOpTimeOut() {
+ mCallbackHandler.removeMessages(MSG_TIMEOUT);
+ }
}
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 41d7fa8f..479af89 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -40,7 +40,7 @@
import android.provider.Settings.Secure;
import android.service.notification.NotificationListenerService;
import android.service.notification.ZenModeConfig;
-import android.telecomm.TelecommManager;
+import android.telecom.TelecomManager;
import android.util.Log;
import android.util.Slog;
@@ -346,8 +346,8 @@
private boolean isDefaultPhoneApp(String pkg) {
if (mDefaultPhoneApp == null) {
- final TelecommManager telecomm =
- (TelecommManager) mContext.getSystemService(Context.TELECOMM_SERVICE);
+ final TelecomManager telecomm =
+ (TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);
mDefaultPhoneApp = telecomm != null ? telecomm.getDefaultPhoneApp() : null;
if (DEBUG) Slog.d(TAG, "Default phone app: " + mDefaultPhoneApp);
}
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index 0a4b3bc..c79a6d6 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -20,8 +20,8 @@
import com.android.internal.app.IBatteryStats;
import com.android.internal.os.BackgroundThread;
import com.android.server.EventLogTags;
-import com.android.server.LocalServices;
import com.android.server.ServiceThread;
+import com.android.server.SystemService;
import com.android.server.am.BatteryStatsService;
import com.android.server.lights.Light;
import com.android.server.lights.LightsManager;
@@ -55,7 +55,6 @@
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.SystemProperties;
-import android.os.SystemService;
import android.os.Trace;
import android.os.UserHandle;
import android.os.WorkSource;
@@ -78,7 +77,7 @@
* The power manager service is responsible for coordinating power management
* functions on the device.
*/
-public final class PowerManagerService extends com.android.server.SystemService
+public final class PowerManagerService extends SystemService
implements Watchdog.Monitor {
private static final String TAG = "PowerManagerService";
@@ -329,6 +328,9 @@
// True if dreams should be activated on dock.
private boolean mDreamsActivateOnDockSetting;
+ // True if doze should not be started until after the screen off transition.
+ private boolean mDozeAfterScreenOffConfig;
+
// The minimum screen off timeout, in milliseconds.
private int mMinimumScreenOffTimeoutConfig;
@@ -414,9 +416,9 @@
private boolean mLowPowerModeSetting;
// Current state of whether the settings are allowing auto low power mode.
- private boolean mAutoLowPowerModeEnabled;
+ private boolean mAutoLowPowerModeConfigured;
- // The user turned off low power mode below the trigger level
+ // The user turned off low power mode below the trigger level
private boolean mAutoLowPowerModeSnoozing;
// True if the battery level is currently considered low.
@@ -603,6 +605,8 @@
com.android.internal.R.integer.config_dreamsBatteryLevelMinimumWhenNotPowered);
mDreamsBatteryLevelDrainCutoffConfig = resources.getInteger(
com.android.internal.R.integer.config_dreamsBatteryLevelDrainCutoff);
+ mDozeAfterScreenOffConfig = resources.getBoolean(
+ com.android.internal.R.bool.config_dozeAfterScreenOff);
mMinimumScreenOffTimeoutConfig = resources.getInteger(
com.android.internal.R.integer.config_minimumScreenOffTimeout);
mMaximumScreenDimDurationConfig = resources.getInteger(
@@ -655,26 +659,12 @@
final boolean lowPowerModeEnabled = Settings.Global.getInt(resolver,
Settings.Global.LOW_POWER_MODE, 0) != 0;
- final boolean autoLowPowerModeEnabled = Settings.Global.getInt(resolver,
+ final boolean autoLowPowerModeConfigured = Settings.Global.getInt(resolver,
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0) != 0;
if (lowPowerModeEnabled != mLowPowerModeSetting
- || autoLowPowerModeEnabled != mAutoLowPowerModeEnabled) {
- if (lowPowerModeEnabled != mLowPowerModeSetting) {
- if (!mAutoLowPowerModeSnoozing && !lowPowerModeEnabled && !mIsPowered
- && mAutoLowPowerModeEnabled) {
- if (DEBUG_SPEW) {
- Slog.d(TAG, "updateSettingsLocked: snoozing low power mode");
- }
- mAutoLowPowerModeSnoozing = true;
- } else if (mAutoLowPowerModeSnoozing && lowPowerModeEnabled) {
- if (DEBUG_SPEW) {
- Slog.d(TAG, "updateSettingsLocked: no longer snoozing low power mode");
- }
- mAutoLowPowerModeSnoozing = true;
- }
- }
+ || autoLowPowerModeConfigured != mAutoLowPowerModeConfigured) {
mLowPowerModeSetting = lowPowerModeEnabled;
- mAutoLowPowerModeEnabled = autoLowPowerModeEnabled;
+ mAutoLowPowerModeConfigured = autoLowPowerModeConfigured;
updateLowPowerModeLocked();
}
@@ -690,21 +680,14 @@
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.LOW_POWER_MODE, 0);
mLowPowerModeSetting = false;
- } else if (!mIsPowered && mAutoLowPowerModeEnabled && !mAutoLowPowerModeSnoozing
- && mBatteryLevelLow && !mLowPowerModeSetting) {
- if (DEBUG_SPEW) {
- Slog.d(TAG, "updateLowPowerModeLocked: trigger level reached, turning setting on");
- }
- // Turn setting on if trigger level is enabled, and we're now below it
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.LOW_POWER_MODE, 1);
- mLowPowerModeSetting = true;
}
- final boolean lowPowerModeEnabled = mLowPowerModeSetting;
+ final boolean autoLowPowerModeEnabled = !mIsPowered && mAutoLowPowerModeConfigured
+ && !mAutoLowPowerModeSnoozing && mBatteryLevelLow;
+ final boolean lowPowerModeEnabled = mLowPowerModeSetting || autoLowPowerModeEnabled;
+
if (mLowPowerModeEnabled != lowPowerModeEnabled) {
mLowPowerModeEnabled = lowPowerModeEnabled;
powerHintInternal(POWER_HINT_LOW_POWER, lowPowerModeEnabled ? 1 : 0);
- mLowPowerModeEnabled = lowPowerModeEnabled;
BackgroundThread.getHandler().post(new Runnable() {
@Override
public void run() {
@@ -1242,16 +1225,18 @@
}
}
- // Phase 2: Update dreams and display power state.
- updateDreamLocked(dirtyPhase2);
- updateDisplayPowerStateLocked(dirtyPhase2);
+ // Phase 2: Update display power state.
+ boolean displayBecameReady = updateDisplayPowerStateLocked(dirtyPhase2);
- // Phase 3: Send notifications, if needed.
+ // Phase 3: Update dream state (depends on display ready signal).
+ updateDreamLocked(dirtyPhase2, displayBecameReady);
+
+ // Phase 4: Send notifications, if needed.
if (mDisplayReady) {
finishInteractiveStateChangeLocked();
}
- // Phase 4: Update suspend blocker.
+ // Phase 5: Update suspend blocker.
// Because we might release the last suspend blocker here, we need to make sure
// we finished everything else first!
updateSuspendBlockerLocked();
@@ -1603,7 +1588,7 @@
/**
* Determines whether to post a message to the sandman to update the dream state.
*/
- private void updateDreamLocked(int dirty) {
+ private void updateDreamLocked(int dirty, boolean displayBecameReady) {
if ((dirty & (DIRTY_WAKEFULNESS
| DIRTY_USER_ACTIVITY
| DIRTY_WAKE_LOCKS
@@ -1612,8 +1597,10 @@
| DIRTY_IS_POWERED
| DIRTY_STAY_ON
| DIRTY_PROXIMITY_POSITIVE
- | DIRTY_BATTERY_STATE)) != 0) {
- scheduleSandmanLocked();
+ | DIRTY_BATTERY_STATE)) != 0 || displayBecameReady) {
+ if (mDisplayReady) {
+ scheduleSandmanLocked();
+ }
}
}
@@ -1640,7 +1627,7 @@
synchronized (mLock) {
mSandmanScheduled = false;
wakefulness = mWakefulness;
- if (mSandmanSummoned) {
+ if (mSandmanSummoned && mDisplayReady) {
startDreaming = ((wakefulness == WAKEFULNESS_DREAMING && canDreamLocked())
|| wakefulness == WAKEFULNESS_DOZING);
mSandmanSummoned = false;
@@ -1772,8 +1759,11 @@
* has been updated so we come back here to double-check and finish up.
*
* This function recalculates the display power state each time.
+ *
+ * @return True if the display became ready.
*/
- private void updateDisplayPowerStateLocked(int dirty) {
+ private boolean updateDisplayPowerStateLocked(int dirty) {
+ final boolean oldDisplayReady = mDisplayReady;
if ((dirty & (DIRTY_WAKE_LOCKS | DIRTY_USER_ACTIVITY | DIRTY_WAKEFULNESS
| DIRTY_ACTUAL_DISPLAY_POWER_STATE_UPDATED | DIRTY_BOOT_COMPLETED
| DIRTY_SETTINGS | DIRTY_SCREEN_ON_BLOCKER_RELEASED)) != 0) {
@@ -1839,6 +1829,7 @@
+ ", mBootCompleted=" + mBootCompleted);
}
}
+ return mDisplayReady && !oldDisplayReady;
}
private static boolean isValidBrightness(int value) {
@@ -1855,8 +1846,15 @@
return DisplayPowerRequest.POLICY_OFF;
}
- if ((mWakeLockSummary & WAKE_LOCK_DOZE) != 0) {
- return DisplayPowerRequest.POLICY_DOZE;
+ if (mWakefulness == WAKEFULNESS_DOZING) {
+ if ((mWakeLockSummary & WAKE_LOCK_DOZE) != 0) {
+ return DisplayPowerRequest.POLICY_DOZE;
+ }
+ if (mDozeAfterScreenOffConfig) {
+ return DisplayPowerRequest.POLICY_OFF;
+ }
+ // Fall through and preserve the current screen policy if not configured to
+ // doze after screen off. This causes the screen off transition to be skipped.
}
if ((mWakeLockSummary & WAKE_LOCK_SCREEN_BRIGHT) != 0
@@ -2064,6 +2062,35 @@
}
}
+ private boolean setLowPowerModeInternal(boolean mode) {
+ synchronized (mLock) {
+ if (DEBUG) Slog.d(TAG, "setLowPowerModeInternal " + mode + " mIsPowered=" + mIsPowered);
+ if (mIsPowered) {
+ return false;
+ }
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.LOW_POWER_MODE, mode ? 1 : 0);
+ mLowPowerModeSetting = mode;
+
+ if (mAutoLowPowerModeConfigured && mBatteryLevelLow) {
+ if (mode && mAutoLowPowerModeSnoozing) {
+ if (DEBUG_SPEW) {
+ Slog.d(TAG, "setLowPowerModeInternal: clearing low power mode snooze");
+ }
+ mAutoLowPowerModeSnoozing = false;
+ } else if (!mode && !mAutoLowPowerModeSnoozing) {
+ if (DEBUG_SPEW) {
+ Slog.d(TAG, "setLowPowerModeInternal: snoozing low power mode");
+ }
+ mAutoLowPowerModeSnoozing = true;
+ }
+ }
+
+ updateLowPowerModeLocked();
+ return true;
+ }
+ }
+
private void handleBatteryStateChangedLocked() {
mDirty |= DIRTY_BATTERY_STATE;
updatePowerStateLocked();
@@ -2326,8 +2353,9 @@
pw.println(" mDreamsEnabledSetting=" + mDreamsEnabledSetting);
pw.println(" mDreamsActivateOnSleepSetting=" + mDreamsActivateOnSleepSetting);
pw.println(" mDreamsActivateOnDockSetting=" + mDreamsActivateOnDockSetting);
+ pw.println(" mDozeAfterScreenOffConfig=" + mDozeAfterScreenOffConfig);
pw.println(" mLowPowerModeSetting=" + mLowPowerModeSetting);
- pw.println(" mAutoLowPowerModeEnabled=" + mAutoLowPowerModeEnabled);
+ pw.println(" mAutoLowPowerModeConfigured=" + mAutoLowPowerModeConfigured);
pw.println(" mAutoLowPowerModeSnoozing=" + mAutoLowPowerModeSnoozing);
pw.println(" mMinimumScreenOffTimeoutConfig=" + mMinimumScreenOffTimeoutConfig);
pw.println(" mMaximumScreenDimDurationConfig=" + mMaximumScreenDimDurationConfig);
@@ -2943,6 +2971,18 @@
}
}
+ @Override // Binder call
+ public boolean setPowerSaveMode(boolean mode) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.DEVICE_POWER, null);
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ return setLowPowerModeInternal(mode);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
/**
* Reboots the device.
*
diff --git a/services/core/java/com/android/server/tv/TvInputHal.java b/services/core/java/com/android/server/tv/TvInputHal.java
index c7d95aa..558ffb5 100644
--- a/services/core/java/com/android/server/tv/TvInputHal.java
+++ b/services/core/java/com/android/server/tv/TvInputHal.java
@@ -32,8 +32,7 @@
* Provides access to the low-level TV input hardware abstraction layer.
*/
final class TvInputHal implements Handler.Callback {
- // STOPSHIP: Turn debugging off
- private final static boolean DEBUG = true;
+ private final static boolean DEBUG = false;
private final static String TAG = TvInputHal.class.getSimpleName();
public final static int SUCCESS = 0;
diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java
index adae84fd..5bfc834 100644
--- a/services/core/java/com/android/server/tv/TvInputManagerService.java
+++ b/services/core/java/com/android/server/tv/TvInputManagerService.java
@@ -95,8 +95,7 @@
/** This class provides a system service that manages television inputs. */
public final class TvInputManagerService extends SystemService {
- // STOPSHIP: Turn debugging off.
- private static final boolean DEBUG = true;
+ private static final boolean DEBUG = false;
private static final String TAG = "TvInputManagerService";
private final Context mContext;
diff --git a/telecomm/java/android/telecomm/AudioState.aidl b/telecomm/java/android/telecom/AudioState.aidl
similarity index 95%
rename from telecomm/java/android/telecomm/AudioState.aidl
rename to telecomm/java/android/telecom/AudioState.aidl
index 03772b6..b36e238 100644
--- a/telecomm/java/android/telecomm/AudioState.aidl
+++ b/telecomm/java/android/telecom/AudioState.aidl
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
/**
* {@hide}
diff --git a/telecomm/java/android/telecomm/AudioState.java b/telecomm/java/android/telecom/AudioState.java
similarity index 99%
rename from telecomm/java/android/telecomm/AudioState.java
rename to telecomm/java/android/telecom/AudioState.java
index 314704b..d0e2860 100644
--- a/telecomm/java/android/telecomm/AudioState.java
+++ b/telecomm/java/android/telecom/AudioState.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.os.Parcel;
import android.os.Parcelable;
diff --git a/telecomm/java/android/telecomm/Call.java b/telecomm/java/android/telecom/Call.java
similarity index 94%
rename from telecomm/java/android/telecomm/Call.java
rename to telecomm/java/android/telecom/Call.java
index 7ada9b1..1d33b3b 100644
--- a/telecomm/java/android/telecomm/Call.java
+++ b/telecomm/java/android/telecom/Call.java
@@ -14,10 +14,9 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.annotation.SystemApi;
-import android.app.PendingIntent;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.DisconnectCause;
@@ -108,7 +107,7 @@
/**
* @return The presentation requirements for the handle. See
- * {@link TelecommManager} for valid values.
+ * {@link TelecomManager} for valid values.
*/
public int getHandlePresentation() {
return mHandlePresentation;
@@ -123,7 +122,7 @@
/**
* @return The presentation requirements for the caller display name. See
- * {@link TelecommManager} for valid values.
+ * {@link TelecomManager} for valid values.
*/
public int getCallerDisplayNamePresentation() {
return mCallerDisplayNamePresentation;
@@ -193,7 +192,7 @@
}
/**
- * @return The current {@link android.telecomm.StatusHints}, or {@code null} if none
+ * @return The current {@link android.telecom.StatusHints}, or {@code null} if none
* have been set.
*/
public StatusHints getStatusHints() {
@@ -369,7 +368,7 @@
}
private final Phone mPhone;
- private final String mTelecommCallId;
+ private final String mTelecomCallId;
private final InCallAdapter mInCallAdapter;
private final List<String> mChildrenIds = new ArrayList<>();
private final List<Call> mChildren = new ArrayList<>();
@@ -402,7 +401,7 @@
* @param videoState The video state in which to answer the call.
*/
public void answer(int videoState) {
- mInCallAdapter.answerCall(mTelecommCallId, videoState);
+ mInCallAdapter.answerCall(mTelecomCallId, videoState);
}
/**
@@ -412,28 +411,28 @@
* @param textMessage An optional text message with which to respond.
*/
public void reject(boolean rejectWithMessage, String textMessage) {
- mInCallAdapter.rejectCall(mTelecommCallId, rejectWithMessage, textMessage);
+ mInCallAdapter.rejectCall(mTelecomCallId, rejectWithMessage, textMessage);
}
/**
* Instructs this {@code Call} to disconnect.
*/
public void disconnect() {
- mInCallAdapter.disconnectCall(mTelecommCallId);
+ mInCallAdapter.disconnectCall(mTelecomCallId);
}
/**
* Instructs this {@code Call} to go on hold.
*/
public void hold() {
- mInCallAdapter.holdCall(mTelecommCallId);
+ mInCallAdapter.holdCall(mTelecomCallId);
}
/**
* Instructs this {@link #STATE_HOLDING} call to release from hold.
*/
public void unhold() {
- mInCallAdapter.unholdCall(mTelecommCallId);
+ mInCallAdapter.unholdCall(mTelecomCallId);
}
/**
@@ -445,7 +444,7 @@
* value must be one of {@code '0'} through {@code '9'}, {@code '*'} or {@code '#'}.
*/
public void playDtmfTone(char digit) {
- mInCallAdapter.playDtmfTone(mTelecommCallId, digit);
+ mInCallAdapter.playDtmfTone(mTelecomCallId, digit);
}
/**
@@ -456,7 +455,7 @@
* currently playing, this method will do nothing.
*/
public void stopDtmfTone() {
- mInCallAdapter.stopDtmfTone(mTelecommCallId);
+ mInCallAdapter.stopDtmfTone(mTelecomCallId);
}
/**
@@ -465,10 +464,10 @@
* A post-dial DTMF string is a string of digits entered after a phone number, when dialed,
* that are immediately sent as DTMF tones to the recipient as soon as the connection is made.
*
- * If the DTMF string contains a {@link TelecommManager#DTMF_CHARACTER_PAUSE} symbol, this
+ * If the DTMF string contains a {@link TelecomManager#DTMF_CHARACTER_PAUSE} symbol, this
* {@code Call} will temporarily pause playing the tones for a pre-defined period of time.
*
- * If the DTMF string contains a {@link TelecommManager#DTMF_CHARACTER_WAIT} symbol, this
+ * If the DTMF string contains a {@link TelecomManager#DTMF_CHARACTER_WAIT} symbol, this
* {@code Call} will pause playing the tones and notify listeners via
* {@link Listener#onPostDialWait(Call, String)}. At this point, the in-call app
* should display to the user an indication of this state and an affordance to continue
@@ -478,7 +477,7 @@
* @param proceed Whether or not to continue with the post-dial sequence.
*/
public void postDialContinue(boolean proceed) {
- mInCallAdapter.postDialContinue(mTelecommCallId, proceed);
+ mInCallAdapter.postDialContinue(mTelecomCallId, proceed);
}
/**
@@ -486,7 +485,7 @@
* an outgoing call.
*/
public void phoneAccountSelected(PhoneAccountHandle accountHandle) {
- mInCallAdapter.phoneAccountSelected(mTelecommCallId, accountHandle);
+ mInCallAdapter.phoneAccountSelected(mTelecomCallId, accountHandle);
}
@@ -497,7 +496,7 @@
*/
public void conference(Call callToConferenceWith) {
if (callToConferenceWith != null) {
- mInCallAdapter.conference(mTelecommCallId, callToConferenceWith.mTelecommCallId);
+ mInCallAdapter.conference(mTelecomCallId, callToConferenceWith.mTelecomCallId);
}
}
@@ -506,21 +505,21 @@
* connected.
*/
public void splitFromConference() {
- mInCallAdapter.splitFromConference(mTelecommCallId);
+ mInCallAdapter.splitFromConference(mTelecomCallId);
}
/**
* Merges the calls within this conference. See {@link PhoneCapabilities#MERGE_CONFERENCE}.
*/
public void mergeConference() {
- mInCallAdapter.mergeConference(mTelecommCallId);
+ mInCallAdapter.mergeConference(mTelecomCallId);
}
/**
* Swaps the calls within this conference. See {@link PhoneCapabilities#SWAP_CONFERENCE}.
*/
public void swapConference() {
- mInCallAdapter.swapConference(mTelecommCallId);
+ mInCallAdapter.swapConference(mTelecomCallId);
}
/**
@@ -531,7 +530,7 @@
*/
public Call getParent() {
if (mParentId != null) {
- return mPhone.internalGetCallByTelecommId(mParentId);
+ return mPhone.internalGetCallByTelecomId(mParentId);
}
return null;
}
@@ -548,7 +547,7 @@
mChildren.clear();
for(String id : mChildrenIds) {
- Call call = mPhone.internalGetCallByTelecommId(id);
+ Call call = mPhone.internalGetCallByTelecomId(id);
if (call == null) {
// At least one child was still not found, so do not save true for "cached"
mChildrenCached = false;
@@ -632,16 +631,16 @@
}
/** {@hide} */
- Call(Phone phone, String telecommCallId, InCallAdapter inCallAdapter) {
+ Call(Phone phone, String telecomCallId, InCallAdapter inCallAdapter) {
mPhone = phone;
- mTelecommCallId = telecommCallId;
+ mTelecomCallId = telecomCallId;
mInCallAdapter = inCallAdapter;
mState = STATE_NEW;
}
/** {@hide} */
final String internalGetCallId() {
- return mTelecommCallId;
+ return mTelecomCallId;
}
/** {@hide} */
diff --git a/telecomm/java/android/telecomm/CallProperties.java b/telecomm/java/android/telecom/CallProperties.java
similarity index 96%
rename from telecomm/java/android/telecomm/CallProperties.java
rename to telecomm/java/android/telecom/CallProperties.java
index 90eb0cb..b1b82e2 100644
--- a/telecomm/java/android/telecomm/CallProperties.java
+++ b/telecomm/java/android/telecom/CallProperties.java
@@ -14,7 +14,7 @@
* limitations under the License
*/
-package android.telecomm;
+package android.telecom;
/**
* Defines properties of a phone call which may be affected by changes to the call.
diff --git a/telecomm/java/android/telecomm/CallState.java b/telecomm/java/android/telecom/CallState.java
similarity index 97%
rename from telecomm/java/android/telecomm/CallState.java
rename to telecomm/java/android/telecom/CallState.java
index 0770e26..7690847 100644
--- a/telecomm/java/android/telecomm/CallState.java
+++ b/telecomm/java/android/telecom/CallState.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.annotation.SystemApi;
@@ -33,7 +33,7 @@
/**
* Indicates that a call is new and not connected. This is used as the default state internally
- * within Telecomm and should not be used between Telecomm and call services. Call services are
+ * within Telecom and should not be used between Telecom and call services. Call services are
* not expected to ever interact with NEW calls, but {@link InCallService}s will see calls in
* this state.
*/
diff --git a/telecomm/java/android/telecomm/CameraCapabilities.aidl b/telecomm/java/android/telecom/CameraCapabilities.aidl
similarity index 96%
rename from telecomm/java/android/telecomm/CameraCapabilities.aidl
rename to telecomm/java/android/telecom/CameraCapabilities.aidl
index 08e6f43..c8e0c5e 100644
--- a/telecomm/java/android/telecomm/CameraCapabilities.aidl
+++ b/telecomm/java/android/telecom/CameraCapabilities.aidl
@@ -14,7 +14,7 @@
* limitations under the License
*/
-package android.telecomm;
+package android.telecom;
/**
* {@hide}
diff --git a/telecomm/java/android/telecomm/CameraCapabilities.java b/telecomm/java/android/telecom/CameraCapabilities.java
similarity index 99%
rename from telecomm/java/android/telecomm/CameraCapabilities.java
rename to telecomm/java/android/telecom/CameraCapabilities.java
index 5f860db..f968c13 100644
--- a/telecomm/java/android/telecomm/CameraCapabilities.java
+++ b/telecomm/java/android/telecom/CameraCapabilities.java
@@ -14,7 +14,7 @@
* limitations under the License
*/
-package android.telecomm;
+package android.telecom;
import android.os.Parcel;
import android.os.Parcelable;
diff --git a/telecomm/java/android/telecomm/Conference.java b/telecomm/java/android/telecom/Conference.java
similarity index 99%
rename from telecomm/java/android/telecomm/Conference.java
rename to telecomm/java/android/telecom/Conference.java
index a4f9c2c..ca85446 100644
--- a/telecomm/java/android/telecomm/Conference.java
+++ b/telecomm/java/android/telecom/Conference.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.telephony.DisconnectCause;
diff --git a/telecomm/java/android/telecomm/Connection.java b/telecomm/java/android/telecom/Connection.java
similarity index 98%
rename from telecomm/java/android/telecomm/Connection.java
rename to telecomm/java/android/telecom/Connection.java
index 2f25dcf..5f63af3 100644
--- a/telecomm/java/android/telecomm/Connection.java
+++ b/telecomm/java/android/telecom/Connection.java
@@ -14,12 +14,11 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
-import com.android.internal.telecomm.IVideoCallback;
-import com.android.internal.telecomm.IVideoProvider;
+import com.android.internal.telecom.IVideoCallback;
+import com.android.internal.telecom.IVideoProvider;
-import android.app.PendingIntent;
import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
@@ -493,7 +492,7 @@
/**
* @return The presentation requirements for the address.
- * See {@link TelecommManager} for valid values.
+ * See {@link TelecomManager} for valid values.
*/
public final int getAddressPresentation() {
return mAddressPresentation;
@@ -508,7 +507,7 @@
/**
* @return The presentation requirements for the handle.
- * See {@link TelecommManager} for valid values.
+ * See {@link TelecomManager} for valid values.
*/
public final int getCallerDisplayNamePresentation() {
return mCallerDisplayNamePresentation;
@@ -666,7 +665,7 @@
*
* @param address The new address.
* @param presentation The presentation requirements for the address.
- * See {@link TelecommManager} for valid values.
+ * See {@link TelecomManager} for valid values.
*/
public final void setAddress(Uri address, int presentation) {
Log.d(this, "setAddress %s", address);
@@ -682,7 +681,7 @@
*
* @param callerDisplayName The new display name.
* @param presentation The presentation requirements for the handle.
- * See {@link TelecommManager} for valid values.
+ * See {@link TelecomManager} for valid values.
*/
public final void setCallerDisplayName(String callerDisplayName, int presentation) {
Log.d(this, "setCallerDisplayName %s", callerDisplayName);
diff --git a/telecomm/java/android/telecomm/ConnectionRequest.aidl b/telecomm/java/android/telecom/ConnectionRequest.aidl
similarity index 96%
rename from telecomm/java/android/telecomm/ConnectionRequest.aidl
rename to telecomm/java/android/telecom/ConnectionRequest.aidl
index 6081c22..de39c67 100644
--- a/telecomm/java/android/telecomm/ConnectionRequest.aidl
+++ b/telecomm/java/android/telecom/ConnectionRequest.aidl
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
/**
* {@hide}
diff --git a/telecomm/java/android/telecomm/ConnectionRequest.java b/telecomm/java/android/telecom/ConnectionRequest.java
similarity index 99%
rename from telecomm/java/android/telecomm/ConnectionRequest.java
rename to telecomm/java/android/telecom/ConnectionRequest.java
index d5a6aa5..71b481b 100644
--- a/telecomm/java/android/telecomm/ConnectionRequest.java
+++ b/telecomm/java/android/telecom/ConnectionRequest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.net.Uri;
import android.os.Bundle;
diff --git a/telecomm/java/android/telecomm/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
similarity index 98%
rename from telecomm/java/android/telecomm/ConnectionService.java
rename to telecomm/java/android/telecom/ConnectionService.java
index 05ddc27..cc80e22 100644
--- a/telecomm/java/android/telecomm/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -14,10 +14,9 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.annotation.SdkConstant;
-import android.app.PendingIntent;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
@@ -29,9 +28,9 @@
import android.telephony.DisconnectCause;
import com.android.internal.os.SomeArgs;
-import com.android.internal.telecomm.IConnectionService;
-import com.android.internal.telecomm.IConnectionServiceAdapter;
-import com.android.internal.telecomm.RemoteServiceCallback;
+import com.android.internal.telecom.IConnectionService;
+import com.android.internal.telecom.IConnectionServiceAdapter;
+import com.android.internal.telecom.RemoteServiceCallback;
import java.util.ArrayList;
import java.util.Collection;
@@ -50,7 +49,7 @@
* The {@link Intent} that must be declared as handled by the service.
*/
@SdkConstant(SdkConstant.SdkConstantType.SERVICE_ACTION)
- public static final String SERVICE_INTERFACE = "android.telecomm.ConnectionService";
+ public static final String SERVICE_INTERFACE = "android.telecom.ConnectionService";
// Flag controlling whether PII is emitted into the logs
private static final boolean PII_DEBUG = Log.isLoggable(android.util.Log.DEBUG);
@@ -391,7 +390,7 @@
mAdapter.setOnHold(id);
break;
case Connection.STATE_NEW:
- // Nothing to tell Telecomm
+ // Nothing to tell Telecom
break;
case Connection.STATE_RINGING:
mAdapter.setRinging(id);
@@ -506,8 +505,8 @@
}
/**
- * This can be used by telecomm to either create a new outgoing call or attach to an existing
- * incoming call. In either case, telecomm will cycle through a set of services and call
+ * This can be used by telecom to either create a new outgoing call or attach to an existing
+ * incoming call. In either case, telecom will cycle through a set of services and call
* createConnection util a connection service cancels the process or completes it successfully.
*/
private void createConnection(
diff --git a/telecomm/java/android/telecomm/ConnectionServiceAdapter.java b/telecomm/java/android/telecom/ConnectionServiceAdapter.java
similarity index 96%
rename from telecomm/java/android/telecomm/ConnectionServiceAdapter.java
rename to telecomm/java/android/telecom/ConnectionServiceAdapter.java
index 19f42d6..f6bcdc6 100644
--- a/telecomm/java/android/telecomm/ConnectionServiceAdapter.java
+++ b/telecomm/java/android/telecom/ConnectionServiceAdapter.java
@@ -14,15 +14,14 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
-import android.app.PendingIntent;
import android.net.Uri;
import android.os.IBinder.DeathRecipient;
import android.os.RemoteException;
-import com.android.internal.telecomm.IConnectionServiceAdapter;
-import com.android.internal.telecomm.RemoteServiceCallback;
+import com.android.internal.telecom.IConnectionServiceAdapter;
+import com.android.internal.telecom.RemoteServiceCallback;
import java.util.Collections;
import java.util.Iterator;
@@ -163,10 +162,10 @@
}
/**
- * Asks Telecomm to start or stop a ringback tone for a call.
+ * Asks Telecom to start or stop a ringback tone for a call.
*
* @param callId The unique ID of the call whose ringback is being changed.
- * @param ringback Whether Telecomm should start playing a ringback tone.
+ * @param ringback Whether Telecom should start playing a ringback tone.
*/
void setRingbackRequested(String callId, boolean ringback) {
for (IConnectionServiceAdapter adapter : mAdapters) {
diff --git a/telecomm/java/android/telecomm/ConnectionServiceAdapterServant.java b/telecomm/java/android/telecom/ConnectionServiceAdapterServant.java
similarity index 98%
rename from telecomm/java/android/telecomm/ConnectionServiceAdapterServant.java
rename to telecomm/java/android/telecom/ConnectionServiceAdapterServant.java
index 2aac7fc..ffbbc8a 100644
--- a/telecomm/java/android/telecomm/ConnectionServiceAdapterServant.java
+++ b/telecomm/java/android/telecom/ConnectionServiceAdapterServant.java
@@ -14,18 +14,17 @@
R* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
-import android.app.PendingIntent;
import android.net.Uri;
import android.os.Handler;
import android.os.Message;
import android.os.RemoteException;
import com.android.internal.os.SomeArgs;
-import com.android.internal.telecomm.IConnectionServiceAdapter;
-import com.android.internal.telecomm.IVideoProvider;
-import com.android.internal.telecomm.RemoteServiceCallback;
+import com.android.internal.telecom.IConnectionServiceAdapter;
+import com.android.internal.telecom.IVideoProvider;
+import com.android.internal.telecom.RemoteServiceCallback;
import java.util.List;
diff --git a/telecomm/java/android/telecomm/GatewayInfo.aidl b/telecomm/java/android/telecom/GatewayInfo.aidl
similarity index 95%
rename from telecomm/java/android/telecomm/GatewayInfo.aidl
rename to telecomm/java/android/telecom/GatewayInfo.aidl
index bd81014..ad9858c 100644
--- a/telecomm/java/android/telecomm/GatewayInfo.aidl
+++ b/telecomm/java/android/telecom/GatewayInfo.aidl
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
/**
* {@hide}
diff --git a/telecomm/java/android/telecomm/GatewayInfo.java b/telecomm/java/android/telecom/GatewayInfo.java
similarity index 98%
rename from telecomm/java/android/telecomm/GatewayInfo.java
rename to telecomm/java/android/telecom/GatewayInfo.java
index a720284..583c3e2 100644
--- a/telecomm/java/android/telecomm/GatewayInfo.java
+++ b/telecomm/java/android/telecom/GatewayInfo.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.annotation.SystemApi;
import android.net.Uri;
diff --git a/telecomm/java/android/telecomm/InCallAdapter.java b/telecomm/java/android/telecom/InCallAdapter.java
similarity index 82%
rename from telecomm/java/android/telecomm/InCallAdapter.java
rename to telecomm/java/android/telecom/InCallAdapter.java
index 899f35e..fd3cf2e 100644
--- a/telecomm/java/android/telecomm/InCallAdapter.java
+++ b/telecomm/java/android/telecom/InCallAdapter.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.os.RemoteException;
-import com.android.internal.telecomm.IInCallAdapter;
+import com.android.internal.telecom.IInCallAdapter;
/**
* Receives commands from {@link InCallService} implementations which should be executed by
- * Telecomm. When Telecomm binds to a {@link InCallService}, an instance of this class is given to
+ * Telecom. When Telecom binds to a {@link InCallService}, an instance of this class is given to
* the in-call service through which it can manipulate live (active, dialing, ringing) calls. When
* the in-call service is notified of new calls, it can use the
* given call IDs to execute commands such as {@link #answerCall} for incoming calls or
@@ -44,7 +44,7 @@
}
/**
- * Instructs Telecomm to answer the specified call.
+ * Instructs Telecom to answer the specified call.
*
* @param callId The identifier of the call to answer.
* @param videoState The video state in which to answer the call.
@@ -57,7 +57,7 @@
}
/**
- * Instructs Telecomm to reject the specified call.
+ * Instructs Telecom to reject the specified call.
*
* @param callId The identifier of the call to reject.
* @param rejectWithMessage Whether to reject with a text message.
@@ -71,7 +71,7 @@
}
/**
- * Instructs Telecomm to disconnect the specified call.
+ * Instructs Telecom to disconnect the specified call.
*
* @param callId The identifier of the call to disconnect.
*/
@@ -83,7 +83,7 @@
}
/**
- * Instructs Telecomm to put the specified call on hold.
+ * Instructs Telecom to put the specified call on hold.
*
* @param callId The identifier of the call to put on hold.
*/
@@ -95,7 +95,7 @@
}
/**
- * Instructs Telecomm to release the specified call from hold.
+ * Instructs Telecom to release the specified call from hold.
*
* @param callId The identifier of the call to release from hold.
*/
@@ -131,7 +131,7 @@
}
/**
- * Instructs Telecomm to play a dual-tone multi-frequency signaling (DTMF) tone in a call.
+ * Instructs Telecom to play a dual-tone multi-frequency signaling (DTMF) tone in a call.
*
* Any other currently playing DTMF tone in the specified call is immediately stopped.
*
@@ -147,7 +147,7 @@
}
/**
- * Instructs Telecomm to stop any dual-tone multi-frequency signaling (DTMF) tone currently
+ * Instructs Telecom to stop any dual-tone multi-frequency signaling (DTMF) tone currently
* playing.
*
* DTMF tones are played by calling {@link #playDtmfTone(String,char)}. If no DTMF tone is
@@ -163,17 +163,17 @@
}
/**
- * Instructs Telecomm to continue playing a post-dial DTMF string.
+ * Instructs Telecom to continue playing a post-dial DTMF string.
*
* A post-dial DTMF string is a string of digits entered after a phone number, when dialed,
* that are immediately sent as DTMF tones to the recipient as soon as the connection is made.
- * While these tones are playing, Telecomm will notify the {@link InCallService} that the call
+ * While these tones are playing, Telecom will notify the {@link InCallService} that the call
* is in the post dial state.
*
- * If the DTMF string contains a {@link TelecommManager#DTMF_CHARACTER_PAUSE} symbol, Telecomm
+ * If the DTMF string contains a {@link TelecomManager#DTMF_CHARACTER_PAUSE} symbol, Telecom
* will temporarily pause playing the tones for a pre-defined period of time.
*
- * If the DTMF string contains a {@link TelecommManager#DTMF_CHARACTER_WAIT} symbol, Telecomm
+ * If the DTMF string contains a {@link TelecomManager#DTMF_CHARACTER_WAIT} symbol, Telecom
* will pause playing the tones and notify the {@link InCallService} that the call is in the
* post dial wait state. When the user decides to continue the postdial sequence, the
* {@link InCallService} should invoke the {@link #postDialContinue(String,boolean)} method.
@@ -189,7 +189,7 @@
}
/**
- * Instructs Telecomm to add a PhoneAccountHandle to the specified call
+ * Instructs Telecom to add a PhoneAccountHandle to the specified call
*
* @param callId The identifier of the call
* @param accountHandle The PhoneAccountHandle through which to place the call
@@ -202,7 +202,7 @@
}
/**
- * Instructs Telecomm to conference the specified call.
+ * Instructs Telecom to conference the specified call.
*
* @param callId The unique ID of the call.
* @hide
@@ -215,7 +215,7 @@
}
/**
- * Instructs Telecomm to split the specified call from any conference call with which it may be
+ * Instructs Telecom to split the specified call from any conference call with which it may be
* connected.
*
* @param callId The unique ID of the call.
@@ -229,7 +229,7 @@
}
/**
- * Instructs Telecomm to merge child calls of the specified conference call.
+ * Instructs Telecom to merge child calls of the specified conference call.
*/
public void mergeConference(String callId) {
try {
@@ -239,7 +239,7 @@
}
/**
- * Instructs Telecomm to swap the child calls of the specified conference call.
+ * Instructs Telecom to swap the child calls of the specified conference call.
*/
public void swapConference(String callId) {
try {
@@ -249,7 +249,7 @@
}
/**
- * Instructs Telecomm to turn the proximity sensor on.
+ * Instructs Telecom to turn the proximity sensor on.
*/
public void turnProximitySensorOn() {
try {
@@ -259,7 +259,7 @@
}
/**
- * Instructs Telecomm to turn the proximity sensor off.
+ * Instructs Telecom to turn the proximity sensor off.
*
* @param screenOnImmediately If true, the screen will be turned on immediately if it was
* previously off. Otherwise, the screen will only be turned on after the proximity sensor
diff --git a/telecomm/java/android/telecomm/InCallService.java b/telecomm/java/android/telecom/InCallService.java
similarity index 97%
rename from telecomm/java/android/telecomm/InCallService.java
rename to telecomm/java/android/telecom/InCallService.java
index 51cd537..fa12756 100644
--- a/telecomm/java/android/telecomm/InCallService.java
+++ b/telecomm/java/android/telecom/InCallService.java
@@ -14,11 +14,10 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.annotation.SystemApi;
import android.annotation.SdkConstant;
-import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
@@ -28,14 +27,14 @@
import android.view.Surface;
import com.android.internal.os.SomeArgs;
-import com.android.internal.telecomm.IInCallAdapter;
-import com.android.internal.telecomm.IInCallService;
+import com.android.internal.telecom.IInCallAdapter;
+import com.android.internal.telecom.IInCallService;
import java.lang.String;
/**
* This service is implemented by any app that wishes to provide the user-interface for managing
- * phone calls. Telecomm binds to this service while there exists a live (active or incoming) call,
+ * phone calls. Telecom binds to this service while there exists a live (active or incoming) call,
* and uses it to notify the in-call app of any live and and recently disconnected calls.
*
* {@hide}
@@ -47,7 +46,7 @@
* The {@link Intent} that must be declared as handled by the service.
*/
@SdkConstant(SdkConstant.SdkConstantType.SERVICE_ACTION)
- public static final String SERVICE_INTERFACE = "android.telecomm.InCallService";
+ public static final String SERVICE_INTERFACE = "android.telecom.InCallService";
private static final int MSG_SET_IN_CALL_ADAPTER = 1;
private static final int MSG_ADD_CALL = 2;
diff --git a/telecomm/java/android/telecomm/Log.java b/telecomm/java/android/telecom/Log.java
similarity index 97%
rename from telecomm/java/android/telecomm/Log.java
rename to telecomm/java/android/telecom/Log.java
index 446ae75..73cc4a5 100644
--- a/telecomm/java/android/telecomm/Log.java
+++ b/telecomm/java/android/telecom/Log.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@@ -28,8 +28,8 @@
*/
final public class Log {
- // Generic tag for all Telecomm Framework logging
- private static final String TAG = "TelecommFramework";
+ // Generic tag for all Telecom Framework logging
+ private static final String TAG = "TelecomFramework";
public static final boolean FORCE_LOGGING = false; /* STOP SHIP if true */
public static final boolean DEBUG = isLoggable(android.util.Log.DEBUG);
diff --git a/telecomm/java/android/telecomm/ParcelableCall.aidl b/telecomm/java/android/telecom/ParcelableCall.aidl
similarity index 96%
rename from telecomm/java/android/telecomm/ParcelableCall.aidl
rename to telecomm/java/android/telecom/ParcelableCall.aidl
index 18691d2..480e82f 100644
--- a/telecomm/java/android/telecomm/ParcelableCall.aidl
+++ b/telecomm/java/android/telecom/ParcelableCall.aidl
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
/**
* {@hide}
diff --git a/telecomm/java/android/telecomm/ParcelableCall.java b/telecomm/java/android/telecom/ParcelableCall.java
similarity index 98%
rename from telecomm/java/android/telecomm/ParcelableCall.java
rename to telecomm/java/android/telecom/ParcelableCall.java
index f7fc125..838c7cf 100644
--- a/telecomm/java/android/telecomm/ParcelableCall.java
+++ b/telecomm/java/android/telecom/ParcelableCall.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.net.Uri;
import android.os.Bundle;
@@ -27,10 +27,10 @@
import java.util.Collections;
import java.util.List;
-import com.android.internal.telecomm.IVideoProvider;
+import com.android.internal.telecom.IVideoProvider;
/**
- * Information about a call that is used between InCallService and Telecomm.
+ * Information about a call that is used between InCallService and Telecom.
* @hide
*/
public final class ParcelableCall implements Parcelable {
@@ -154,7 +154,7 @@
}
/**
- * The presentation requirements for the handle. See {@link TelecommManager} for valid values.
+ * The presentation requirements for the handle. See {@link TelecomManager} for valid values.
*/
public int getHandlePresentation() {
return mHandlePresentation;
@@ -167,7 +167,7 @@
/**
* The presentation requirements for the caller display name.
- * See {@link TelecommManager} for valid values.
+ * See {@link TelecomManager} for valid values.
*/
public int getCallerDisplayNamePresentation() {
return mCallerDisplayNamePresentation;
diff --git a/telecomm/java/android/telecomm/ParcelableConference.aidl b/telecomm/java/android/telecom/ParcelableConference.aidl
similarity index 95%
rename from telecomm/java/android/telecomm/ParcelableConference.aidl
rename to telecomm/java/android/telecom/ParcelableConference.aidl
index a260085..155ba94 100644
--- a/telecomm/java/android/telecomm/ParcelableConference.aidl
+++ b/telecomm/java/android/telecom/ParcelableConference.aidl
@@ -14,6 +14,6 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
parcelable ParcelableConference;
diff --git a/telecomm/java/android/telecomm/ParcelableConference.java b/telecomm/java/android/telecom/ParcelableConference.java
similarity index 98%
rename from telecomm/java/android/telecomm/ParcelableConference.java
rename to telecomm/java/android/telecom/ParcelableConference.java
index b2798613..97c709c 100644
--- a/telecomm/java/android/telecomm/ParcelableConference.java
+++ b/telecomm/java/android/telecom/ParcelableConference.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.os.Parcel;
import android.os.Parcelable;
diff --git a/telecomm/java/android/telecomm/ParcelableConnection.aidl b/telecomm/java/android/telecom/ParcelableConnection.aidl
similarity index 96%
rename from telecomm/java/android/telecomm/ParcelableConnection.aidl
rename to telecomm/java/android/telecom/ParcelableConnection.aidl
index 143c5a6..e91ebc3 100644
--- a/telecomm/java/android/telecomm/ParcelableConnection.aidl
+++ b/telecomm/java/android/telecom/ParcelableConnection.aidl
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
/**
* {@hide}
diff --git a/telecomm/java/android/telecomm/ParcelableConnection.java b/telecomm/java/android/telecom/ParcelableConnection.java
similarity index 97%
rename from telecomm/java/android/telecomm/ParcelableConnection.java
rename to telecomm/java/android/telecom/ParcelableConnection.java
index cadcd85..63393b2 100644
--- a/telecomm/java/android/telecomm/ParcelableConnection.java
+++ b/telecomm/java/android/telecom/ParcelableConnection.java
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
-import com.android.internal.telecomm.IVideoProvider;
+import com.android.internal.telecom.IVideoProvider;
import java.util.ArrayList;
import java.util.List;
/**
- * Information about a connection that is used between Telecomm and the ConnectionService.
- * This is used to send initial Connection information to Telecomm when the connection is
+ * Information about a connection that is used between Telecom and the ConnectionService.
+ * This is used to send initial Connection information to Telecom when the connection is
* first created.
* @hide
*/
diff --git a/telecomm/java/android/telecomm/Phone.java b/telecomm/java/android/telecom/Phone.java
similarity index 89%
rename from telecomm/java/android/telecomm/Phone.java
rename to telecomm/java/android/telecom/Phone.java
index 8831f8f..5131790 100644
--- a/telecomm/java/android/telecomm/Phone.java
+++ b/telecomm/java/android/telecom/Phone.java
@@ -14,10 +14,9 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.annotation.SystemApi;
-import android.app.PendingIntent;
import android.util.ArrayMap;
import java.util.Collections;
@@ -77,8 +76,8 @@
public void onCallRemoved(Phone phone, Call call) { }
}
- // A Map allows us to track each Call by its Telecomm-specified call ID
- private final Map<String, Call> mCallByTelecommCallId = new ArrayMap<>();
+ // A Map allows us to track each Call by its Telecom-specified call ID
+ private final Map<String, Call> mCallByTelecomCallId = new ArrayMap<>();
// A List allows us to keep the Calls in a stable iteration order so that casually developed
// user interface components do not incur any spurious jank
@@ -101,32 +100,32 @@
/** {@hide} */
final void internalAddCall(ParcelableCall parcelableCall) {
Call call = new Call(this, parcelableCall.getId(), mInCallAdapter);
- mCallByTelecommCallId.put(parcelableCall.getId(), call);
+ mCallByTelecomCallId.put(parcelableCall.getId(), call);
mCalls.add(call);
checkCallTree(parcelableCall);
- call.internalUpdate(parcelableCall, mCallByTelecommCallId);
+ call.internalUpdate(parcelableCall, mCallByTelecomCallId);
fireCallAdded(call);
}
/** {@hide} */
final void internalRemoveCall(Call call) {
- mCallByTelecommCallId.remove(call.internalGetCallId());
+ mCallByTelecomCallId.remove(call.internalGetCallId());
mCalls.remove(call);
fireCallRemoved(call);
}
/** {@hide} */
final void internalUpdateCall(ParcelableCall parcelableCall) {
- Call call = mCallByTelecommCallId.get(parcelableCall.getId());
+ Call call = mCallByTelecomCallId.get(parcelableCall.getId());
if (call != null) {
checkCallTree(parcelableCall);
- call.internalUpdate(parcelableCall, mCallByTelecommCallId);
+ call.internalUpdate(parcelableCall, mCallByTelecomCallId);
}
}
/** {@hide} */
- final void internalSetPostDialWait(String telecommId, String remaining) {
- Call call = mCallByTelecommCallId.get(telecommId);
+ final void internalSetPostDialWait(String telecomId, String remaining) {
+ Call call = mCallByTelecomCallId.get(telecomId);
if (call != null) {
call.internalSetPostDialWait(remaining);
}
@@ -141,8 +140,8 @@
}
/** {@hide} */
- final Call internalGetCallByTelecommId(String telecommId) {
- return mCallByTelecommCallId.get(telecommId);
+ final Call internalGetCallByTelecomId(String telecomId) {
+ return mCallByTelecomCallId.get(telecomId);
}
/** {@hide} */
@@ -269,13 +268,13 @@
private void checkCallTree(ParcelableCall parcelableCall) {
if (parcelableCall.getParentCallId() != null &&
- !mCallByTelecommCallId.containsKey(parcelableCall.getParentCallId())) {
+ !mCallByTelecomCallId.containsKey(parcelableCall.getParentCallId())) {
Log.wtf(this, "ParcelableCall %s has nonexistent parent %s",
parcelableCall.getId(), parcelableCall.getParentCallId());
}
if (parcelableCall.getChildCallIds() != null) {
for (int i = 0; i < parcelableCall.getChildCallIds().size(); i++) {
- if (!mCallByTelecommCallId.containsKey(parcelableCall.getChildCallIds().get(i))) {
+ if (!mCallByTelecomCallId.containsKey(parcelableCall.getChildCallIds().get(i))) {
Log.wtf(this, "ParcelableCall %s has nonexistent child %s",
parcelableCall.getId(), parcelableCall.getChildCallIds().get(i));
}
diff --git a/telecomm/java/android/telecomm/PhoneAccount.aidl b/telecomm/java/android/telecom/PhoneAccount.aidl
similarity index 96%
rename from telecomm/java/android/telecomm/PhoneAccount.aidl
rename to telecomm/java/android/telecom/PhoneAccount.aidl
index 15377df..d5e6058 100644
--- a/telecomm/java/android/telecomm/PhoneAccount.aidl
+++ b/telecomm/java/android/telecom/PhoneAccount.aidl
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
/**
* {@hide}
diff --git a/telecomm/java/android/telecomm/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java
similarity index 99%
rename from telecomm/java/android/telecomm/PhoneAccount.java
rename to telecomm/java/android/telecom/PhoneAccount.java
index b37c144..0c233ebb 100644
--- a/telecomm/java/android/telecomm/PhoneAccount.java
+++ b/telecomm/java/android/telecom/PhoneAccount.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.content.Context;
import android.content.pm.PackageManager;
diff --git a/telecomm/java/android/telecomm/PhoneAccountHandle.aidl b/telecomm/java/android/telecom/PhoneAccountHandle.aidl
similarity index 96%
rename from telecomm/java/android/telecomm/PhoneAccountHandle.aidl
rename to telecomm/java/android/telecom/PhoneAccountHandle.aidl
index 3be5a2e..f8f9656 100644
--- a/telecomm/java/android/telecomm/PhoneAccountHandle.aidl
+++ b/telecomm/java/android/telecom/PhoneAccountHandle.aidl
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
/**
* {@hide}
diff --git a/telecomm/java/android/telecomm/PhoneAccountHandle.java b/telecomm/java/android/telecom/PhoneAccountHandle.java
similarity index 96%
rename from telecomm/java/android/telecomm/PhoneAccountHandle.java
rename to telecomm/java/android/telecom/PhoneAccountHandle.java
index 04cd2b0..e13df76 100644
--- a/telecomm/java/android/telecomm/PhoneAccountHandle.java
+++ b/telecomm/java/android/telecom/PhoneAccountHandle.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.content.ComponentName;
import android.os.Parcel;
@@ -37,7 +37,7 @@
}
/**
- * The {@code ComponentName} of the {@link android.telecomm.ConnectionService} which is
+ * The {@code ComponentName} of the {@link android.telecom.ConnectionService} which is
* responsible for making phone calls using this {@code PhoneAccountHandle}.
*
* @return A suitable {@code ComponentName}.
diff --git a/telecomm/java/android/telecomm/PhoneCapabilities.java b/telecomm/java/android/telecom/PhoneCapabilities.java
similarity index 99%
rename from telecomm/java/android/telecomm/PhoneCapabilities.java
rename to telecomm/java/android/telecom/PhoneCapabilities.java
index ec11376..e73dfe2 100644
--- a/telecomm/java/android/telecomm/PhoneCapabilities.java
+++ b/telecomm/java/android/telecom/PhoneCapabilities.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
/**
* Defines capabilities a phone call can support, such as conference calling and video telephony.
diff --git a/telecomm/java/android/telecomm/RemoteConference.java b/telecomm/java/android/telecom/RemoteConference.java
similarity index 98%
rename from telecomm/java/android/telecomm/RemoteConference.java
rename to telecomm/java/android/telecom/RemoteConference.java
index dbff079..996e091 100644
--- a/telecomm/java/android/telecomm/RemoteConference.java
+++ b/telecomm/java/android/telecom/RemoteConference.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
-import com.android.internal.telecomm.IConnectionService;
+import com.android.internal.telecom.IConnectionService;
import android.os.RemoteException;
import android.telephony.DisconnectCause;
diff --git a/telecomm/java/android/telecomm/RemoteConnection.java b/telecomm/java/android/telecom/RemoteConnection.java
similarity index 97%
rename from telecomm/java/android/telecomm/RemoteConnection.java
rename to telecomm/java/android/telecom/RemoteConnection.java
index f3a6085..bf699b3 100644
--- a/telecomm/java/android/telecomm/RemoteConnection.java
+++ b/telecomm/java/android/telecom/RemoteConnection.java
@@ -14,13 +14,12 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
-import com.android.internal.telecomm.IConnectionService;
-import com.android.internal.telecomm.IVideoCallback;
-import com.android.internal.telecomm.IVideoProvider;
+import com.android.internal.telecom.IConnectionService;
+import com.android.internal.telecom.IVideoCallback;
+import com.android.internal.telecom.IVideoProvider;
-import android.app.PendingIntent;
import android.net.Uri;
import android.os.IBinder;
import android.os.RemoteException;
@@ -120,7 +119,7 @@
* @param connection The {@code RemoteConnection} invoking this method.
* @param address The new address of the {@code RemoteConnection}.
* @param presentation The presentation requirements for the address.
- * See {@link TelecommManager} for valid values.
+ * See {@link TelecomManager} for valid values.
*/
public void onAddressChanged(RemoteConnection connection, Uri address, int presentation) {}
@@ -131,7 +130,7 @@
* @param connection The {@code RemoteConnection} invoking this method.
* @param callerDisplayName The new caller display name of the {@code RemoteConnection}.
* @param presentation The presentation requirements for the handle.
- * See {@link TelecommManager} for valid values.
+ * See {@link TelecomManager} for valid values.
*/
public void onCallerDisplayNameChanged(
RemoteConnection connection, String callerDisplayName, int presentation) {}
@@ -508,7 +507,7 @@
}
/**
- * @return The presentation requirements for the address. See {@link TelecommManager} for valid
+ * @return The presentation requirements for the address. See {@link TelecomManager} for valid
* values.
*/
public int getAddressPresentation() {
@@ -524,7 +523,7 @@
/**
* @return The presentation requirements for the caller display name. See
- * {@link TelecommManager} for valid values.
+ * {@link TelecomManager} for valid values.
*/
public int getCallerDisplayNamePresentation() {
return mCallerDisplayNamePresentation;
@@ -694,15 +693,15 @@
* Instructs this {@code RemoteConnection} to continue playing a post-dial DTMF string.
*
* A post-dial DTMF string is a string of digits following the first instance of either
- * {@link TelecommManager#DTMF_CHARACTER_WAIT} or {@link TelecommManager#DTMF_CHARACTER_PAUSE}.
+ * {@link TelecomManager#DTMF_CHARACTER_WAIT} or {@link TelecomManager#DTMF_CHARACTER_PAUSE}.
* These digits are immediately sent as DTMF tones to the recipient as soon as the
* connection is made.
*
- * If the DTMF string contains a {@link TelecommManager#DTMF_CHARACTER_PAUSE} symbol, this
+ * If the DTMF string contains a {@link TelecomManager#DTMF_CHARACTER_PAUSE} symbol, this
* {@code RemoteConnection} will temporarily pause playing the tones for a pre-defined period
* of time.
*
- * If the DTMF string contains a {@link TelecommManager#DTMF_CHARACTER_WAIT} symbol, this
+ * If the DTMF string contains a {@link TelecomManager#DTMF_CHARACTER_WAIT} symbol, this
* {@code RemoteConnection} will pause playing the tones and notify callbackss via
* {@link Callback#onPostDialWait(RemoteConnection, String)}. At this point, the in-call app
* should display to the user an indication of this state and an affordance to continue
diff --git a/telecomm/java/android/telecomm/RemoteConnectionManager.java b/telecomm/java/android/telecom/RemoteConnectionManager.java
similarity index 97%
rename from telecomm/java/android/telecomm/RemoteConnectionManager.java
rename to telecomm/java/android/telecom/RemoteConnectionManager.java
index 83502c5..0366509 100644
--- a/telecomm/java/android/telecomm/RemoteConnectionManager.java
+++ b/telecomm/java/android/telecom/RemoteConnectionManager.java
@@ -14,12 +14,12 @@
R* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.content.ComponentName;
import android.os.RemoteException;
-import com.android.internal.telecomm.IConnectionService;
+import com.android.internal.telecom.IConnectionService;
import java.util.HashMap;
import java.util.Map;
diff --git a/telecomm/java/android/telecomm/RemoteConnectionService.java b/telecomm/java/android/telecom/RemoteConnectionService.java
similarity index 97%
rename from telecomm/java/android/telecomm/RemoteConnectionService.java
rename to telecomm/java/android/telecom/RemoteConnectionService.java
index d4dd9af..bfd7c51 100644
--- a/telecomm/java/android/telecomm/RemoteConnectionService.java
+++ b/telecomm/java/android/telecom/RemoteConnectionService.java
@@ -14,19 +14,18 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
-import android.app.PendingIntent;
import android.net.Uri;
import android.os.IBinder;
import android.os.IBinder.DeathRecipient;
import android.os.RemoteException;
import android.telephony.DisconnectCause;
-import com.android.internal.telecomm.IConnectionService;
-import com.android.internal.telecomm.IConnectionServiceAdapter;
-import com.android.internal.telecomm.IVideoProvider;
-import com.android.internal.telecomm.RemoteServiceCallback;
+import com.android.internal.telecom.IConnectionService;
+import com.android.internal.telecom.IConnectionServiceAdapter;
+import com.android.internal.telecom.IVideoProvider;
+import com.android.internal.telecom.RemoteServiceCallback;
import java.util.ArrayList;
import java.util.HashMap;
diff --git a/telecomm/java/android/telecomm/Response.java b/telecomm/java/android/telecom/Response.java
similarity index 97%
rename from telecomm/java/android/telecomm/Response.java
rename to telecomm/java/android/telecom/Response.java
index ad78ebd..ce7a761 100644
--- a/telecomm/java/android/telecomm/Response.java
+++ b/telecomm/java/android/telecom/Response.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
/**
* @hide
diff --git a/telecomm/java/android/telecomm/StatusHints.aidl b/telecomm/java/android/telecom/StatusHints.aidl
similarity index 96%
rename from telecomm/java/android/telecomm/StatusHints.aidl
rename to telecomm/java/android/telecom/StatusHints.aidl
index 22da293..ae7df2e 100644
--- a/telecomm/java/android/telecomm/StatusHints.aidl
+++ b/telecomm/java/android/telecom/StatusHints.aidl
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
/**
* {@hide}
diff --git a/telecomm/java/android/telecomm/StatusHints.java b/telecomm/java/android/telecom/StatusHints.java
similarity index 99%
rename from telecomm/java/android/telecomm/StatusHints.java
rename to telecomm/java/android/telecom/StatusHints.java
index ff96a5b..a32eae7 100644
--- a/telecomm/java/android/telecomm/StatusHints.java
+++ b/telecomm/java/android/telecom/StatusHints.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import android.content.ComponentName;
import android.content.Context;
diff --git a/telecomm/java/android/telecomm/TelecommManager.java b/telecomm/java/android/telecom/TelecomManager.java
similarity index 76%
rename from telecomm/java/android/telecomm/TelecommManager.java
rename to telecomm/java/android/telecom/TelecomManager.java
index e2c98cd..c69a17c 100644
--- a/telecomm/java/android/telecomm/TelecommManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -12,7 +12,7 @@
* the License.
*/
-package android.telecomm;
+package android.telecom;
import android.annotation.SystemApi;
import android.content.ComponentName;
@@ -20,59 +20,60 @@
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.telephony.TelephonyManager;
import android.util.Log;
-import com.android.internal.telecomm.ITelecommService;
+import com.android.internal.telecom.ITelecomService;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
- * Provides access to Telecomm-related functionality.
+ * Provides access to Telecom-related functionality.
* TODO: Move this all into PhoneManager.
*/
-public class TelecommManager {
+public class TelecomManager {
/**
* Activity action: Starts the UI for handing an incoming call. This intent starts the in-call
- * UI by notifying the Telecomm system that an incoming call exists for a specific call service
- * (see {@link android.telecomm.ConnectionService}). Telecomm reads the Intent extras to find
- * and bind to the appropriate {@link android.telecomm.ConnectionService} which Telecomm will
+ * UI by notifying the Telecom system that an incoming call exists for a specific call service
+ * (see {@link android.telecom.ConnectionService}). Telecom reads the Intent extras to find
+ * and bind to the appropriate {@link android.telecom.ConnectionService} which Telecom will
* ultimately use to control and get information about the call.
* <p>
* Input: get*Extra field {@link #EXTRA_PHONE_ACCOUNT_HANDLE} contains the component name of the
- * {@link android.telecomm.ConnectionService} that Telecomm should bind to. Telecomm will then
+ * {@link android.telecom.ConnectionService} that Telecom should bind to. Telecom will then
* ask the connection service for more information about the call prior to showing any UI.
*
* @hide
*/
- public static final String ACTION_INCOMING_CALL = "android.telecomm.action.INCOMING_CALL";
+ public static final String ACTION_INCOMING_CALL = "android.telecom.action.INCOMING_CALL";
/**
* The {@link android.content.Intent} action used to configure a
- * {@link android.telecomm.ConnectionService}.
+ * {@link android.telecom.ConnectionService}.
*/
public static final String ACTION_CONNECTION_SERVICE_CONFIGURE =
- "android.telecomm.action.CONNECTION_SERVICE_CONFIGURE";
+ "android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
/**
* The {@link android.content.Intent} action used to show the call settings page.
*/
public static final String ACTION_SHOW_CALL_SETTINGS =
- "android.telecomm.action.SHOW_CALL_SETTINGS";
+ "android.telecom.action.SHOW_CALL_SETTINGS";
/**
* The {@link android.content.Intent} action used to show the settings page used to configure
* {@link PhoneAccount} preferences.
*/
public static final String ACTION_CHANGE_PHONE_ACCOUNTS =
- "android.telecomm.action.CHANGE_PHONE_ACCOUNTS";
+ "android.telecom.action.CHANGE_PHONE_ACCOUNTS";
/**
* The {@link android.content.Intent} action used to inform a
- * {@link android.telecomm.ConnectionService} that one of its {@link PhoneAccount}s has been
- * enabled. The {@link TelecommManager#EXTRA_PHONE_ACCOUNT_HANDLE} extra is used to indicate
+ * {@link android.telecom.ConnectionService} that one of its {@link PhoneAccount}s has been
+ * enabled. The {@link TelecomManager#EXTRA_PHONE_ACCOUNT_HANDLE} extra is used to indicate
* which {@link PhoneAccount} has been enabled.
*/
public static final String ACTION_PHONE_ACCOUNT_ENABLED =
@@ -80,8 +81,8 @@
/**
* The {@link android.content.Intent} action used to inform a
- * {@link android.telecomm.ConnectionService} that one of its {@link PhoneAccount}s has been
- * disabled. The {@link TelecommManager#EXTRA_PHONE_ACCOUNT_HANDLE} extra is used to indicate
+ * {@link android.telecom.ConnectionService} that one of its {@link PhoneAccount}s has been
+ * disabled. The {@link TelecomManager#EXTRA_PHONE_ACCOUNT_HANDLE} extra is used to indicate
* which {@link PhoneAccount} has been disabled.
*/
public static final String ACTION_PHONE_ACCOUNT_DISABLED =
@@ -92,7 +93,7 @@
* determines whether the speakerphone should be automatically turned on for an outgoing call.
*/
public static final String EXTRA_START_CALL_WITH_SPEAKERPHONE =
- "android.telecomm.extra.START_CALL_WITH_SPEAKERPHONE";
+ "android.telecom.extra.START_CALL_WITH_SPEAKERPHONE";
/**
* Optional extra for {@link android.content.Intent#ACTION_CALL} containing an integer that
@@ -105,7 +106,7 @@
* @hide
*/
public static final String EXTRA_START_CALL_WITH_VIDEO_STATE =
- "android.telecomm.extra.START_CALL_WITH_VIDEO_STATE";
+ "android.telecom.extra.START_CALL_WITH_VIDEO_STATE";
/**
* The extra used with an {@link android.content.Intent#ACTION_CALL} and
@@ -115,7 +116,7 @@
* Retrieve with {@link android.content.Intent#getParcelableExtra(String)}.
*/
public static final String EXTRA_PHONE_ACCOUNT_HANDLE =
- "android.telecomm.extra.PHONE_ACCOUNT_HANDLE";
+ "android.telecom.extra.PHONE_ACCOUNT_HANDLE";
/**
* Optional extra for {@link #ACTION_INCOMING_CALL} containing a {@link Bundle} which contains
@@ -125,7 +126,7 @@
* @hide
*/
public static final String EXTRA_INCOMING_CALL_EXTRAS =
- "android.telecomm.extra.INCOMING_CALL_EXTRAS";
+ "android.telecom.extra.INCOMING_CALL_EXTRAS";
/**
* Optional extra for {@link android.content.Intent#ACTION_CALL} and
@@ -136,28 +137,28 @@
* @hide
*/
public static final String EXTRA_OUTGOING_CALL_EXTRAS =
- "android.telecomm.extra.OUTGOING_CALL_EXTRAS";
+ "android.telecom.extra.OUTGOING_CALL_EXTRAS";
/**
* Optional extra for {@link android.telephony.TelephonyManager#ACTION_PHONE_STATE_CHANGED}
* containing the disconnect code.
*/
public static final String EXTRA_CALL_DISCONNECT_CAUSE =
- "android.telecomm.extra.CALL_DISCONNECT_CAUSE";
+ "android.telecom.extra.CALL_DISCONNECT_CAUSE";
/**
* Optional extra for {@link android.telephony.TelephonyManager#ACTION_PHONE_STATE_CHANGED}
* containing the disconnect message.
*/
public static final String EXTRA_CALL_DISCONNECT_MESSAGE =
- "android.telecomm.extra.CALL_DISCONNECT_MESSAGE";
+ "android.telecom.extra.CALL_DISCONNECT_MESSAGE";
/**
* Optional extra for {@link android.telephony.TelephonyManager#ACTION_PHONE_STATE_CHANGED}
* containing the component name of the associated connection service.
*/
public static final String EXTRA_CONNECTION_SERVICE =
- "android.telecomm.extra.CONNECTION_SERVICE";
+ "android.telecom.extra.CONNECTION_SERVICE";
/**
* An optional {@link android.content.Intent#ACTION_CALL} intent extra denoting the
@@ -170,7 +171,7 @@
* the user. This alternative address is referred to as the gateway address.
*/
public static final String GATEWAY_PROVIDER_PACKAGE =
- "android.telecomm.extra.GATEWAY_PROVIDER_PACKAGE";
+ "android.telecom.extra.GATEWAY_PROVIDER_PACKAGE";
/**
* An optional {@link android.content.Intent#ACTION_CALL} intent extra corresponding to the
@@ -181,7 +182,7 @@
* (See {@link #GATEWAY_PROVIDER_PACKAGE} for details)
*/
public static final String GATEWAY_ORIGINAL_ADDRESS =
- "android.telecomm.extra.GATEWAY_ORIGINAL_ADDRESS";
+ "android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS";
/**
* The number which the party on the other side of the line will see (and use to return the
@@ -191,7 +192,7 @@
* this if the {@link android.telephony.TelephonyManager#getLine1Number()} value, as that is the
* user's expected caller ID.
*/
- public static final String EXTRA_CALL_BACK_NUMBER = "android.telecomm.extra.CALL_BACK_NUMBER";
+ public static final String EXTRA_CALL_BACK_NUMBER = "android.telecom.extra.CALL_BACK_NUMBER";
/**
* The dual tone multi-frequency signaling character sent to indicate the dialing system should
@@ -246,7 +247,7 @@
* @hide
*/
public static final String ACTION_CURRENT_TTY_MODE_CHANGED =
- "android.telecomm.action.CURRENT_TTY_MODE_CHANGED";
+ "android.telecom.action.CURRENT_TTY_MODE_CHANGED";
/**
* The lookup key for an int that indicates the current TTY mode.
@@ -259,7 +260,7 @@
* @hide
*/
public static final String EXTRA_CURRENT_TTY_MODE =
- "android.telecomm.intent.extra.CURRENT_TTY_MODE";
+ "android.telecom.intent.extra.CURRENT_TTY_MODE";
/**
* Broadcast intent action indicating that the TTY preferred operating mode has changed. An
@@ -269,7 +270,7 @@
* @hide
*/
public static final String ACTION_TTY_PREFERRED_MODE_CHANGED =
- "android.telecomm.action.TTY_PREFERRED_MODE_CHANGED";
+ "android.telecom.action.TTY_PREFERRED_MODE_CHANGED";
/**
* The lookup key for an int that indicates preferred TTY mode. Valid modes are: -
@@ -279,7 +280,7 @@
* @hide
*/
public static final String EXTRA_TTY_PREFERRED_MODE =
- "android.telecomm.intent.extra.TTY_PREFERRED";
+ "android.telecom.intent.extra.TTY_PREFERRED";
/**
* The following 4 constants define how properties such as phone numbers and names are
@@ -298,23 +299,21 @@
/** Property should be displayed as a pay phone. */
public static final int PRESENTATION_PAYPHONE = 4;
- private static final String TAG = "TelecommManager";
-
- private static final String TELECOMM_SERVICE_NAME = "telecomm";
+ private static final String TAG = "TelecomManager";
private final Context mContext;
/**
* @hide
*/
- public static TelecommManager from(Context context) {
- return (TelecommManager) context.getSystemService(Context.TELECOMM_SERVICE);
+ public static TelecomManager from(Context context) {
+ return (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
}
/**
* @hide
*/
- public TelecommManager(Context context) {
+ public TelecomManager(Context context) {
Context appContext = context.getApplicationContext();
if (appContext != null) {
mContext = appContext;
@@ -332,11 +331,11 @@
* exists no user-chosen default {@code PhoneAccount}. In this case, apps wishing to initiate a
* phone call must either create their {@link android.content.Intent#ACTION_CALL} or
* {@link android.content.Intent#ACTION_DIAL} {@code Intent} with no
- * {@link TelecommManager#EXTRA_PHONE_ACCOUNT_HANDLE}, or present the user with an affordance to
+ * {@link TelecomManager#EXTRA_PHONE_ACCOUNT_HANDLE}, or present the user with an affordance to
* select one of the elements of {@link #getEnabledPhoneAccounts()}.
* <p>
* An {@link android.content.Intent#ACTION_CALL} or {@link android.content.Intent#ACTION_DIAL}
- * {@code Intent} with no {@link TelecommManager#EXTRA_PHONE_ACCOUNT_HANDLE} is valid, and
+ * {@code Intent} with no {@link TelecomManager#EXTRA_PHONE_ACCOUNT_HANDLE} is valid, and
* subsequent steps in the phone call flow are responsible for presenting the user with an
* affordance, if necessary, to choose a {@code PhoneAccount}.
*
@@ -345,10 +344,10 @@
public PhoneAccountHandle getDefaultOutgoingPhoneAccount(String uriScheme) {
try {
if (isServiceConnected()) {
- return getTelecommService().getDefaultOutgoingPhoneAccount(uriScheme);
+ return getTelecomService().getDefaultOutgoingPhoneAccount(uriScheme);
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#getDefaultOutgoingPhoneAccount", e);
+ Log.e(TAG, "Error calling ITelecomService#getDefaultOutgoingPhoneAccount", e);
}
return null;
}
@@ -367,10 +366,10 @@
public PhoneAccountHandle getUserSelectedOutgoingPhoneAccount() {
try {
if (isServiceConnected()) {
- return getTelecommService().getUserSelectedOutgoingPhoneAccount();
+ return getTelecomService().getUserSelectedOutgoingPhoneAccount();
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#getUserSelectedOutgoingPhoneAccount", e);
+ Log.e(TAG, "Error calling ITelecomService#getUserSelectedOutgoingPhoneAccount", e);
}
return null;
}
@@ -382,10 +381,10 @@
public void setUserSelectedOutgoingPhoneAccount(PhoneAccountHandle accountHandle) {
try {
if (isServiceConnected()) {
- getTelecommService().setUserSelectedOutgoingPhoneAccount(accountHandle);
+ getTelecomService().setUserSelectedOutgoingPhoneAccount(accountHandle);
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#setUserSelectedOutgoingPhoneAccount");
+ Log.e(TAG, "Error calling ITelecomService#setUserSelectedOutgoingPhoneAccount");
}
}
@@ -399,10 +398,10 @@
public List<PhoneAccountHandle> getEnabledPhoneAccounts() {
try {
if (isServiceConnected()) {
- return getTelecommService().getEnabledPhoneAccounts();
+ return getTelecomService().getEnabledPhoneAccounts();
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#getEnabledPhoneAccounts", e);
+ Log.e(TAG, "Error calling ITelecomService#getEnabledPhoneAccounts", e);
}
return new ArrayList<>();
}
@@ -417,10 +416,10 @@
public PhoneAccountHandle getSimCallManager() {
try {
if (isServiceConnected()) {
- return getTelecommService().getSimCallManager();
+ return getTelecomService().getSimCallManager();
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#getSimCallManager");
+ Log.e(TAG, "Error calling ITelecomService#getSimCallManager");
}
return null;
}
@@ -433,10 +432,10 @@
public void setSimCallManager(PhoneAccountHandle accountHandle) {
try {
if (isServiceConnected()) {
- getTelecommService().setSimCallManager(accountHandle);
+ getTelecomService().setSimCallManager(accountHandle);
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#setSimCallManager");
+ Log.e(TAG, "Error calling ITelecomService#setSimCallManager");
}
}
@@ -448,10 +447,10 @@
public List<PhoneAccountHandle> getSimCallManagers() {
try {
if (isServiceConnected()) {
- return getTelecommService().getSimCallManagers();
+ return getTelecomService().getSimCallManagers();
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#getSimCallManagers");
+ Log.e(TAG, "Error calling ITelecomService#getSimCallManagers");
}
return new ArrayList<>();
}
@@ -482,10 +481,10 @@
public List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(String uriScheme) {
try {
if (isServiceConnected()) {
- return getTelecommService().getPhoneAccountsSupportingScheme(uriScheme);
+ return getTelecomService().getPhoneAccountsSupportingScheme(uriScheme);
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#getPhoneAccountsSupportingScheme", e);
+ Log.e(TAG, "Error calling ITelecomService#getPhoneAccountsSupportingScheme", e);
}
return new ArrayList<>();
}
@@ -510,10 +509,10 @@
public PhoneAccount getPhoneAccount(PhoneAccountHandle account) {
try {
if (isServiceConnected()) {
- return getTelecommService().getPhoneAccount(account);
+ return getTelecomService().getPhoneAccount(account);
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#getPhoneAccount", e);
+ Log.e(TAG, "Error calling ITelecomService#getPhoneAccount", e);
}
return null;
}
@@ -528,10 +527,10 @@
public int getAllPhoneAccountsCount() {
try {
if (isServiceConnected()) {
- return getTelecommService().getAllPhoneAccountsCount();
+ return getTelecomService().getAllPhoneAccountsCount();
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#getAllPhoneAccountsCount", e);
+ Log.e(TAG, "Error calling ITelecomService#getAllPhoneAccountsCount", e);
}
return 0;
}
@@ -546,10 +545,10 @@
public List<PhoneAccount> getAllPhoneAccounts() {
try {
if (isServiceConnected()) {
- return getTelecommService().getAllPhoneAccounts();
+ return getTelecomService().getAllPhoneAccounts();
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#getAllPhoneAccounts", e);
+ Log.e(TAG, "Error calling ITelecomService#getAllPhoneAccounts", e);
}
return Collections.EMPTY_LIST;
}
@@ -564,10 +563,10 @@
public List<PhoneAccountHandle> getAllPhoneAccountHandles() {
try {
if (isServiceConnected()) {
- return getTelecommService().getAllPhoneAccountHandles();
+ return getTelecomService().getAllPhoneAccountHandles();
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#getAllPhoneAccountHandles", e);
+ Log.e(TAG, "Error calling ITelecomService#getAllPhoneAccountHandles", e);
}
return Collections.EMPTY_LIST;
}
@@ -583,10 +582,10 @@
public void setPhoneAccountEnabled(PhoneAccountHandle account, boolean isEnabled) {
try {
if (isServiceConnected()) {
- getTelecommService().setPhoneAccountEnabled(account, isEnabled);
+ getTelecomService().setPhoneAccountEnabled(account, isEnabled);
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#setPhoneAccountEnabled", e);
+ Log.e(TAG, "Error calling ITelecomService#setPhoneAccountEnabled", e);
}
}
@@ -598,10 +597,10 @@
public void registerPhoneAccount(PhoneAccount account) {
try {
if (isServiceConnected()) {
- getTelecommService().registerPhoneAccount(account);
+ getTelecomService().registerPhoneAccount(account);
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#registerPhoneAccount", e);
+ Log.e(TAG, "Error calling ITelecomService#registerPhoneAccount", e);
}
}
@@ -613,10 +612,10 @@
public void unregisterPhoneAccount(PhoneAccountHandle accountHandle) {
try {
if (isServiceConnected()) {
- getTelecommService().unregisterPhoneAccount(accountHandle);
+ getTelecomService().unregisterPhoneAccount(accountHandle);
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#unregisterPhoneAccount", e);
+ Log.e(TAG, "Error calling ITelecomService#unregisterPhoneAccount", e);
}
}
@@ -627,10 +626,10 @@
public void clearAccounts() {
try {
if (isServiceConnected()) {
- getTelecommService().clearAccounts(mContext.getPackageName());
+ getTelecomService().clearAccounts(mContext.getPackageName());
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#clearAccounts", e);
+ Log.e(TAG, "Error calling ITelecomService#clearAccounts", e);
}
}
@@ -641,7 +640,7 @@
public ComponentName getDefaultPhoneApp() {
try {
if (isServiceConnected()) {
- return getTelecommService().getDefaultPhoneApp();
+ return getTelecomService().getDefaultPhoneApp();
}
} catch (RemoteException e) {
Log.e(TAG, "RemoteException attempting to get the default phone app.", e);
@@ -660,15 +659,39 @@
public boolean isInCall() {
try {
if (isServiceConnected()) {
- return getTelecommService().isInCall();
+ return getTelecomService().isInCall();
}
} catch (RemoteException e) {
- Log.e(TAG, "RemoteException attempting to get default phone app.", e);
+ Log.e(TAG, "RemoteException calling isInCall().", e);
}
return false;
}
/**
+ * Returns one of the following constants that represents the current state of Telecom:
+ *
+ * {@link TelephonyManager#CALL_STATE_RINGING}
+ * {@link TelephonyManager#CALL_STATE_OFFHOOK}
+ * {@link TelephonyManager#CALL_STATE_IDLE}
+ *
+ * <p>
+ * Requires permission: {@link android.Manifest.permission#READ_PHONE_STATE}
+ * </p>
+ * @hide
+ */
+ @SystemApi
+ public int getCallState() {
+ try {
+ if (isServiceConnected()) {
+ return getTelecomService().getCallState();
+ }
+ } catch (RemoteException e) {
+ Log.d(TAG, "RemoteException calling getCallState().", e);
+ }
+ return TelephonyManager.CALL_STATE_IDLE;
+ }
+
+ /**
* Returns whether there currently exists is a ringing incoming-call.
*
* @hide
@@ -677,7 +700,7 @@
public boolean isRinging() {
try {
if (isServiceConnected()) {
- return getTelecommService().isRinging();
+ return getTelecomService().isRinging();
}
} catch (RemoteException e) {
Log.e(TAG, "RemoteException attempting to get ringing state of phone app.", e);
@@ -687,7 +710,7 @@
/**
* Ends an ongoing call.
- * TODO: L-release - need to convert all invocations of ITelecommService#endCall to use this
+ * TODO: L-release - need to convert all invocations of ITelecomService#endCall to use this
* method (clockwork & gearhead).
* @hide
*/
@@ -695,17 +718,17 @@
public boolean endCall() {
try {
if (isServiceConnected()) {
- return getTelecommService().endCall();
+ return getTelecomService().endCall();
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#endCall", e);
+ Log.e(TAG, "Error calling ITelecomService#endCall", e);
}
return false;
}
/**
* If there is a ringing incoming call, this method accepts the call on behalf of the user.
- * TODO: L-release - need to convert all invocation of ITelecommService#answerRingingCall to use
+ * TODO: L-release - need to convert all invocation of ITelecmmService#answerRingingCall to use
* this method (clockwork & gearhead).
*
* @hide
@@ -714,10 +737,10 @@
public void acceptRingingCall() {
try {
if (isServiceConnected()) {
- getTelecommService().acceptRingingCall();
+ getTelecomService().acceptRingingCall();
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#acceptRingingCall", e);
+ Log.e(TAG, "Error calling ITelecomService#acceptRingingCall", e);
}
}
@@ -730,10 +753,10 @@
public void silenceRinger() {
try {
if (isServiceConnected()) {
- getTelecommService().silenceRinger();
+ getTelecomService().silenceRinger();
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#silenceRinger", e);
+ Log.e(TAG, "Error calling ITelecomService#silenceRinger", e);
}
}
@@ -746,7 +769,7 @@
public boolean isTtySupported() {
try {
if (isServiceConnected()) {
- return getTelecommService().isTtySupported();
+ return getTelecomService().isTtySupported();
}
} catch (RemoteException e) {
Log.e(TAG, "RemoteException attempting to get TTY supported state.", e);
@@ -758,16 +781,16 @@
* Returns the current TTY mode of the device. For TTY to be on the user must enable it in
* settings and have a wired headset plugged in.
* Valid modes are:
- * - {@link TelecommManager#TTY_MODE_OFF}
- * - {@link TelecommManager#TTY_MODE_FULL}
- * - {@link TelecommManager#TTY_MODE_HCO}
- * - {@link TelecommManager#TTY_MODE_VCO}
+ * - {@link TelecomManager#TTY_MODE_OFF}
+ * - {@link TelecomManager#TTY_MODE_FULL}
+ * - {@link TelecomManager#TTY_MODE_HCO}
+ * - {@link TelecomManager#TTY_MODE_VCO}
* @hide
*/
public int getCurrentTtyMode() {
try {
if (isServiceConnected()) {
- return getTelecommService().getCurrentTtyMode();
+ return getTelecomService().getCurrentTtyMode();
}
} catch (RemoteException e) {
Log.e(TAG, "RemoteException attempting to get the current TTY mode.", e);
@@ -792,7 +815,7 @@
public void addNewIncomingCall(PhoneAccountHandle phoneAccount, Bundle extras) {
try {
if (isServiceConnected()) {
- getTelecommService().addNewIncomingCall(
+ getTelecomService().addNewIncomingCall(
phoneAccount, extras == null ? new Bundle() : extras);
}
} catch (RemoteException e) {
@@ -812,12 +835,12 @@
* @return True if the digits were processed as an MMI code, false otherwise.
*/
public boolean handleMmi(String dialString) {
- ITelecommService service = getTelecommService();
+ ITelecomService service = getTelecomService();
if (service != null) {
try {
return service.handlePinMmi(dialString);
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#handlePinMmi", e);
+ Log.e(TAG, "Error calling ITelecomService#handlePinMmi", e);
}
}
return false;
@@ -830,12 +853,12 @@
* </p>
*/
public void cancelMissedCallsNotification() {
- ITelecommService service = getTelecommService();
+ ITelecomService service = getTelecomService();
if (service != null) {
try {
service.cancelMissedCallsNotification();
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#cancelMissedCallsNotification", e);
+ Log.e(TAG, "Error calling ITelecomService#cancelMissedCallsNotification", e);
}
}
}
@@ -851,24 +874,24 @@
* @param showDialpad Brings up the in-call dialpad as part of showing the in-call screen.
*/
public void showInCallScreen(boolean showDialpad) {
- ITelecommService service = getTelecommService();
+ ITelecomService service = getTelecomService();
if (service != null) {
try {
service.showInCallScreen(showDialpad);
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#showCallScreen", e);
+ Log.e(TAG, "Error calling ITelecomService#showCallScreen", e);
}
}
}
- private ITelecommService getTelecommService() {
- return ITelecommService.Stub.asInterface(ServiceManager.getService(TELECOMM_SERVICE_NAME));
+ private ITelecomService getTelecomService() {
+ return ITelecomService.Stub.asInterface(ServiceManager.getService(Context.TELECOM_SERVICE));
}
private boolean isServiceConnected() {
- boolean isConnected = getTelecommService() != null;
+ boolean isConnected = getTelecomService() != null;
if (!isConnected) {
- Log.w(TAG, "Telecomm Service not found.");
+ Log.w(TAG, "Telecom Service not found.");
}
return isConnected;
}
diff --git a/telecomm/java/android/telecomm/VideoCallImpl.java b/telecomm/java/android/telecom/VideoCallImpl.java
similarity index 97%
rename from telecomm/java/android/telecomm/VideoCallImpl.java
rename to telecomm/java/android/telecom/VideoCallImpl.java
index d33a351..925058e 100644
--- a/telecomm/java/android/telecomm/VideoCallImpl.java
+++ b/telecomm/java/android/telecom/VideoCallImpl.java
@@ -14,19 +14,19 @@
* limitations under the License
*/
-package android.telecomm;
+package android.telecom;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.RemoteException;
-import android.telecomm.InCallService.VideoCall;
+import android.telecom.InCallService.VideoCall;
import android.view.Surface;
import com.android.internal.os.SomeArgs;
-import com.android.internal.telecomm.IVideoCallback;
-import com.android.internal.telecomm.IVideoProvider;
+import com.android.internal.telecom.IVideoCallback;
+import com.android.internal.telecom.IVideoProvider;
/**
* Implementation of a Video Call, which allows InCallUi to communicate commands to the underlying
diff --git a/telecomm/java/android/telecomm/VideoCallbackServant.java b/telecomm/java/android/telecom/VideoCallbackServant.java
similarity index 98%
rename from telecomm/java/android/telecomm/VideoCallbackServant.java
rename to telecomm/java/android/telecom/VideoCallbackServant.java
index 060b8a9..d0e3f22 100644
--- a/telecomm/java/android/telecomm/VideoCallbackServant.java
+++ b/telecomm/java/android/telecom/VideoCallbackServant.java
@@ -14,10 +14,10 @@
R* limitations under the License.
*/
-package android.telecomm;
+package android.telecom;
import com.android.internal.os.SomeArgs;
-import com.android.internal.telecomm.IVideoCallback;
+import com.android.internal.telecom.IVideoCallback;
import android.os.Handler;
import android.os.Message;
diff --git a/telecomm/java/android/telecomm/VideoProfile.aidl b/telecomm/java/android/telecom/VideoProfile.aidl
similarity index 96%
rename from telecomm/java/android/telecomm/VideoProfile.aidl
rename to telecomm/java/android/telecom/VideoProfile.aidl
index e756fa7..091b569 100644
--- a/telecomm/java/android/telecomm/VideoProfile.aidl
+++ b/telecomm/java/android/telecom/VideoProfile.aidl
@@ -15,7 +15,7 @@
*/
-package android.telecomm;
+package android.telecom;
/**
* {@hide}
diff --git a/telecomm/java/android/telecomm/VideoProfile.java b/telecomm/java/android/telecom/VideoProfile.java
similarity index 99%
rename from telecomm/java/android/telecomm/VideoProfile.java
rename to telecomm/java/android/telecom/VideoProfile.java
index 028d24e..f5cb054 100644
--- a/telecomm/java/android/telecomm/VideoProfile.java
+++ b/telecomm/java/android/telecom/VideoProfile.java
@@ -14,7 +14,7 @@
* limitations under the License
*/
-package android.telecomm;
+package android.telecom;
import android.os.Parcel;
import android.os.Parcelable;
diff --git a/telecomm/java/com/android/internal/telecomm/IConnectionService.aidl b/telecomm/java/com/android/internal/telecom/IConnectionService.aidl
similarity index 86%
rename from telecomm/java/com/android/internal/telecomm/IConnectionService.aidl
rename to telecomm/java/com/android/internal/telecom/IConnectionService.aidl
index 3af4ed3..1059da37 100644
--- a/telecomm/java/com/android/internal/telecomm/IConnectionService.aidl
+++ b/telecomm/java/com/android/internal/telecom/IConnectionService.aidl
@@ -14,19 +14,19 @@
* limitations under the License.
*/
-package com.android.internal.telecomm;
+package com.android.internal.telecom;
import android.os.Bundle;
-import android.telecomm.AudioState;
-import android.telecomm.ConnectionRequest;
-import android.telecomm.PhoneAccountHandle;
+import android.telecom.AudioState;
+import android.telecom.ConnectionRequest;
+import android.telecom.PhoneAccountHandle;
-import com.android.internal.telecomm.IConnectionServiceAdapter;
+import com.android.internal.telecom.IConnectionServiceAdapter;
/**
* Internal remote interface for connection services.
*
- * @see android.telecomm.ConnectionService
+ * @see android.telecom.ConnectionService
*
* @hide
*/
diff --git a/telecomm/java/com/android/internal/telecomm/IConnectionServiceAdapter.aidl b/telecomm/java/com/android/internal/telecom/IConnectionServiceAdapter.aidl
similarity index 85%
rename from telecomm/java/com/android/internal/telecomm/IConnectionServiceAdapter.aidl
rename to telecomm/java/com/android/internal/telecom/IConnectionServiceAdapter.aidl
index 4b636d1..8f3506d 100644
--- a/telecomm/java/com/android/internal/telecomm/IConnectionServiceAdapter.aidl
+++ b/telecomm/java/com/android/internal/telecom/IConnectionServiceAdapter.aidl
@@ -14,22 +14,22 @@
* limitations under the License.
*/
-package com.android.internal.telecomm;
+package com.android.internal.telecom;
import android.app.PendingIntent;
import android.net.Uri;
-import android.telecomm.ConnectionRequest;
-import android.telecomm.ParcelableConnection;
-import android.telecomm.ParcelableConference;
-import android.telecomm.StatusHints;
+import android.telecom.ConnectionRequest;
+import android.telecom.ParcelableConnection;
+import android.telecom.ParcelableConference;
+import android.telecom.StatusHints;
-import com.android.internal.telecomm.IVideoProvider;
-import com.android.internal.telecomm.RemoteServiceCallback;
+import com.android.internal.telecom.IVideoProvider;
+import com.android.internal.telecom.RemoteServiceCallback;
/**
* Internal remote callback interface for connection services.
*
- * @see android.telecomm.ConnectionServiceAdapter
+ * @see android.telecom.ConnectionServiceAdapter
*
* {@hide}
*/
diff --git a/telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl b/telecomm/java/com/android/internal/telecom/IInCallAdapter.aidl
similarity index 92%
rename from telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl
rename to telecomm/java/com/android/internal/telecom/IInCallAdapter.aidl
index 808a410..138a877 100644
--- a/telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl
+++ b/telecomm/java/com/android/internal/telecom/IInCallAdapter.aidl
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.internal.telecomm;
+package com.android.internal.telecom;
-import android.telecomm.PhoneAccountHandle;
+import android.telecom.PhoneAccountHandle;
/**
* Internal remote callback interface for in-call services.
*
- * @see android.telecomm.InCallAdapter
+ * @see android.telecom.InCallAdapter
*
* {@hide}
*/
diff --git a/telecomm/java/com/android/internal/telecomm/IInCallService.aidl b/telecomm/java/com/android/internal/telecom/IInCallService.aidl
similarity index 84%
rename from telecomm/java/com/android/internal/telecomm/IInCallService.aidl
rename to telecomm/java/com/android/internal/telecom/IInCallService.aidl
index 23dbaf4..35f6f65 100644
--- a/telecomm/java/com/android/internal/telecomm/IInCallService.aidl
+++ b/telecomm/java/com/android/internal/telecom/IInCallService.aidl
@@ -14,18 +14,18 @@
* limitations under the License.
*/
-package com.android.internal.telecomm;
+package com.android.internal.telecom;
import android.app.PendingIntent;
-import android.telecomm.AudioState;
-import android.telecomm.ParcelableCall;
+import android.telecom.AudioState;
+import android.telecom.ParcelableCall;
-import com.android.internal.telecomm.IInCallAdapter;
+import com.android.internal.telecom.IInCallAdapter;
/**
* Internal remote interface for in-call services.
*
- * @see android.telecomm.InCallService
+ * @see android.telecom.InCallService
*
* {@hide}
*/
diff --git a/telecomm/java/com/android/internal/telecomm/ITelecommService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
similarity index 62%
rename from telecomm/java/com/android/internal/telecomm/ITelecommService.aidl
rename to telecomm/java/com/android/internal/telecom/ITelecomService.aidl
index 30f2801..4875cc3 100644
--- a/telecomm/java/com/android/internal/telecomm/ITelecommService.aidl
+++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
@@ -14,19 +14,19 @@
* limitations under the License.
*/
-package com.android.internal.telecomm;
+package com.android.internal.telecom;
import android.content.ComponentName;
-import android.telecomm.PhoneAccountHandle;
+import android.telecom.PhoneAccountHandle;
import android.os.Bundle;
-import android.telecomm.PhoneAccount;
+import android.telecom.PhoneAccount;
/**
- * Interface used to interact with Telecomm. Mostly this is used by TelephonyManager for passing
+ * Interface used to interact with Telecom. Mostly this is used by TelephonyManager for passing
* commands that were previously handled by ITelephony.
* {@hide}
*/
-interface ITelecommService {
+interface ITelecomService {
/**
* Brings the in-call screen to the foreground if there is an active call.
*
@@ -35,87 +35,87 @@
void showInCallScreen(boolean showDialpad);
/**
- * @see TelecommServiceImpl#getDefaultOutgoingPhoneAccount
+ * @see TelecomServiceImpl#getDefaultOutgoingPhoneAccount
*/
PhoneAccountHandle getDefaultOutgoingPhoneAccount(in String uriScheme);
/**
- * @see TelecommServiceImpl#getUserSelectedOutgoingPhoneAccount
+ * @see TelecomServiceImpl#getUserSelectedOutgoingPhoneAccount
*/
PhoneAccountHandle getUserSelectedOutgoingPhoneAccount();
/**
- * @see TelecommServiceImpl#setUserSelectedOutgoingPhoneAccount
+ * @see TelecomServiceImpl#setUserSelectedOutgoingPhoneAccount
*/
void setUserSelectedOutgoingPhoneAccount(in PhoneAccountHandle account);
/**
- * @see TelecommServiceImpl#getEnabledPhoneAccounts
+ * @see TelecomServiceImpl#getEnabledPhoneAccounts
*/
List<PhoneAccountHandle> getEnabledPhoneAccounts();
/**
- * @see TelecommManager#getPhoneAccountsSupportingScheme
+ * @see TelecomManager#getPhoneAccountsSupportingScheme
*/
List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(in String uriScheme);
/**
- * @see TelecommManager#getPhoneAccount
+ * @see TelecomManager#getPhoneAccount
*/
PhoneAccount getPhoneAccount(in PhoneAccountHandle account);
/**
- * @see TelecommManager#getAllPhoneAccountsCount
+ * @see TelecomManager#getAllPhoneAccountsCount
*/
int getAllPhoneAccountsCount();
/**
- * @see TelecommManager#getAllPhoneAccounts
+ * @see TelecomManager#getAllPhoneAccounts
*/
List<PhoneAccount> getAllPhoneAccounts();
/**
- * @see TelecommManager#getAllPhoneAccountHandles
+ * @see TelecomManager#getAllPhoneAccountHandles
*/
List<PhoneAccountHandle> getAllPhoneAccountHandles();
/**
- * @see TelecommServiceImpl#getSimCallManager
+ * @see TelecomServiceImpl#getSimCallManager
*/
PhoneAccountHandle getSimCallManager();
/**
- * @see TelecommServiceImpl#setSimCallManager
+ * @see TelecomServiceImpl#setSimCallManager
*/
void setSimCallManager(in PhoneAccountHandle account);
/**
- * @see TelecommServiceImpl#getSimCallManagers
+ * @see TelecomServiceImpl#getSimCallManagers
*/
List<PhoneAccountHandle> getSimCallManagers();
/**
- * @see TelecommServiceImpl#setPhoneAccountEnabled
+ * @see TelecomServiceImpl#setPhoneAccountEnabled
*/
void setPhoneAccountEnabled(in PhoneAccountHandle account, in boolean isEnabled);
/**
- * @see TelecommServiceImpl#registerPhoneAccount
+ * @see TelecomServiceImpl#registerPhoneAccount
*/
void registerPhoneAccount(in PhoneAccount metadata);
/**
- * @see TelecommServiceImpl#unregisterPhoneAccount
+ * @see TelecomServiceImpl#unregisterPhoneAccount
*/
void unregisterPhoneAccount(in PhoneAccountHandle account);
/**
- * @see TelecommServiceImpl#clearAccounts
+ * @see TelecomServiceImpl#clearAccounts
*/
void clearAccounts(String packageName);
/**
- * @see TelecommServiceImpl#getDefaultPhoneApp
+ * @see TelecomServiceImpl#getDefaultPhoneApp
*/
ComponentName getDefaultPhoneApp();
@@ -124,52 +124,57 @@
//
/**
- * @see TelecommServiceImpl#silenceRinger
+ * @see TelecomServiceImpl#silenceRinger
*/
void silenceRinger();
/**
- * @see TelecommServiceImpl#isInCall
+ * @see TelecomServiceImpl#isInCall
*/
boolean isInCall();
/**
- * @see TelecommServiceImpl#isRinging
+ * @see TelecomServiceImpl#isRinging
*/
boolean isRinging();
/**
- * @see TelecommServiceImpl#endCall
+ * @see TelecomServiceImpl#getCallState
+ */
+ int getCallState();
+
+ /**
+ * @see TelecomServiceImpl#endCall
*/
boolean endCall();
/**
- * @see TelecommServiceImpl#acceptRingingCall
+ * @see TelecomServiceImpl#acceptRingingCall
*/
void acceptRingingCall();
/**
- * @see TelecommServiceImpl#cancelMissedCallsNotification
+ * @see TelecomServiceImpl#cancelMissedCallsNotification
*/
void cancelMissedCallsNotification();
/**
- * @see TelecommServiceImpl#handleMmi
+ * @see TelecomServiceImpl#handleMmi
*/
boolean handlePinMmi(String dialString);
/**
- * @see TelecommServiceImpl#isTtySupported
+ * @see TelecomServiceImpl#isTtySupported
*/
boolean isTtySupported();
/**
- * @see TelecommServiceImpl#getCurrentTtyMode
+ * @see TelecomServiceImpl#getCurrentTtyMode
*/
int getCurrentTtyMode();
/**
- * @see TelecommServiceImpl#addNewIncomingCall
+ * @see TelecomServiceImpl#addNewIncomingCall
*/
void addNewIncomingCall(in PhoneAccountHandle phoneAccount, in Bundle extras);
}
diff --git a/telecomm/java/com/android/internal/telecomm/IVideoCallback.aidl b/telecomm/java/com/android/internal/telecom/IVideoCallback.aidl
similarity index 87%
rename from telecomm/java/com/android/internal/telecomm/IVideoCallback.aidl
rename to telecomm/java/com/android/internal/telecom/IVideoCallback.aidl
index 186f083..f758b60 100644
--- a/telecomm/java/com/android/internal/telecomm/IVideoCallback.aidl
+++ b/telecomm/java/com/android/internal/telecom/IVideoCallback.aidl
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package com.android.internal.telecomm;
+package com.android.internal.telecom;
-import android.telecomm.CameraCapabilities;
-import android.telecomm.VideoProfile;
+import android.telecom.CameraCapabilities;
+import android.telecom.VideoProfile;
/**
* Internal definition of a callback interface, used for an InCallUi to respond to video
* telephony changes.
*
- * @see android.telecomm.InCallService.VideoCall.Listener
+ * @see android.telecom.InCallService.VideoCall.Listener
*
* {@hide}
*/
diff --git a/telecomm/java/com/android/internal/telecomm/IVideoProvider.aidl b/telecomm/java/com/android/internal/telecom/IVideoProvider.aidl
similarity index 91%
rename from telecomm/java/com/android/internal/telecomm/IVideoProvider.aidl
rename to telecomm/java/com/android/internal/telecom/IVideoProvider.aidl
index b0aa988..e96d9d3 100644
--- a/telecomm/java/com/android/internal/telecomm/IVideoProvider.aidl
+++ b/telecomm/java/com/android/internal/telecom/IVideoProvider.aidl
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.internal.telecomm;
+package com.android.internal.telecom;
import android.view.Surface;
-import android.telecomm.VideoProfile;
+import android.telecom.VideoProfile;
/**
* Internal remote interface for a video call provider.
- * @see android.telecomm.VideoProvider
+ * @see android.telecom.VideoProvider
* @hide
*/
oneway interface IVideoProvider {
diff --git a/telecomm/java/com/android/internal/telecomm/RemoteServiceCallback.aidl b/telecomm/java/com/android/internal/telecom/RemoteServiceCallback.aidl
similarity index 95%
rename from telecomm/java/com/android/internal/telecomm/RemoteServiceCallback.aidl
rename to telecomm/java/com/android/internal/telecom/RemoteServiceCallback.aidl
index 0ab7564..441704d 100644
--- a/telecomm/java/com/android/internal/telecomm/RemoteServiceCallback.aidl
+++ b/telecomm/java/com/android/internal/telecom/RemoteServiceCallback.aidl
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.internal.telecomm;
+package com.android.internal.telecom;
import android.content.ComponentName;
diff --git a/telephony/java/android/telephony/DisconnectCause.java b/telephony/java/android/telephony/DisconnectCause.java
index aa6c47c..6366c91 100644
--- a/telephony/java/android/telephony/DisconnectCause.java
+++ b/telephony/java/android/telephony/DisconnectCause.java
@@ -155,7 +155,7 @@
public static final int OUTGOING_FAILURE = 43;
/**
- * The outgoing call was canceled by the {@link android.telecomm.ConnectionService}.
+ * The outgoing call was canceled by the {@link android.telecom.ConnectionService}.
*/
public static final int OUTGOING_CANCELED = 44;
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 9f94040..34b1454 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -26,9 +26,8 @@
import android.os.ServiceManager;
import android.os.SystemProperties;
import android.util.Log;
-import android.util.Pair;
-import com.android.internal.telecomm.ITelecommService;
+import com.android.internal.telecom.ITelecomService;
import com.android.internal.telephony.IPhoneSubInfo;
import com.android.internal.telephony.ITelephony;
import com.android.internal.telephony.ITelephonyRegistry;
@@ -63,8 +62,6 @@
public class TelephonyManager {
private static final String TAG = "TelephonyManager";
- private static final String TELECOMM_SERVICE_NAME = "telecomm";
-
private static ITelephonyRegistry sRegistry;
/**
@@ -2048,7 +2045,11 @@
* Returns a constant indicating the call state (cellular) on the device.
*/
public int getCallState() {
- return getCallState(getDefaultSubscription());
+ try {
+ return getTelecomService().getCallState();
+ } catch (RemoteException | NullPointerException e) {
+ return CALL_STATE_IDLE;
+ }
}
/**
@@ -2145,8 +2146,8 @@
return ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE));
}
- private ITelecommService getTelecommService() {
- return ITelecommService.Stub.asInterface(ServiceManager.getService(TELECOMM_SERVICE_NAME));
+ private ITelecomService getTelecomService() {
+ return ITelecomService.Stub.asInterface(ServiceManager.getService(Context.TELECOM_SERVICE));
}
//
@@ -3135,9 +3136,9 @@
@SystemApi
public void silenceRinger() {
try {
- getTelecommService().silenceRinger();
+ getTelecomService().silenceRinger();
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#silenceRinger", e);
+ Log.e(TAG, "Error calling ITelecomService#silenceRinger", e);
}
}
diff --git a/telephony/java/com/android/ims/ImsCallProfile.java b/telephony/java/com/android/ims/ImsCallProfile.java
index 767ecf9..8b7901c 100644
--- a/telephony/java/com/android/ims/ImsCallProfile.java
+++ b/telephony/java/com/android/ims/ImsCallProfile.java
@@ -19,7 +19,7 @@
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
-import android.telecomm.VideoProfile;
+import android.telecom.VideoProfile;
import com.android.internal.telephony.PhoneConstants;
diff --git a/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl b/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl
index 67bfe41..f867fcba 100644
--- a/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl
+++ b/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl
@@ -16,8 +16,8 @@
package com.android.ims.internal;
-import android.telecomm.CameraCapabilities;
-import android.telecomm.VideoProfile;
+import android.telecom.CameraCapabilities;
+import android.telecom.VideoProfile;
/**
* Internal remote interface for IMS's video call provider.
@@ -26,8 +26,8 @@
* separate aidl interface for invoking callbacks in Telephony from the IMS Service to without
* accessing internal interfaces. See {@link IImsVideoCallProvider} for additional detail.
*
- * @see android.telecomm.internal.IVideoCallCallback
- * @see android.telecomm.VideoCallImpl
+ * @see android.telecom.internal.IVideoCallCallback
+ * @see android.telecom.VideoCallImpl
*
* {@hide}
*/
diff --git a/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl b/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl
index 4db0d14..1fd88e7 100644
--- a/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl
+++ b/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl
@@ -17,7 +17,7 @@
package com.android.ims.internal;
import android.view.Surface;
-import android.telecomm.VideoProfile;
+import android.telecom.VideoProfile;
import com.android.ims.internal.IImsVideoCallCallback;
@@ -35,8 +35,8 @@
* video call provider will not have the benefit of accessing the internal
* {@link IVideoCallProvider} aidl for interprocess communication.
*
- * @see android.telecomm.internal.IVideoCallProvider
- * @see android.telecomm.VideoCallProvider
+ * @see android.telecom.internal.IVideoCallProvider
+ * @see android.telecom.VideoCallProvider
* @hide
*/
oneway interface IImsVideoCallProvider {
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java
index 17d990b..22265a3 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java
@@ -38,6 +38,11 @@
}
@Override
+ public boolean setPowerSaveMode(boolean mode) throws RemoteException {
+ return false;
+ }
+
+ @Override
public IBinder asBinder() {
// pass for now.
return null;
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index aeaff71..d27c2f7 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -186,6 +186,8 @@
public static final int DISABLED_AUTH_FAILURE = 3;
/** @hide */
public static final int DISABLED_ASSOCIATION_REJECT = 4;
+ /** @hide */
+ public static final int DISABLED_BY_WIFI_MANAGER = 5;
/**
* The ID number that the supplicant uses to identify this
@@ -380,10 +382,13 @@
/** The Below RSSI thresholds are used to configure AutoJoin
* - GOOD/LOW/BAD thresholds are used so as to calculate link score
- * - UNWANTED_SOFT are used by the blacklisting logic so as to handle the unwanted network message coming from CS
- * - UNBLACKLIST thresholds are used so as to tweak the speed at which the network is unblacklisted (i.e. if
+ * - UNWANTED_SOFT are used by the blacklisting logic so as to handle
+ * the unwanted network message coming from CS
+ * - UNBLACKLIST thresholds are used so as to tweak the speed at which
+ * the network is unblacklisted (i.e. if
* it is seen with good RSSI, it is blacklisted faster)
- * - INITIAL_AUTOJOIN_ATTEMPT, used to determine how close from the network we need to be before autojoin kicks in
+ * - INITIAL_AUTOJOIN_ATTEMPT, used to determine how close from
+ * the network we need to be before autojoin kicks in
*/
/** @hide **/
public static int INVALID_RSSI = -127;
@@ -438,11 +443,7 @@
/** @hide
* 5GHz band is prefered low over 2.4 if the 5GHz RSSI is higher than this threshold */
- public static int A_BAND_PREFERENCE_RSSI_THRESHOLD_LOW = -65;
-
- /** @hide
- * 5GHz band is prefered hard over 2.4 if the 5GHz RSSI is higher than this threshold */
- public static int A_BAND_PREFERENCE_RSSI_THRESHOLD = -55;
+ public static int A_BAND_PREFERENCE_RSSI_THRESHOLD = -65;
/** @hide
* 5GHz band is penalized if the 5GHz RSSI is lower than this threshold **/
@@ -457,6 +458,12 @@
***/
public static int HOME_NETWORK_RSSI_BOOST = 5;
+ /** @hide
+ * RSSI boost for configuration which use autoJoinUseAggressiveJoinAttemptThreshold
+ * To be more aggressive when initially attempting to auto join
+ */
+ public static int MAX_INITIAL_AUTO_JOIN_RSSI_BOOST = 8;
+
/**
* @hide
* A summary of the RSSI and Band status for that configuration
@@ -594,6 +601,11 @@
/** @hide */
public static final int AUTO_JOIN_DISABLED_ON_AUTH_FAILURE = 128;
/** @hide */
+ public static final int AUTO_JOIN_DISABLED_NO_CREDENTIALS = 160;
+ /** @hide */
+ public static final int AUTO_JOIN_DISABLED_USER_ACTION = 161;
+
+ /** @hide */
public static final int AUTO_JOIN_DELETED = 200;
/**
@@ -664,6 +676,18 @@
/**
* @hide
+ * Indicate that we didn't auto-join because rssi was too low
+ */
+ public boolean autoJoinBailedDueToLowRssi;
+
+ /**
+ * @hide
+ * AutoJoin even though RSSI is 10dB below threshold
+ */
+ public int autoJoinUseAggressiveJoinAttemptThreshold;
+
+ /**
+ * @hide
* Number of time the scorer overrode a the priority based choice, when comparing two
* WifiConfigurations, note that since comparing WifiConfiguration happens very often
* potentially at every scan, this number might become very large, even on an idle
@@ -881,11 +905,10 @@
if (this.autoJoinStatus > 0) {
sbuf.append(" autoJoinStatus ").append(this.numConnectionFailures).append("\n");
}
- if (this.didSelfAdd || this.selfAdded) {
- if (this.didSelfAdd) sbuf.append(" didSelfAdd");
- if (this.selfAdded) sbuf.append(" selfAdded");
- if (this.noInternetAccess) sbuf.append(" noInternetAccess");
-
+ if (this.didSelfAdd) sbuf.append(" didSelfAdd");
+ if (this.selfAdded) sbuf.append(" selfAdded");
+ if (this.noInternetAccess) sbuf.append(" noInternetAccess");
+ if (this.didSelfAdd || this.selfAdded || this.noInternetAccess) {
sbuf.append("\n");
}
sbuf.append(" KeyMgmt:");
@@ -950,21 +973,41 @@
if (this.preSharedKey != null) {
sbuf.append('*');
}
-
+ sbuf.append("\nEnterprise config:\n");
sbuf.append(enterpriseConfig);
- sbuf.append('\n');
+ sbuf.append("IP config:\n");
sbuf.append(mIpConfiguration.toString());
- if (this.creatorUid != 0) sbuf.append("uid=" + Integer.toString(creatorUid));
- if (this.autoJoinBSSID != null) sbuf.append("autoJoinBSSID=" + autoJoinBSSID);
+ if (this.creatorUid != 0) sbuf.append(" uid=" + Integer.toString(creatorUid));
+ if (this.autoJoinBSSID != null) sbuf.append(" autoJoinBSSID=" + autoJoinBSSID);
+ long now_ms = System.currentTimeMillis();
if (this.blackListTimestamp != 0) {
- long now_ms = System.currentTimeMillis();
+ sbuf.append('\n');
long diff = now_ms - this.blackListTimestamp;
if (diff <= 0) {
- sbuf.append("blackListed since <incorrect>");
+ sbuf.append(" blackListed since <incorrect>");
} else {
- sbuf.append("blackListed since ").append(Long.toString(diff/1000)).append( "sec");
+ sbuf.append(" blackListed: ").append(Long.toString(diff/1000)).append( "sec");
+ }
+ }
+ if (this.lastConnected != 0) {
+ sbuf.append('\n');
+ long diff = now_ms - this.lastConnected;
+ if (diff <= 0) {
+ sbuf.append("lastConnected since <incorrect>");
+ } else {
+ sbuf.append("lastConnected: ").append(Long.toString(diff/1000)).append( "sec");
+ }
+ }
+ if (this.lastConnectionFailure != 0) {
+ sbuf.append('\n');
+ long diff = now_ms - this.lastConnectionFailure;
+ if (diff <= 0) {
+ sbuf.append("lastConnectionFailure since <incorrect>");
+ } else {
+ sbuf.append("lastConnectionFailure: ").append(Long.toString(diff/1000));
+ sbuf.append( "sec");
}
}
sbuf.append('\n');
@@ -984,15 +1027,29 @@
}
}
}
- sbuf.append(" triggeredLow: ").append(numUserTriggeredWifiDisableLowRSSI);
- sbuf.append(" triggeredBad: ").append(numUserTriggeredWifiDisableBadRSSI);
- sbuf.append(" triggeredNotHigh: ").append(numUserTriggeredWifiDisableNotHighRSSI);
+ if (this.scanResultCache != null) {
+ sbuf.append("scan cache: ");
+ for(ScanResult result : this.scanResultCache.values()) {
+ sbuf.append("{").append(result.BSSID).append(",").append(result.frequency);
+ sbuf.append(",").append(result.level).append(",st=");
+ sbuf.append(result.autoJoinStatus).append("} ");
+ }
+ sbuf.append('\n');
+ }
+ sbuf.append("triggeredLow: ").append(this.numUserTriggeredWifiDisableLowRSSI);
+ sbuf.append(" triggeredBad: ").append(this.numUserTriggeredWifiDisableBadRSSI);
+ sbuf.append(" triggeredNotHigh: ").append(this.numUserTriggeredWifiDisableNotHighRSSI);
sbuf.append('\n');
- sbuf.append(" ticksLow: ").append(numTicksAtLowRSSI);
- sbuf.append(" ticksBad: ").append(numTicksAtBadRSSI);
- sbuf.append(" ticksNotHigh: ").append(numTicksAtNotHighRSSI);
+ sbuf.append("ticksLow: ").append(this.numTicksAtLowRSSI);
+ sbuf.append(" ticksBad: ").append(this.numTicksAtBadRSSI);
+ sbuf.append(" ticksNotHigh: ").append(this.numTicksAtNotHighRSSI);
sbuf.append('\n');
- sbuf.append(" triggeredJoin: ").append(numUserTriggeredJoinAttempts);
+ sbuf.append("triggeredJoin: ").append(this.numUserTriggeredJoinAttempts);
+ sbuf.append('\n');
+ sbuf.append("autoJoinBailedDueToLowRssi: ").append(this.autoJoinBailedDueToLowRssi);
+ sbuf.append('\n');
+ sbuf.append("autoJoinUseAggressiveJoinAttemptThreshold: ");
+ sbuf.append(this.autoJoinUseAggressiveJoinAttemptThreshold);
sbuf.append('\n');
return sbuf.toString();
@@ -1310,6 +1367,9 @@
numTicksAtNotHighRSSI = source.numTicksAtNotHighRSSI;
numUserTriggeredJoinAttempts = source.numUserTriggeredJoinAttempts;
autoJoinBSSID = source.autoJoinBSSID;
+ autoJoinUseAggressiveJoinAttemptThreshold
+ = source.autoJoinUseAggressiveJoinAttemptThreshold;
+ autoJoinBailedDueToLowRssi = source.autoJoinBailedDueToLowRssi;
}
}
@@ -1370,7 +1430,8 @@
dest.writeInt(numTicksAtBadRSSI);
dest.writeInt(numTicksAtNotHighRSSI);
dest.writeInt(numUserTriggeredJoinAttempts);
-
+ dest.writeInt(autoJoinUseAggressiveJoinAttemptThreshold);
+ dest.writeInt(autoJoinBailedDueToLowRssi ? 1 : 0);
}
/** Implement the Parcelable interface {@hide} */
@@ -1427,6 +1488,8 @@
config.numTicksAtBadRSSI = in.readInt();
config.numTicksAtNotHighRSSI = in.readInt();
config.numUserTriggeredJoinAttempts = in.readInt();
+ config.autoJoinUseAggressiveJoinAttemptThreshold = in.readInt();
+ config.autoJoinBailedDueToLowRssi = in.readInt() != 0;
return config;
}