diff options
author | Steve Kondik <steve@cyngn.com> | 2015-10-17 23:40:33 -0700 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-10-17 23:40:33 -0700 |
commit | bcbf7c98a521b9ee4a7d03e00dcfc469c9b3a398 (patch) | |
tree | 85d07b2095695fe79235ab16e627f8b22c7bfd8d /src/com/android/gallery3d/gadget/WidgetService.java | |
parent | a3fcd50080c0546ebd5f0caf932eef02fabdd7ad (diff) | |
parent | 8de528917bf03cca93ac2a3dd19b7a5719d1a26e (diff) | |
download | android_packages_apps_Gallery2-bcbf7c98a521b9ee4a7d03e00dcfc469c9b3a398.tar.gz android_packages_apps_Gallery2-bcbf7c98a521b9ee4a7d03e00dcfc469c9b3a398.tar.bz2 android_packages_apps_Gallery2-bcbf7c98a521b9ee4a7d03e00dcfc469c9b3a398.zip |
Merge branch 'cm-12.1' of git://github.com/CyanogenMod/android_packages_apps_Gallery2 into cm-13.0
Change-Id: Ib8caa024d2e6feca332e3645038f226fd5a910a2
Diffstat (limited to 'src/com/android/gallery3d/gadget/WidgetService.java')
-rw-r--r-- | src/com/android/gallery3d/gadget/WidgetService.java | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/gadget/WidgetService.java b/src/com/android/gallery3d/gadget/WidgetService.java index fc54fb6e8..7b16f8b7c 100644 --- a/src/com/android/gallery3d/gadget/WidgetService.java +++ b/src/com/android/gallery3d/gadget/WidgetService.java @@ -19,8 +19,10 @@ package com.android.gallery3d.gadget; import android.annotation.TargetApi; import android.appwidget.AppWidgetManager; import android.content.Intent; +import android.drm.DrmHelper; import android.graphics.Bitmap; import android.net.Uri; +import android.view.View; import android.widget.RemoteViews; import android.widget.RemoteViewsService; @@ -80,7 +82,7 @@ public class WidgetService extends RemoteViewsService { } @Override - public void onDestroy() { + public synchronized void onDestroy() { mSource.close(); mSource = null; } @@ -115,9 +117,37 @@ public class WidgetService extends RemoteViewsService { } @Override - public RemoteViews getViewAt(int position) { + public synchronized RemoteViews getViewAt(int position) { + if (mSource == null) { + // This instance has been destroyed, exit out + return null; + } Bitmap bitmap = mSource.getImage(position); - if (bitmap == null) return getLoadingView(); + + boolean isDrm = false; + if (DrmHelper.isDrmFile(DrmHelper.getFilePath( + mApp.getAndroidContext(), mSource.getContentUri(position)))) { + isDrm = true; + } + + if (isDrm) { + if (bitmap == null) { + RemoteViews rv = new RemoteViews(mApp.getAndroidContext() + .getPackageName(), + R.layout.appwidget_drm_empty_item); + rv.setOnClickFillInIntent( + R.id.appwidget_photo_item, + new Intent().setFlags( + Intent.FLAG_ACTIVITY_CLEAR_TOP).setData( + mSource.getContentUri(position))); + return rv; + } + } else { + if (bitmap == null) { + return getLoadingView(); + } + } + RemoteViews views = new RemoteViews( mApp.getAndroidContext().getPackageName(), R.layout.appwidget_photo_item); @@ -125,6 +155,13 @@ public class WidgetService extends RemoteViewsService { views.setOnClickFillInIntent(R.id.appwidget_photo_item, new Intent() .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) .setData(mSource.getContentUri(position))); + + if (isDrm) { + views.setViewVisibility(R.id.drm_icon, View.VISIBLE); + } else { + views.setViewVisibility(R.id.drm_icon, View.GONE); + } + return views; } |