summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/gadget/PhotoAppWidgetProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/gadget/PhotoAppWidgetProvider.java')
-rw-r--r--src/com/android/gallery3d/gadget/PhotoAppWidgetProvider.java139
1 files changed, 0 insertions, 139 deletions
diff --git a/src/com/android/gallery3d/gadget/PhotoAppWidgetProvider.java b/src/com/android/gallery3d/gadget/PhotoAppWidgetProvider.java
deleted file mode 100644
index 58466bf01..000000000
--- a/src/com/android/gallery3d/gadget/PhotoAppWidgetProvider.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * 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.android.gallery3d.gadget;
-
-import android.annotation.TargetApi;
-import android.app.PendingIntent;
-import android.appwidget.AppWidgetManager;
-import android.appwidget.AppWidgetProvider;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.net.Uri;
-import android.util.Log;
-import android.widget.RemoteViews;
-
-import com.android.gallery3d.R;
-import com.android.gallery3d.common.ApiHelper;
-import com.android.gallery3d.gadget.WidgetDatabaseHelper.Entry;
-import com.android.gallery3d.onetimeinitializer.GalleryWidgetMigrator;
-
-public class PhotoAppWidgetProvider extends AppWidgetProvider {
-
- private static final String TAG = "WidgetProvider";
-
- static RemoteViews buildWidget(Context context, int id, Entry entry) {
-
- switch (entry.type) {
- case WidgetDatabaseHelper.TYPE_ALBUM:
- case WidgetDatabaseHelper.TYPE_SHUFFLE:
- return buildStackWidget(context, id, entry);
- case WidgetDatabaseHelper.TYPE_SINGLE_PHOTO:
- return buildFrameWidget(context, id, entry);
- }
- throw new RuntimeException("invalid type - " + entry.type);
- }
-
- @Override
- public void onUpdate(Context context,
- AppWidgetManager appWidgetManager, int[] appWidgetIds) {
-
- if (ApiHelper.HAS_REMOTE_VIEWS_SERVICE) {
- // migrate gallery widgets from pre-JB releases to JB due to bucket ID change
- GalleryWidgetMigrator.migrateGalleryWidgets(context);
- }
-
- WidgetDatabaseHelper helper = new WidgetDatabaseHelper(context);
- try {
- for (int id : appWidgetIds) {
- Entry entry = helper.getEntry(id);
- if (entry != null) {
- RemoteViews views = buildWidget(context, id, entry);
- appWidgetManager.updateAppWidget(id, views);
- } else {
- Log.e(TAG, "cannot load widget: " + id);
- }
- }
- } finally {
- helper.close();
- }
- super.onUpdate(context, appWidgetManager, appWidgetIds);
- }
-
- @SuppressWarnings("deprecation")
- @TargetApi(ApiHelper.VERSION_CODES.HONEYCOMB)
- private static RemoteViews buildStackWidget(Context context, int widgetId, Entry entry) {
- RemoteViews views = new RemoteViews(
- context.getPackageName(), R.layout.appwidget_main);
-
- Intent intent = new Intent(context, WidgetService.class);
- intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId);
- intent.putExtra(WidgetService.EXTRA_WIDGET_TYPE, entry.type);
- intent.putExtra(WidgetService.EXTRA_ALBUM_PATH, entry.albumPath);
- intent.setData(Uri.parse("widget://gallery/" + widgetId));
-
- // We use the deprecated API for backward compatibility
- // The new API is available in ICE_CREAM_SANDWICH (15)
- views.setRemoteAdapter(widgetId, R.id.appwidget_stack_view, intent);
-
- views.setEmptyView(R.id.appwidget_stack_view, R.id.appwidget_empty_view);
-
- Intent clickIntent = new Intent(context, WidgetClickHandler.class);
- PendingIntent pendingIntent = PendingIntent.getActivity(
- context, 0, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT);
- views.setPendingIntentTemplate(R.id.appwidget_stack_view, pendingIntent);
-
- return views;
- }
-
- static RemoteViews buildFrameWidget(Context context, int appWidgetId, Entry entry) {
- RemoteViews views = new RemoteViews(
- context.getPackageName(), R.layout.photo_frame);
- try {
- byte[] data = entry.imageData;
- Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
- views.setImageViewBitmap(R.id.photo, bitmap);
- } catch (Throwable t) {
- Log.w(TAG, "cannot load widget image: " + appWidgetId, t);
- }
-
- if (entry.imageUri != null) {
- try {
- Uri uri = Uri.parse(entry.imageUri);
- Intent clickIntent = new Intent(context, WidgetClickHandler.class)
- .setData(uri);
- PendingIntent pendingClickIntent = PendingIntent.getActivity(context, 0,
- clickIntent, PendingIntent.FLAG_CANCEL_CURRENT);
- views.setOnClickPendingIntent(R.id.photo, pendingClickIntent);
- } catch (Throwable t) {
- Log.w(TAG, "cannot load widget uri: " + appWidgetId, t);
- }
- }
- return views;
- }
-
- @Override
- public void onDeleted(Context context, int[] appWidgetIds) {
- // Clean deleted photos out of our database
- WidgetDatabaseHelper helper = new WidgetDatabaseHelper(context);
- for (int appWidgetId : appWidgetIds) {
- helper.deleteEntry(appWidgetId);
- }
- helper.close();
- }
-}