If you think the Android project DashClockWidget listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*
* Copyright 2013 Google Inc.//fromwww.java2s.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/package com.google.android.apps.dashclock;
import com.google.android.apps.dashclock.api.DashClockExtension;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import java.net.URISyntaxException;
importstatic com.google.android.apps.dashclock.LogUtils.LOGE;
/**
* A basic proxy activity for handling widget clicks.
*/publicclass WidgetClickProxyActivity extends Activity {
privatestaticfinal String TAG = LogUtils.makeLogTag(WidgetClickProxyActivity.class);
/**
* If present, the component name of the extension to update upon being clicked.
*/privatestaticfinal String EXTRA_UPDATE_EXTENSION
= "com.google.android.apps.dashclock.extra.UPDATE_EXTENSION";
@Override
publicvoid onWindowFocusChanged(boolean hasFocus) {
if (hasFocus) {
if (getIntent().hasExtra(EXTRA_UPDATE_EXTENSION)) {
// Update extensions
Intent extensionUpdateIntent = new Intent(this, DashClockService.class);
extensionUpdateIntent.setAction(DashClockService.ACTION_UPDATE_EXTENSIONS);
extensionUpdateIntent.putExtra(DashClockService.EXTRA_COMPONENT_NAME,
getIntent().getStringExtra(EXTRA_UPDATE_EXTENSION));
extensionUpdateIntent.putExtra(DashClockService.EXTRA_UPDATE_REASON,
DashClockExtension.UPDATE_REASON_MANUAL);
startService(extensionUpdateIntent);
}
try {
startActivity(
Intent.parseUri(getIntent().getData().toString(), Intent.URI_INTENT_SCHEME)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_TASK_ON_HOME
| Intent.FLAG_ACTIVITY_CLEAR_TASK
| Intent.FLAG_ACTIVITY_FORWARD_RESULT));
} catch (URISyntaxException e) {
LOGE(TAG, "Error parsing URI.", e);
} catch (ActivityNotFoundException e) {
LOGE(TAG, "Proxy'd activity not found.", e);
} catch (SecurityException e) {
LOGE(TAG, "Don't have permission to launch proxy'd activity.", e);
}
finish();
}
super.onWindowFocusChanged(hasFocus);
}
publicstatic Intent wrap(Context context, Intent intent) {
return wrap(context, intent, null);
}
publicstatic Intent wrap(Context context, Intent intent, ComponentName alsoUpdateExtension) {
returnnew Intent(context, WidgetClickProxyActivity.class)
.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)))
.putExtra(EXTRA_UPDATE_EXTENSION, (alsoUpdateExtension == null)
? null
: alsoUpdateExtension.flattenToString())
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
}
publicstatic Intent getTemplate(Context context) {
returnnew Intent(context, WidgetClickProxyActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
}
publicstatic Intent getFillIntent(Intent clickIntent) {
return getFillIntent(clickIntent, null);
}
publicstatic Intent getFillIntent(Intent clickIntent, ComponentName alsoUpdateExtension) {
returnnew Intent()
.setData(Uri.parse(clickIntent.toUri(Intent.URI_INTENT_SCHEME)))
.putExtra(EXTRA_UPDATE_EXTENSION, (alsoUpdateExtension == null)
? null
: alsoUpdateExtension.flattenToString());
}
}