[android-developers] How to lock current orientation at runtime?

2011-07-16 Thread Brad
Hi,

I'm trying to lock my activity to the current orientation to prevent
an orientation change from restarting my activity while I'm waiting
for a http response.

So I'm trying to use this:

setRequestedOrientation(getResources().getConfiguration().orientation);

And it works fine for portrait (orientation == 1), but when the device
is in landscape it's getting a value of 2 which ==

ActivityInfo.SCREEN_ORIENTATION_USER

And this doesn't lock the screen.

Does anyone have any idea why I'm getting this instead of LANDSCAPE?
Any suggestions for a better way to lock the current orientation?

Thanks!

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en


Re: [android-developers] How to lock current orientation at runtime?

2011-07-16 Thread Kostya Vasilyev
Assuming you lock the orientation, how will you prevent the user from
sliding out the keyboard on those devices that have it? (For the duration of
your HTTP request.)

Less plausible, but possible as well, from changing the phone's configured
UI language?

--
Kostya Vasilyev
17.07.2011 2:41 пользователь Brad bradfull...@gmail.com написал:
 Hi,

 I'm trying to lock my activity to the current orientation to prevent
 an orientation change from restarting my activity while I'm waiting
 for a http response.

 So I'm trying to use this:

 setRequestedOrientation(getResources().getConfiguration().orientation);

 And it works fine for portrait (orientation == 1), but when the device
 is in landscape it's getting a value of 2 which ==

 ActivityInfo.SCREEN_ORIENTATION_USER

 And this doesn't lock the screen.

 Does anyone have any idea why I'm getting this instead of LANDSCAPE?
 Any suggestions for a better way to lock the current orientation?

 Thanks!

 --
 You received this message because you are subscribed to the Google
 Groups Android Developers group.
 To post to this group, send email to android-developers@googlegroups.com
 To unsubscribe from this group, send email to
 android-developers+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] How to lock current orientation at runtime?

2011-07-16 Thread Nick Risaro
If you add android:configChanges=orientation to your activity in the
manifest then the method onConfigurationChanged of your activity will be
called, here you can decide what to do with the change, but most important,
the activity will not be restarted.

You can check this
http://developer.android.com/guide/topics/resources/runtime-changes.htmlwhere
it's better explained.

2011/7/16 Kostya Vasilyev kmans...@gmail.com

 Assuming you lock the orientation, how will you prevent the user from
 sliding out the keyboard on those devices that have it? (For the duration of
 your HTTP request.)

 Less plausible, but possible as well, from changing the phone's configured
 UI language?

 --
 Kostya Vasilyev
 17.07.2011 2:41 пользователь Brad bradfull...@gmail.com написал:

  Hi,
 
  I'm trying to lock my activity to the current orientation to prevent
  an orientation change from restarting my activity while I'm waiting
  for a http response.
 
  So I'm trying to use this:
 
  setRequestedOrientation(getResources().getConfiguration().orientation);
 
  And it works fine for portrait (orientation == 1), but when the device
  is in landscape it's getting a value of 2 which ==
 
  ActivityInfo.SCREEN_ORIENTATION_USER
 
  And this doesn't lock the screen.
 
  Does anyone have any idea why I'm getting this instead of LANDSCAPE?
  Any suggestions for a better way to lock the current orientation?
 
  Thanks!
 
  --
  You received this message because you are subscribed to the Google
  Groups Android Developers group.
  To post to this group, send email to android-developers@googlegroups.com
  To unsubscribe from this group, send email to
  android-developers+unsubscr...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/android-developers?hl=en

 --
 You received this message because you are subscribed to the Google
 Groups Android Developers group.
 To post to this group, send email to android-developers@googlegroups.com
 To unsubscribe from this group, send email to
 android-developers+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/android-developers?hl=en


-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] How to lock current orientation at runtime?

2011-07-16 Thread Dianne Hackborn
Those are two different orientations.

The Configuration constants:
http://developer.android.com/reference/android/content/res/Configuration.html#ORIENTATION_LANDSCAPE

The constants for set/getRequestedOrientation():
http://developer.android.com/reference/android/content/pm/ActivityInfo.html#screenOrientation

Beyond that, I would strongly recommend not doing what you are trying to do.
 This would result in a UI flow that is very counter to what the user
expects -- that either an app is going to run in a particular orientation,
or allow them to rotate their screen as they would elsewhere.  Ending up
locked into whatever orientation they happened to launch the app in is just
not how things should work.

Besides which, there are all kinds of edge cases you'll never get right --
for example what happens if they press home to leave your app, rotate their
device, and then task switch back to your app?  Or as another poster
mention, if you lock the screen into portrait like this and they flip the
lid on their keyboard the orientation won't change to landscape, which is
not what they are going to want.

You really, really just need to code your activity correctly to be able to
destroy and re-create the activity.

On Sat, Jul 16, 2011 at 3:41 PM, Brad bradfull...@gmail.com wrote:

 Hi,

 I'm trying to lock my activity to the current orientation to prevent
 an orientation change from restarting my activity while I'm waiting
 for a http response.

 So I'm trying to use this:

 setRequestedOrientation(getResources().getConfiguration().orientation);

 And it works fine for portrait (orientation == 1), but when the device
 is in landscape it's getting a value of 2 which ==

 ActivityInfo.SCREEN_ORIENTATION_USER

 And this doesn't lock the screen.

 Does anyone have any idea why I'm getting this instead of LANDSCAPE?
 Any suggestions for a better way to lock the current orientation?

 Thanks!

 --
 You received this message because you are subscribed to the Google
 Groups Android Developers group.
 To post to this group, send email to android-developers@googlegroups.com
 To unsubscribe from this group, send email to
 android-developers+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/android-developers?hl=en




-- 
Dianne Hackborn
Android framework engineer
hack...@android.com

Note: please don't send private questions to me, as I don't have time to
provide private support, and so won't reply to such e-mails.  All such
questions should be posted on public forums, where I and others can see and
answer them.

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en