WIMM Labs


com.wimm.framework.watches
Class BaseWatchView

java.lang.Object
  extended by android.view.View
      extended by android.view.ViewGroup
          extended by android.widget.RelativeLayout
              extended by com.wimm.framework.watches.BaseWatchView
All Implemented Interfaces:
Drawable.Callback, AccessibilityEventSource, KeyEvent.Callback, ViewManager, ViewParent
Direct Known Subclasses:
AnalogWatchView, DigitalWatchView

public abstract class BaseWatchView
extends RelativeLayout

BaseWatchView is the base class for AnalogWatchView and DigitalWatchView.

Since:
WIMM SDK 1.0.0

Nested Class Summary
static class BaseWatchView.UpdateResolution
          Enum containing the String constants "SECOND" and "MINUTE".
 
Nested classes/interfaces inherited from class android.widget.RelativeLayout
RelativeLayout.LayoutParams
 
Nested classes/interfaces inherited from class android.view.ViewGroup
ViewGroup.MarginLayoutParams, ViewGroup.OnHierarchyChangeListener
 
Nested classes/interfaces inherited from class android.view.View
View.BaseSavedState, View.MeasureSpec, View.OnClickListener, View.OnCreateContextMenuListener, View.OnFocusChangeListener, View.OnKeyListener, View.OnLongClickListener, View.OnTouchListener
 
Field Summary
static int DRAW_BACKGROUND_ACTIVE
          Tag for the watchface background drawable in active mode.
static int DRAW_BACKGROUND_PASSIVE
          Tag for the watchface background drawable in passive mode.
 
Fields inherited from class android.widget.RelativeLayout
ABOVE, ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_LEFT, ALIGN_PARENT_BOTTOM, ALIGN_PARENT_LEFT, ALIGN_PARENT_RIGHT, ALIGN_PARENT_TOP, ALIGN_RIGHT, ALIGN_TOP, BELOW, CENTER_HORIZONTAL, CENTER_IN_PARENT, CENTER_VERTICAL, LEFT_OF, RIGHT_OF, TRUE
 
Fields inherited from class android.view.ViewGroup
CLIP_TO_PADDING_MASK, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHE
 
Fields inherited from class android.view.View
DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, INVISIBLE, KEEP_SCREEN_ON, NO_ID, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SOUND_EFFECTS_ENABLED, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET
 
Constructor Summary
BaseWatchView(Context context, AttributeSet attrs)
          Instantiates a new watch view.
 
Method Summary
 void animateFromPreview()
          Called when the watchface is selected from the watchface picker.
protected  void drawComplications(Canvas canvas)
          Called by drawWatch(android.graphics.Canvas, android.text.format.Time) and drawPassiveWatch(android.graphics.Canvas, android.text.format.Time) to draw subviews within BaseWatchView Layout.
protected  void drawPassiveWatch(Canvas canvas, Time time)
          Draw the passive watchface on the given canvas set to the given time.
protected  void drawWatch(Canvas canvas, Time time)
           Draw the watch face onto the given canvas set to the given time.
 BaseWatchView.UpdateResolution getActiveUpdateResolution()
          Return how often the watchface should be updated (SECOND or MINUTE).
 Drawable getDrawable(int tag)
          Retrieves the Drawable watchface asset.
 Time getTime()
          Convenience method that retrieves the current time.
 boolean isAnimatingFromPreview()
          Checks if preview animation is running.
 boolean isDisplayActive()
          Checks whether the screen is in active or passive mode.
 void setDisplayActive(boolean isActive)
          Called by the system when the screen changes between active and passive mode.
 void setDrawable(int tag, Drawable drawable)
          Sets a watchface asset from a Drawable.
 void setDrawable(int tag, int resId)
          Sets a watchface asset using a resource ID.
protected  boolean shouldDrawPassiveComplications()
          Return whether complications should be drawn while in passive mode.
 boolean use24HourTime()
          Convenience method for checking if the system is set to use 24-hour time.
 
Methods inherited from class android.widget.RelativeLayout
checkLayoutParams, dispatchPopulateAccessibilityEvent, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getBaseline, onLayout, onMeasure, requestLayout, setGravity, setHorizontalGravity, setIgnoreGravity, setVerticalGravity
 
