diff options
-rw-r--r-- | src/com/android/gallery3d/gadget/WidgetClickHandler.java | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/gadget/WidgetClickHandler.java b/src/com/android/gallery3d/gadget/WidgetClickHandler.java index 35f9bec36..37ee1a651 100644 --- a/src/com/android/gallery3d/gadget/WidgetClickHandler.java +++ b/src/com/android/gallery3d/gadget/WidgetClickHandler.java @@ -16,10 +16,12 @@ package com.android.gallery3d.gadget; +import android.annotation.TargetApi; import android.app.Activity; import android.content.Intent; import android.content.res.AssetFileDescriptor; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.util.Log; import android.widget.Toast; @@ -27,6 +29,7 @@ import android.widget.Toast; import com.android.gallery3d.R; import com.android.gallery3d.app.Gallery; import com.android.gallery3d.app.PhotoPage; +import com.android.gallery3d.common.ApiHelper; public class WidgetClickHandler extends Activity { private static final String TAG = "PhotoAppWidgetClickHandler"; @@ -45,20 +48,29 @@ public class WidgetClickHandler extends Activity { } @Override + @TargetApi(ApiHelper.VERSION_CODES.HONEYCOMB) protected void onCreate(Bundle savedState) { super.onCreate(savedState); + // The behavior is changed in JB, refer to b/6384492 for more details + boolean tediousBack = Build.VERSION.SDK_INT >= ApiHelper.VERSION_CODES.JELLY_BEAN; Uri uri = getIntent().getData(); Intent intent; if (isValidDataUri(uri)) { intent = new Intent(Intent.ACTION_VIEW, uri); - intent.putExtra(PhotoPage.KEY_TREAT_BACK_AS_UP, true); + if (tediousBack) { + intent.putExtra(PhotoPage.KEY_TREAT_BACK_AS_UP, true); + } } else { Toast.makeText(this, R.string.no_such_item, Toast.LENGTH_LONG).show(); intent = new Intent(this, Gallery.class); } - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | - Intent.FLAG_ACTIVITY_TASK_ON_HOME); + if (tediousBack) { + intent.setFlags( + Intent.FLAG_ACTIVITY_NEW_TASK | + Intent.FLAG_ACTIVITY_CLEAR_TASK | + Intent.FLAG_ACTIVITY_TASK_ON_HOME); + } startActivity(intent); finish(); } |