本文整理汇总了Java中android.support.wearable.complications.ComplicationData类的典型用法代码示例。如果您正苦于以下问题:Java ComplicationData类的具体用法?Java ComplicationData怎么用?Java ComplicationData使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ComplicationData类属于android.support.wearable.complications包,在下文中一共展示了ComplicationData类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: onComplicationTapped
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
/**
* Handles what to do once a complication is tapped
*
* @param id of the complication tapped
*/
private void onComplicationTapped(int id) {
final ComplicationData complicationData = mActiveComplicationDataSparseArray.get(id);
if (complicationData != null) {
if (complicationData.getTapAction() != null) {
try {
complicationData.getTapAction().send();
} catch (PendingIntent.CanceledException e) {
Log.d(TAG, "Something went wrong with tapping a complication");
}
} else if (complicationData.getType() == ComplicationData.TYPE_NO_PERMISSION) {
ComponentName componentName = new ComponentName(
mContext, WatchFaceService.class);
Intent permissionRequestIntent =
ComplicationHelperActivity.createPermissionRequestHelperIntent(
mContext, componentName);
startActivity(permissionRequestIntent);
}
}
}
开发者ID:Nxt3,项目名称:IO_Classic_WatchFace,代码行数:29,代码来源:IOClassicWatchFaceService.java
示例2: updateComplication
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
static void updateComplication(float quote, boolean invert, String symbol, int complicationId, int type,
ComplicationManager manager, PendingIntent pi, Context ctx) {
if (invert) {
quote = 1.0f / quote;
}
DecimalFormat df = new DecimalFormat("#.###");
df.setRoundingMode(RoundingMode.HALF_UP);
String displayQuote = quote > 0.0f ? df.format(quote) : "-";
String displayLabel = invert ? "$:" + symbol : symbol + ":$";
ComplicationData.Builder builder = new ComplicationData.Builder(type);
builder.setTapAction(pi);
if (type == ComplicationData.TYPE_SHORT_TEXT) {
builder.setShortText(ComplicationText.plainText(displayQuote));
builder.setShortTitle(ComplicationText.plainText(displayLabel));
} else if (type == ComplicationData.TYPE_LONG_TEXT) {
builder.setLongText(ComplicationText.plainText(displayQuote));
builder.setLongTitle(ComplicationText.plainText(displayLabel));
builder.setIcon(Icon.createWithResource(ctx, R.mipmap.ic_provider_icon));
}
manager.updateComplicationData(complicationId, builder.build());
}
开发者ID:dps,项目名称:wear-exchangerates,代码行数:24,代码来源:ComplicationService.java
示例3: onComplicationActivated
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
@Override
public void onComplicationActivated(int complicationId, int type, ComplicationManager complicationManager) {
super.onComplicationActivated(complicationId, type, complicationManager);
NetworkComplicationProviderService.serviceInstance = this;
NetworkComplicationProviderService.complicationManager = complicationManager;
NetworkComplicationProviderService.complicationId = complicationId;
Log.d(LOGTAG, "onCompilationActivated: compilationId=" + complicationId);
// invoke the NetworkNotification service:
Intent intent = new Intent(this, NetworkNotificationService.class);
intent.setAction(NetworkNotificationService.ACTION_SHOW_COMPILATION);
startService(intent);
// Intent for tap event (invoke the NetworkNotification service)
Intent tapIntent = new Intent(serviceInstance, StartActivity.class);
tapIntent.setAction(NetworkNotificationService.ACTION_SHOW_NOTIFICATION);
ComplicationData complicationData = new ComplicationData.Builder(ComplicationData.TYPE_SHORT_TEXT)
.setShortText(ComplicationText.plainText(getString(R.string.loading)))
.setIcon(Icon.createWithResource(serviceInstance, R.drawable.ic_launcher))
.setTapAction(PendingIntent.getActivity(serviceInstance, 0, tapIntent, 0))
.build();
complicationManager.updateComplicationData(complicationId, complicationData);
}
开发者ID:demantz,项目名称:WearNetworkNotifications,代码行数:26,代码来源:NetworkComplicationProviderService.java
示例4: drawNotificationCount
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
/**
* Handles drawing the notification count
*
* @param canvas to draw to
*/
private void drawNotificationCount(Canvas canvas) {
int count = 0;
if (mNotificationIndicatorUnread) {
count = mUnreadNotificationCount;
} else if (mNotificationIndicatorAll) {
count = mNotificationCount;
}
if (count > 0) {
//(x,y) coordinates for where to draw the notification indicator
float xPos = mCenterX;
float yPos = mCenterY + dpToPx(mContext, 18);
/*
Draw the notification indicator offset if there is a bottom complication.
Otherwise, draw it below the center of the screen.
*/
if (mActiveComplicationDataSparseArray.get(BOTTOM_COMPLICATION_ID) != null) {
final int bottomType = mActiveComplicationDataSparseArray
.get(BOTTOM_COMPLICATION_ID).getType();
if (bottomType != ComplicationData.TYPE_EMPTY
&& bottomType != ComplicationData.TYPE_NOT_CONFIGURED) {
//Offset from center
xPos = mCenterX + dpToPx(mContext, 34);
yPos = mCenterY * 1.34f;
}
}
canvas.drawCircle(xPos, yPos, mCenterX * 0.08f, mNotificationCirclePaint);
canvas.drawText(String.valueOf(mNotificationCount), xPos,
yPos - (mNotificationTextPaint.descent()
+ mNotificationTextPaint.ascent()) / 2, mNotificationTextPaint);
}
}
开发者ID:Nxt3,项目名称:IO_Classic_WatchFace,代码行数:42,代码来源:IOClassicWatchFaceService.java
示例5: getTappedComplicationId
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
/**
* Determines if a tap was inside a complication area
*
* @param x coordinate of tap
* @param y coordinate of tap
* @return the id of the complication that was tapped; if no complication was tapped,
* return -1
*/
private int getTappedComplicationId(int x, int y) {
long currentTimeMillis = System.currentTimeMillis();
for (int COMPLICATION_ID : COMPLICATION_IDS) {
final ComplicationData complicationData
= mActiveComplicationDataSparseArray.get(COMPLICATION_ID);
if ((complicationData != null)
&& (complicationData.isActive(currentTimeMillis))
&& (complicationData.getType() != ComplicationData.TYPE_NOT_CONFIGURED)
&& (complicationData.getType() != ComplicationData.TYPE_EMPTY)) {
final ComplicationDrawable complicationDrawable
= mComplicationDrawableSparseArray.get(COMPLICATION_ID);
final Rect complicationBoundingRect = complicationDrawable.getBounds();
if (complicationBoundingRect.width() > 0) {
if (complicationBoundingRect.contains(x, y)) {
return COMPLICATION_ID;
}
} else {
Log.e(TAG, "Not a recognized complication id.");
}
}
}
return -1;
}
开发者ID:Nxt3,项目名称:IO_Classic_WatchFace,代码行数:36,代码来源:IOClassicWatchFaceService.java
示例6: onComplicationDataUpdate
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
/**
* Called when there is updated data for the complication
*
* @param complicationId id of the complication to update data for
* @param complicationData data to update the complication with
*/
@Override
public void onComplicationDataUpdate(int complicationId,
ComplicationData complicationData) {
//Adds/updates active complication data in the array.
mActiveComplicationDataSparseArray.put(complicationId, complicationData);
//Updates correct ComplicationDrawable with updated data.
final ComplicationDrawable complicationDrawable
= mComplicationDrawableSparseArray.get(complicationId);
complicationDrawable.setComplicationData(complicationData);
invalidate();
}
开发者ID:Nxt3,项目名称:IO_Classic_WatchFace,代码行数:20,代码来源:IOClassicWatchFaceService.java
示例7: onComplicationDataUpdate
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
@Override
public void onComplicationDataUpdate(
int complicationId, ComplicationData complicationData) {
Log.d(TAG, "onComplicationDataUpdate() id: " + complicationId);
// Adds/updates active complication data in the array.
mActiveComplicationDataSparseArray.put(complicationId, complicationData);
// Updates correct ComplicationDrawable with updated data.
ComplicationDrawable complicationDrawable =
mComplicationDrawableSparseArray.get(complicationId);
complicationDrawable.setComplicationData(complicationData);
invalidate();
}
开发者ID:googlecodelabs,项目名称:complications,代码行数:16,代码来源:ComplicationWatchFaceService.java
示例8: getTappedComplicationId
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
private int getTappedComplicationId(int x, int y) {
int complicationId;
ComplicationData complicationData;
ComplicationDrawable complicationDrawable;
long currentTimeMillis = System.currentTimeMillis();
for (int i = 0; i < COMPLICATION_IDS.length; i++) {
complicationId = COMPLICATION_IDS[i];
complicationData = mActiveComplicationDataSparseArray.get(complicationId);
if ((complicationData != null)
&& (complicationData.isActive(currentTimeMillis))
&& (complicationData.getType() != ComplicationData.TYPE_NOT_CONFIGURED)
&& (complicationData.getType() != ComplicationData.TYPE_EMPTY)) {
complicationDrawable = mComplicationDrawableSparseArray.get(complicationId);
Rect complicationBoundingRect = complicationDrawable.getBounds();
if (complicationBoundingRect.width() > 0) {
if (complicationBoundingRect.contains(x, y)) {
return complicationId;
}
} else {
Log.e(TAG, "Not a recognized complication id.");
}
}
}
return -1;
}
开发者ID:googlecodelabs,项目名称:complications,代码行数:32,代码来源:ComplicationWatchFaceService.java
示例9: onComplicationTap
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
private void onComplicationTap(int complicationId) {
// TODO: Step 5, onComplicationTap()
Log.d(TAG, "onComplicationTap()");
ComplicationData complicationData =
mActiveComplicationDataSparseArray.get(complicationId);
if (complicationData != null) {
if (complicationData.getTapAction() != null) {
try {
complicationData.getTapAction().send();
} catch (PendingIntent.CanceledException e) {
Log.e(TAG, "onComplicationTap() tap action error: " + e);
}
} else if (complicationData.getType() == ComplicationData.TYPE_NO_PERMISSION) {
// Watch face does not have permission to receive complication data, so launch
// permission request.
ComponentName componentName =
new ComponentName(
getApplicationContext(), ComplicationWatchFaceService.class);
Intent permissionRequestIntent =
ComplicationHelperActivity.createPermissionRequestHelperIntent(
getApplicationContext(), componentName);
startActivity(permissionRequestIntent);
}
} else {
Log.d(TAG, "No PendingIntent for complication " + complicationId + ".");
}
}
开发者ID:googlecodelabs,项目名称:complications,代码行数:36,代码来源:ComplicationWatchFaceService.java
示例10: onComplicationTap
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
private void onComplicationTap(int complicationId) {
// TODO: Step 5, onComplicationTap()
Log.d(TAG, "onComplicationTap()");
ComplicationData complicationData =
mActiveComplicationDataSparseArray.get(complicationId);
if (complicationData != null) {
if (complicationData.getTapAction() != null) {
try {
complicationData.getTapAction().send();
} catch (PendingIntent.CanceledException e) {
Log.e(TAG, "onComplicationTap() tap action error: " + e);
}
} else if (complicationData.getType() == ComplicationData.TYPE_NO_PERMISSION) {
// Watch face does not have permission to receive complication data, so launch
// permission request.
ComponentName componentName = new ComponentName(
getApplicationContext(),
ComplicationWatchFaceService.class);
Intent permissionRequestIntent =
ComplicationHelperActivity.createPermissionRequestHelperIntent(
getApplicationContext(), componentName);
startActivity(permissionRequestIntent);
}
} else {
Log.d(TAG, "No PendingIntent for complication " + complicationId + ".");
}
}
开发者ID:googlecodelabs,项目名称:complications,代码行数:36,代码来源:ComplicationWatchFaceService.java
示例11: onComplicationUpdate
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
@Override
public void onComplicationUpdate(int complicationId, int type, ComplicationManager manager) {
if (type != ComplicationData.TYPE_SMALL_IMAGE) {
manager.noUpdateRequired(complicationId);
return;
}
ComponentName thisProvider = new ComponentName(this, getClass());
PendingIntent complicationTogglePendingIntent =
ComplicationToggleReceiver.getToggleIntent(this, thisProvider, complicationId);
SharedPreferences preferences =
getSharedPreferences(ComplicationToggleReceiver.PREFERENCES_NAME, 0);
int state =
preferences.getInt(
ComplicationToggleReceiver.getPreferenceKey(thisProvider, complicationId),
0);
ComplicationData data = null;
switch (state % 2) {
case 0:
// An image using IMAGE_STYLE_PHOTO may be cropped to fill the space given to it.
data =
new ComplicationData.Builder(type)
.setSmallImage(Icon.createWithResource(this, R.drawable.aquarium))
.setImageStyle(ComplicationData.IMAGE_STYLE_PHOTO)
.setTapAction(complicationTogglePendingIntent)
.build();
break;
case 1:
// An image using IMAGE_STYLE_ICON must not be cropped, and should fit within the
// space given to it.
data =
new ComplicationData.Builder(type)
.setSmallImage(
Icon.createWithResource(this, R.drawable.ic_launcher))
.setImageStyle(ComplicationData.IMAGE_STYLE_ICON)
.setTapAction(complicationTogglePendingIntent)
.build();
break;
}
manager.updateComplicationData(complicationId, data);
}
开发者ID:googlesamples,项目名称:android-WearComplicationProvidersTestSuite,代码行数:44,代码来源:SmallImageProviderService.java
示例12: onComplicationUpdate
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
@Override
public void onComplicationUpdate(int complicationId, int type, ComplicationManager manager) {
if (type != ComplicationData.TYPE_LARGE_IMAGE) {
manager.noUpdateRequired(complicationId);
return;
}
ComponentName thisProvider = new ComponentName(this, getClass());
// On many watch faces a large image complication might not respond to taps as the
// complication is used to provide the background for the watch. Providers should not rely
// on tap functionality for large image complications, but the tap action is still included
// here in case it is supported.
PendingIntent complicationTogglePendingIntent =
ComplicationToggleReceiver.getToggleIntent(this, thisProvider, complicationId);
SharedPreferences preferences =
getSharedPreferences(ComplicationToggleReceiver.PREFERENCES_NAME, 0);
int state =
preferences.getInt(
ComplicationToggleReceiver.getPreferenceKey(thisProvider, complicationId),
0);
ComplicationData data = null;
switch (state % 2) {
case 0:
data =
new ComplicationData.Builder(type)
.setLargeImage(Icon.createWithResource(this, R.drawable.aquarium))
.setTapAction(complicationTogglePendingIntent)
.build();
break;
case 1:
data =
new ComplicationData.Builder(type)
.setLargeImage(Icon.createWithResource(this, R.drawable.outdoors))
.setTapAction(complicationTogglePendingIntent)
.build();
break;
}
manager.updateComplicationData(complicationId, data);
}
开发者ID:googlesamples,项目名称:android-WearComplicationProvidersTestSuite,代码行数:43,代码来源:LargeImageProviderService.java
示例13: onComplicationUpdate
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
public void onComplicationUpdate(int complicationId, int type, ComplicationManager manager) {
ComplicationData data = new ComplicationData.Builder(ComplicationData.TYPE_NO_DATA).build();
manager.updateComplicationData(complicationId, data);
}
开发者ID:googlesamples,项目名称:android-WearComplicationProvidersTestSuite,代码行数:5,代码来源:NoDataProviderService.java
示例14: onComplicationUpdate
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
@Override
public void onComplicationUpdate(int complicationId, int type, ComplicationManager manager) {
if (type != ComplicationData.TYPE_ICON) {
manager.noUpdateRequired(complicationId);
return;
}
ComponentName thisProvider = new ComponentName(this, getClass());
PendingIntent complicationTogglePendingIntent =
ComplicationToggleReceiver.getToggleIntent(this, thisProvider, complicationId);
SharedPreferences preferences =
getSharedPreferences(ComplicationToggleReceiver.PREFERENCES_NAME, 0);
int state =
preferences.getInt(
ComplicationToggleReceiver.getPreferenceKey(thisProvider, complicationId),
0);
ComplicationData data = null;
switch (state % 3) {
case 0:
data =
new ComplicationData.Builder(type)
.setIcon(
Icon.createWithResource(
this, R.drawable.ic_face_vd_theme_24))
.setTapAction(complicationTogglePendingIntent)
.build();
break;
case 1:
// This case includes a burn-in protection icon. If the screen uses burn-in
// protection, that icon (which avoids solid blocks of color) should be shown in
// ambient mode.
data =
new ComplicationData.Builder(type)
.setIcon(Icon.createWithResource(this, R.drawable.ic_battery))
.setBurnInProtectionIcon(
Icon.createWithResource(
this, R.drawable.ic_battery_burn_protect))
.setTapAction(complicationTogglePendingIntent)
.build();
break;
case 2:
data =
new ComplicationData.Builder(type)
.setIcon(
Icon.createWithResource(
this, R.drawable.ic_event_vd_theme_24))
.setTapAction(complicationTogglePendingIntent)
.build();
break;
}
manager.updateComplicationData(complicationId, data);
}
开发者ID:googlesamples,项目名称:android-WearComplicationProvidersTestSuite,代码行数:56,代码来源:IconProviderService.java
示例15: onComplicationUpdate
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
@Override
public void onComplicationUpdate(int complicationId, int type, ComplicationManager manager) {
if (type != ComplicationData.TYPE_SHORT_TEXT) {
manager.noUpdateRequired(complicationId);
return;
}
ComponentName thisProvider = new ComponentName(this, getClass());
PendingIntent complicationTogglePendingIntent =
ComplicationToggleReceiver.getToggleIntent(this, thisProvider, complicationId);
SharedPreferences preferences =
getSharedPreferences(ComplicationToggleReceiver.PREFERENCES_NAME, 0);
int state =
preferences.getInt(
ComplicationToggleReceiver.getPreferenceKey(thisProvider, complicationId),
0);
ComplicationData data = null;
switch (state % 4) {
case 0:
data =
new ComplicationData.Builder(type)
.setShortText(
ComplicationText.plainText(
getString(R.string.short_text_only)))
.setTapAction(complicationTogglePendingIntent)
.build();
break;
case 1:
data =
new ComplicationData.Builder(type)
.setShortText(
ComplicationText.plainText(
getString(R.string.short_text_with_icon)))
.setIcon(
Icon.createWithResource(
this, R.drawable.ic_face_vd_theme_24))
.setTapAction(complicationTogglePendingIntent)
.build();
break;
case 2:
data =
new ComplicationData.Builder(type)
.setShortText(
ComplicationText.plainText(
getString(R.string.short_text_with_title)))
.setShortTitle(
ComplicationText.plainText(getString(R.string.short_title)))
.setTapAction(complicationTogglePendingIntent)
.build();
break;
case 3:
// When short text includes both short title and icon, the watch face should only
// display one of those fields.
data =
new ComplicationData.Builder(type)
.setShortText(
ComplicationText.plainText(
getString(R.string.short_text_with_both)))
.setShortTitle(
ComplicationText.plainText(getString(R.string.short_title)))
.setIcon(
Icon.createWithResource(
this, R.drawable.ic_face_vd_theme_24))
.setTapAction(complicationTogglePendingIntent)
.build();
break;
}
manager.updateComplicationData(complicationId, data);
}
开发者ID:googlesamples,项目名称:android-WearComplicationProvidersTestSuite,代码行数:72,代码来源:ShortTextProviderService.java
示例16: onComplicationUpdate
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
@Override
public void onComplicationUpdate(
int complicationId, int dataType, ComplicationManager complicationManager) {
Log.d(TAG, "onComplicationUpdate() id: " + complicationId);
// Create Tap Action so that the user can trigger an update by tapping the complication.
ComponentName thisProvider = new ComponentName(this, getClass());
// We pass the complication id, so we can only update the specific complication tapped.
PendingIntent complicationPendingIntent =
ComplicationTapBroadcastReceiver.getToggleIntent(
this, thisProvider, complicationId);
// Retrieves your data, in this case, we grab an incrementing number from SharedPrefs.
SharedPreferences preferences =
getSharedPreferences(
ComplicationTapBroadcastReceiver.COMPLICATION_PROVIDER_PREFERENCES_FILE_KEY,
0);
int number =
preferences.getInt(
ComplicationTapBroadcastReceiver.getPreferenceKey(
thisProvider, complicationId),
0);
String numberText = String.format(Locale.getDefault(), "%d!", number);
ComplicationData complicationData = null;
switch (dataType) {
case ComplicationData.TYPE_SHORT_TEXT:
complicationData =
new ComplicationData.Builder(ComplicationData.TYPE_SHORT_TEXT)
.setShortText(ComplicationText.plainText(numberText))
.setTapAction(complicationPendingIntent)
.build();
break;
case ComplicationData.TYPE_LONG_TEXT:
complicationData =
new ComplicationData.Builder(ComplicationData.TYPE_LONG_TEXT)
.setLongText(ComplicationText.plainText("Number: " + numberText))
.setTapAction(complicationPendingIntent)
.build();
break;
case ComplicationData.TYPE_RANGED_VALUE:
complicationData =
new ComplicationData.Builder(ComplicationData.TYPE_RANGED_VALUE)
.setValue(number)
.setMinValue(0)
.setMaxValue(ComplicationTapBroadcastReceiver.MAX_NUMBER)
.setShortText(ComplicationText.plainText(numberText))
.setTapAction(complicationPendingIntent)
.build();
break;
default:
if (Log.isLoggable(TAG, Log.WARN)) {
Log.w(TAG, "Unexpected complication type " + dataType);
}
}
if (complicationData != null) {
complicationManager.updateComplicationData(complicationId, complicationData);
} else {
// If no data is sent, we still need to inform the ComplicationManager, so the update
// job can finish and the wake lock isn't held any longer than necessary.
complicationManager.noUpdateRequired(complicationId);
}
}
开发者ID:googlecodelabs,项目名称:data-providers,代码行数:67,代码来源:CustomComplicationProviderService.java
示例17: onComplicationUpdate
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
@Override
public void onComplicationUpdate(
int complicationId, int dataType, ComplicationManager complicationManager) {
Log.d(TAG, "onComplicationUpdate() id: " + complicationId);
// Used to create a unique key to use with SharedPreferences for this complication.
ComponentName thisProvider = new ComponentName(this, getClass());
// Retrieves your data, in this case, we grab an incrementing number from SharedPrefs.
SharedPreferences preferences =
getSharedPreferences(
ComplicationTapBroadcastReceiver.COMPLICATION_PROVIDER_PREFERENCES_FILE_KEY,
0);
int number =
preferences.getInt(
ComplicationTapBroadcastReceiver.getPreferenceKey(
thisProvider, complicationId),
0);
String numberText = String.format(Locale.getDefault(), "%d!", number);
ComplicationData complicationData = null;
switch (dataType) {
case ComplicationData.TYPE_SHORT_TEXT:
complicationData =
new ComplicationData.Builder(ComplicationData.TYPE_SHORT_TEXT)
.setShortText(ComplicationText.plainText(numberText))
.build();
break;
default:
if (Log.isLoggable(TAG, Log.WARN)) {
Log.w(TAG, "Unexpected complication type " + dataType);
}
}
if (complicationData != null) {
complicationManager.updateComplicationData(complicationId, complicationData);
} else {
// If no data is sent, we still need to inform the ComplicationManager, so the update
// job can finish and the wake lock isn't held any longer than necessary.
complicationManager.noUpdateRequired(complicationId);
}
}
开发者ID:googlecodelabs,项目名称:data-providers,代码行数:45,代码来源:CustomComplicationProviderService.java
示例18: onComplicationUpdate
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
@Override
public void onComplicationUpdate(
int complicationId, int dataType, ComplicationManager complicationManager) {
Log.d(TAG, "onComplicationUpdate() id: " + complicationId);
// Create Tap Action so that the user can trigger an update by tapping the complication.
ComponentName thisProvider = new ComponentName(this, getClass());
// We pass the complication id, so we can only update the specific complication tapped.
PendingIntent complicationPendingIntent =
ComplicationTapBroadcastReceiver.getToggleIntent(
this, thisProvider, complicationId);
// Retrieves your data, in this case, we grab an incrementing number from SharedPrefs.
SharedPreferences preferences =
getSharedPreferences(
ComplicationTapBroadcastReceiver.COMPLICATION_PROVIDER_PREFERENCES_FILE_KEY,
0);
int number =
preferences.getInt(
ComplicationTapBroadcastReceiver.getPreferenceKey(
thisProvider, complicationId),
0);
String numberText = String.format(Locale.getDefault(), "%d!", number);
ComplicationData complicationData = null;
switch (dataType) {
case ComplicationData.TYPE_SHORT_TEXT:
complicationData =
new ComplicationData.Builder(ComplicationData.TYPE_SHORT_TEXT)
.setShortText(ComplicationText.plainText(numberText))
.setTapAction(complicationPendingIntent)
.build();
break;
case ComplicationData.TYPE_LONG_TEXT:
complicationData =
new ComplicationData.Builder(ComplicationData.TYPE_LONG_TEXT)
.setLongText(ComplicationText.plainText("Number: " + numberText))
.setTapAction(complicationPendingIntent)
.build();
break;
default:
if (Log.isLoggable(TAG, Log.WARN)) {
Log.w(TAG, "Unexpected complication type " + dataType);
}
}
if (complicationData != null) {
complicationManager.updateComplicationData(complicationId, complicationData);
} else {
// If no data is sent, we still need to inform the ComplicationManager, so the update
// job can finish and the wake lock isn't held any longer than necessary.
complicationManager.noUpdateRequired(complicationId);
}
}
开发者ID:googlecodelabs,项目名称:data-providers,代码行数:57,代码来源:CustomComplicationProviderService.java
示例19: onComplicationUpdate
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
@Override
public void onComplicationUpdate(
int complicationId, int dataType, ComplicationManager complicationManager) {
Log.d(TAG, "onComplicationUpdate() id: " + complicationId);
// Create Tap Action so that the user can trigger an update by tapping the complication.
ComponentName thisProvider = new ComponentName(this, getClass());
// We pass the complication id, so we can only update the specific complication tapped.
PendingIntent complicationPendingIntent =
ComplicationTapBroadcastReceiver.getToggleIntent(
this, thisProvider, complicationId);
// Retrieves your data, in this case, we grab an incrementing number from SharedPrefs.
SharedPreferences preferences =
getSharedPreferences(
ComplicationTapBroadcastReceiver.COMPLICATION_PROVIDER_PREFERENCES_FILE_KEY,
0);
int number =
preferences.getInt(
ComplicationTapBroadcastReceiver.getPreferenceKey(
thisProvider, complicationId),
0);
String numberText = String.format(Locale.getDefault(), "%d!", number);
ComplicationData complicationData = null;
switch (dataType) {
case ComplicationData.TYPE_SHORT_TEXT:
complicationData =
new ComplicationData.Builder(ComplicationData.TYPE_SHORT_TEXT)
.setShortText(ComplicationText.plainText(numberText))
.setTapAction(complicationPendingIntent)
.build();
break;
default:
if (Log.isLoggable(TAG, Log.WARN)) {
Log.w(TAG, "Unexpected complication type " + dataType);
}
}
if (complicationData != null) {
complicationManager.updateComplicationData(complicationId, complicationData);
} else {
// If no data is sent, we still need to inform the ComplicationManager, so the update
// job can finish and the wake lock isn't held any longer than necessary.
complicationManager.noUpdateRequired(complicationId);
}
}
开发者ID:googlecodelabs,项目名称:data-providers,代码行数:50,代码来源:CustomComplicationProviderService.java
示例20: updateData
import android.support.wearable.complications.ComplicationData; //导入依赖的package包/类
public static boolean updateData(Context context, Bundle data, boolean connected) {
if(serviceInstance == null) {
Log.i(LOGTAG, "updateData: serviceInstance is null. Do nothing.");
return false;
}
int iconRes;
String title;
if(data == null) {
// we show 'loading' or 'offline':
iconRes = connected ? R.drawable.ic_launcher : R.drawable.offline;
title = connected ? context.getString(R.string.loading) : context.getString(R.string.offline);
}
else {
ConnectionData conData = ConnectionData.fromBundle(context, data);
Log.d(LOGTAG, "updateData: " + conData.toString());
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
boolean showNetworkName = preferences.getBoolean(context.getString(R.string.pref_showNetworkName), true);
boolean showSignalStrength = preferences.getBoolean(context.getString(R.string.pref_showSignalStrength), true);
int cellularSignalStrengthUnit = Integer.valueOf(preferences.getString(context.getString(R.string.pref_cellularSignalStrengthUnit), "0"));
int wifiSignalStrengthUnit = Integer.valueOf(preferences.getString(context.getString(R.string.pref_wifiSignalStrengthUnit), "0"));
iconRes = conData.getIndicatorIconRes();
if (iconRes < 0)
iconRes = R.drawable.ic_launcher;
title = "";
if (showSignalStrength)
title += conData.getPrimarySignalStrength(conData.getConnectionState() == ConnectionData.STATE_WIFI ?
wifiSignalStrengthUnit : cellularSignalStrengthUnit) + " ";
if (showNetworkName)
title += conData.getPrimaryNetworkName();
if (title.length() == 0)
title = "";
}
Log.d(LOGTAG, "updateData: called, title=" + title + " debugCounter=" + debugCounter);
// Intent for tap event (invoke the NetworkNotification service)
Intent intent = new Intent(serviceInstance, StartActivity.class);
intent.setAction(NetworkNotificationService.ACTION_SHOW_NOTIFICATION);
ComplicationData complicationData = new ComplicationData.Builder(ComplicationData.TYPE_SHORT_TEXT)
.setShortText(ComplicationText.plainText(title))
.setIcon(Icon.createWithResource(serviceInstance, iconRes))
.setTapAction(PendingIntent.getActivity(serviceInstance, 0, intent, 0))
.build();
complicationManager.updateComplicationData(complicationId, complicationData);
debugCounter++;
return true;
}
开发者ID:demantz,项 |
请发表评论