Methods inherited from class android.view.ViewGroup
addFocusables, addFocusables, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, childDrawableStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchDraw, dispatchFreezeSelfOnly, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchSetPressed, dispatchSetSelected, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchWindowFocusChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, findFocus, fitSystemWindows, focusableViewAvailable, focusSearch, gatherTransparentRegion, getChildAt, getChildCount, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getPersistentDrawingCache, hasFocus, hasFocusable, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, measureChild, measureChildren, measureChildWithMargins, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onAnimationEnd, onAnimationStart, onCreateDrawableState, onInterceptTouchEvent, onRequestFocusInDescendants, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestTransparentRegion, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setOnHierarchyChangeListener, setPadding, setPersistentDrawingCache, setStaticTransformationsEnabled, showContextMenuForChild, startLayoutAnimation, updateViewLayout
 
Methods inherited from class android.view.View
awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, cancelLongPress, checkInputConnectionProxy, clearAnimation, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createContextMenu, destroyDrawingCache, draw, finalize, findViewById, findViewWithTag, focusSearch, forceLayout, getAnimation, getApplicationWindowToken, getBackground, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getContentDescription, getContext, getContextMenuInfo, getDefaultSize, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getFocusables, getFocusedRect, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getId, getKeepScreenOn, getKeyDispatcherState, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInWindow, getLocationOnScreen, getMeasuredHeight, getMeasuredWidth, getNextFocusDownId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getPaddingBottom, getPaddingLeft, getPaddingRight, getPaddingTop, getParent, getResources, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootView, getScrollBarStyle, getScrollX, getScrollY, getSolidColor, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getTag, getTag, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getVerticalFadingEdgeLength, getVerticalScrollbarWidth, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, hasWindowFocus, inflate, initializeFadingEdge, initializeScrollbars, invalidate, invalidate, invalidate, invalidateDrawable, isClickable, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isHapticFeedbackEnabled, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isInEditMode, isInTouchMode, isLayoutRequested, isLongClickable, isOpaque, isPaddingOffsetRequired, isPressed, isSaveEnabled, isScrollbarFadingEnabled, isSelected, isShown, isSoundEffectsEnabled, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, layout, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAttachedToWindow, onCheckIsTextEditor, onCreateContextMenu, onCreateInputConnection, onDetachedFromWindow, onDraw, onDrawScrollBars, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onRestoreInstanceState, onSaveInstanceState, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onWindowFocusChanged, onWindowVisibilityChanged, performClick, performHapticFeedback, performHapticFeedback, performLongClick, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, refreshDrawableState, removeCallbacks, requestFocus, requestFocus, requestFocusFromTouch, requestRectangleOnScreen, requestRectangleOnScreen, resolveSize, restoreHierarchyState, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAnimation, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setClickable, setContentDescription, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setEnabled, setFadingEdgeLength, setFocusable, setFocusableInTouchMode, setHapticFeedbackEnabled, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setId, setKeepScreenOn, setLayoutParams, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNextFocusDownId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnClickListener, setOnCreateContextMenuListener, setOnFocusChangeListener, setOnKeyListener, setOnLongClickListener, setOnTouchListener, setPressed, setSaveEnabled, setScrollbarFadingEnabled, setScrollBarStyle, setScrollContainer, setSelected, setSoundEffectsEnabled, setTag, setTag, setTouchDelegate, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVisibility, setWillNotCacheDrawing, setWillNotDraw, showContextMenu, startAnimation, unscheduleDrawable, unscheduleDrawable, verifyDrawable, willNotCacheDrawing, willNotDraw
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface android.view.ViewParent
createContextMenu, getParent, isLayoutRequested
 

Field Detail

DRAW_BACKGROUND_ACTIVE

public static final int DRAW_BACKGROUND_ACTIVE
Tag for the watchface background drawable in active mode.

Since:
WIMM SDK 1.0.0
See Also:
setDrawable(int, int), Constant Field Values

DRAW_BACKGROUND_PASSIVE

public static final int DRAW_BACKGROUND_PASSIVE
Tag for the watchface background drawable in passive mode.

Since:
WIMM SDK 1.0.0
See Also:
setDrawable(int, int), Constant Field Values
Constructor Detail

