summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYuli Huang <yuli@google.com>2012-05-23 16:06:32 +0800
committerYuli Huang <yuli@google.com>2012-05-23 16:09:47 +0800
commite11a51883b91f5fd439c99562e85ff4374d61467 (patch)
tree9bdebba07d05e1634da611fb9c576c487ae4694b /src
parent883920dce45c1794a8aa6a696563df1bbafeaf45 (diff)
downloadandroid_packages_apps_Snap-e11a51883b91f5fd439c99562e85ff4374d61467.tar.gz
android_packages_apps_Snap-e11a51883b91f5fd439c99562e85ff4374d61467.tar.bz2
android_packages_apps_Snap-e11a51883b91f5fd439c99562e85ff4374d61467.zip
Back should progress through Gallery and return Home for widget intents.
bug:6384492 Change-Id: I7ffb824568e400ff5724a29c1908c34a1e10235c
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/app/Gallery.java3
-rw-r--r--src/com/android/gallery3d/app/PhotoPage.java9
-rw-r--r--src/com/android/gallery3d/gadget/WidgetClickHandler.java14
3 files changed, 21 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/app/Gallery.java b/src/com/android/gallery3d/app/Gallery.java
index dd30d7e98..bdd4a0bc7 100644
--- a/src/com/android/gallery3d/app/Gallery.java
+++ b/src/com/android/gallery3d/app/Gallery.java
@@ -198,6 +198,9 @@ public final class Gallery extends AbstractGalleryActivity implements OnCancelLi
data.putString(PhotoPage.KEY_MEDIA_SET_PATH, albumPath.toString());
}
data.putString(PhotoPage.KEY_MEDIA_ITEM_PATH, itemPath.toString());
+ if (intent.getBooleanExtra(PhotoPage.KEY_TREAT_BACK_AS_UP, false)) {
+ data.putBoolean(PhotoPage.KEY_TREAT_BACK_AS_UP, true);
+ }
// Displays the filename as title, reading the filename from the interface:
// {@link android.provider.OpenableColumns#DISPLAY_NAME}.
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index 2132d068e..36ccc6741 100644
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -91,6 +91,7 @@ public class PhotoPage extends ActivityState implements
public static final String KEY_INDEX_HINT = "index-hint";
public static final String KEY_OPEN_ANIMATION_RECT = "open-animation-rect";
public static final String KEY_APP_BRIDGE = "app-bridge";
+ public static final String KEY_TREAT_BACK_AS_UP = "treat-back-as-up";
public static final String KEY_RETURN_INDEX_HINT = "return-index-hint";
@@ -127,6 +128,7 @@ public class PhotoPage extends ActivityState implements
private SnailAlbum mScreenNailSet;
private OrientationManager mOrientationManager;
private boolean mHasActivityResult;
+ private boolean mTreatBackAsUp;
private NfcAdapter mNfcAdapter;
@@ -180,6 +182,7 @@ public class PhotoPage extends ActivityState implements
mOriginalSetPathString = mSetPathString;
mNfcAdapter = NfcAdapter.getDefaultAdapter(mActivity.getAndroidContext());
Path itemPath = Path.fromString(data.getString(KEY_MEDIA_ITEM_PATH));
+ mTreatBackAsUp = data.getBoolean(KEY_TREAT_BACK_AS_UP, false);
if (mSetPathString != null) {
mAppBridge = (AppBridge) data.getParcelable(KEY_APP_BRIDGE);
@@ -439,7 +442,11 @@ public class PhotoPage extends ActivityState implements
} else if (mAppBridge == null || !switchWithCaptureAnimation(-1)) {
// We are leaving this page. Set the result now.
setResult();
- super.onBackPressed();
+ if (mTreatBackAsUp) {
+ onUpPressed();
+ } else {
+ super.onBackPressed();
+ }
}
}
diff --git a/src/com/android/gallery3d/gadget/WidgetClickHandler.java b/src/com/android/gallery3d/gadget/WidgetClickHandler.java
index 36575e412..35f9bec36 100644
--- a/src/com/android/gallery3d/gadget/WidgetClickHandler.java
+++ b/src/com/android/gallery3d/gadget/WidgetClickHandler.java
@@ -26,6 +26,7 @@ import android.widget.Toast;
import com.android.gallery3d.R;
import com.android.gallery3d.app.Gallery;
+import com.android.gallery3d.app.PhotoPage;
public class WidgetClickHandler extends Activity {
private static final String TAG = "PhotoAppWidgetClickHandler";
@@ -46,14 +47,19 @@ public class WidgetClickHandler extends Activity {
@Override
protected void onCreate(Bundle savedState) {
super.onCreate(savedState);
- Intent intent = getIntent();
- if (isValidDataUri(intent.getData())) {
- startActivity(new Intent(Intent.ACTION_VIEW, intent.getData()));
+ 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);
} else {
Toast.makeText(this,
R.string.no_such_item, Toast.LENGTH_LONG).show();
- startActivity(new Intent(this, Gallery.class));
+ intent = new Intent(this, Gallery.class);
}
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK |
+ Intent.FLAG_ACTIVITY_TASK_ON_HOME);
+ startActivity(intent);
finish();
}
}