| package com.example.android.wearable.watchface.provider; |
| |
| import android.app.IntentService; |
| import android.content.ComponentName; |
| import android.content.Intent; |
| import android.support.wearable.complications.ProviderUpdateRequester; |
| import android.util.Log; |
| |
| /** |
| * Simple {@link IntentService} subclass for asynchronously requesting an update for the random |
| * number complication (triggered via TapAction on complication). |
| */ |
| public class UpdateComplicationDataService extends IntentService { |
| |
| private static final String TAG = "UpdateCompService"; |
| |
| public static final String ACTION_UPDATE_COMPLICATION = |
| "com.example.android.wearable.watchface.provider.action.UPDATE_COMPLICATION"; |
| |
| public static final String EXTRA_COMPLICATION_ID = |
| "com.example.android.wearable.watchface.provider.action.COMPLICATION_ID"; |
| |
| public UpdateComplicationDataService() { |
| super("UpdateComplicationDataService"); |
| } |
| |
| @Override |
| protected void onHandleIntent(Intent intent) { |
| |
| if (intent != null) { |
| |
| final String action = intent.getAction(); |
| |
| if (ACTION_UPDATE_COMPLICATION.equals(action)) { |
| |
| int complicationId = intent.getIntExtra(EXTRA_COMPLICATION_ID, -1); |
| handleActionUpdateComplicationData(complicationId); |
| } |
| } |
| } |
| |
| /** |
| * Handle action UpdateComplicationData in the provided background thread with the provided |
| * parameters. |
| */ |
| private void handleActionUpdateComplicationData(int complicationId) { |
| |
| Log.d(TAG, "Complication id to update via service: " + complicationId); |
| |
| ComponentName componentName = |
| new ComponentName(getApplicationContext(), RandomNumberProviderService.class); |
| |
| ProviderUpdateRequester providerUpdateRequester = |
| new ProviderUpdateRequester(getApplicationContext(), componentName); |
| |
| if (complicationId > 0) { |
| // This method only updates the specific complication tapped on the watch, if you |
| // wanted to update all active complications associated with your data, you would |
| // call providerUpdateRequester.requestUpdateAll(). |
| providerUpdateRequester.requestUpdate(complicationId); |
| } |
| } |
| } |