BaseWatchView

public BaseWatchView(Context context,
                     AttributeSet attrs)
Instantiates a new watch view.

Parameters:
context - The Context.
attrs - The AttributeSet.
Since:
WIMM SDK 1.0.0
Method Detail

setDrawable

public void setDrawable(int tag,
                        int resId)
Sets a watchface asset using a resource ID.

The following example sets the DRAW_BACKGROUND_PASSIVE watchface asset to the resource named "my_passive_background":

    setDrawable(BaseWatchView.DRAW_BACKGROUND_PASSIVE, R.drawable.my_passive_background);
  

Parameters:
tag - The asset constant.
resId - The asset's resource ID.
Since:
WIMM SDK 1.0.0

setDrawable

public void setDrawable(int tag,
                        Drawable drawable)
Sets a watchface asset from a Drawable.

The following example sets the DRAW_BACKGROUND_PASSIVE watchface asset to the color black:

   setDrawable(BaseWatchView.DRAW_BACKGROUND_PASSIVE, new ColorDrawable(Color.BLACK));
  

Parameters:
tag - The asset constant.
drawable - The drawable.
Since:
WIMM SDK 1.0.0

getDrawable

public Drawable getDrawable(int tag)
Retrieves the Drawable watchface asset.

Parameters:
tag - The tag associated with the drawable asset to be retrieved.
Returns:
The drawable asset.
Since:
WIMM SDK 1.0.0

use24HourTime

public boolean use24HourTime()
Convenience method for checking if the system is set to use 24-hour time.

Returns:
true if the system is set to use 24-hour time.
Since:
WIMM SDK 1.0.0

drawWatch

protected void drawWatch(Canvas canvas,
                         Time time)

Draw the watch face onto the given canvas set to the given time. This is called just before the view should render its content (View.onDraw(android.graphics.Canvas) will be call next). This is called at a frequency of once every BaseWatchView.UpdateResolution.MINUTE or once every BaseWatchView.UpdateResolution.SECOND determined by the return value of getActiveUpdateResolution() in active mode.


drawPassiveWatch

protected void drawPassiveWatch(Canvas canvas,
                                Time time)

Draw the passive watchface on the given canvas set to the given time. This is called just before the view should render its content (View.onDraw(android.graphics.Canvas) will be call next). This is called at least once every 60 seconds when the device is in Passive mode.


drawComplications

protected void drawComplications(Canvas canvas)

Called by drawWatch(android.graphics.Canvas, android.text.format.Time) and drawPassiveWatch(android.graphics.Canvas, android.text.format.Time) to draw subviews within BaseWatchView Layout.

Note: subviews would note be drawn during passive mode if shouldDrawPassiveComplications() return false


getTime

public Time getTime()
Convenience method that retrieves the current time.

Returns:
The current Time.
Since:
WIMM SDK 1.0.0

isDisplayActive

public boolean isDisplayActive()
Checks whether the screen is in active or passive mode.

Returns:
true if the screen is in active mode.
Since:
WIMM SDK 1.0.0

setDisplayActive

public void setDisplayActive(boolean isActive)
Called by the system when the screen changes between active and passive mode.

Parameters:
isActive - true if the screen is in active mode.
Since:
WIMM SDK 1.0.0

getActiveUpdateResolution

public BaseWatchView.UpdateResolution getActiveUpdateResolution()
Return how often the watchface should be updated (SECOND or MINUTE).

Override this method and return UpdateResolution.MINUTE to switch to per minute update in Active mode.

Default: UpdateResolution.SECOND

Returns:
The active update resolution.
Since:
WIMM SDK 1.0.0

shouldDrawPassiveComplications

protected boolean shouldDrawPassiveComplications()

Return whether complications should be drawn while in passive mode.

Override this and returns false to stop View.dispatchDraw(android.graphics.Canvas) from being called in passive mode.


animateFromPreview

public void animateFromPreview()
Called when the watchface is selected from the watchface picker.

Override to control the transition from the watchface preview to the current time.

Since:
WIMM SDK 1.0.0

isAnimatingFromPreview

public boolean isAnimatingFromPreview()
Checks if preview animation is running.

Returns:
true if preview animation is running.
Since:
WIMM SDK 1.0.1

WIMM Labs