[android-developers] Digest for android-developers@googlegroups.com - 10 Messages in 5 Topics

Comments: (0)

Group: http://groups.google.com/group/android-developers/topics

    "Ralph Bergmann | the4thFloor.eu" <ralph@the4thfloor.eu> Aug 31 01:44AM +0200  

    I am trying to add nested child Fragments into a parent Fragment.
     
    All works fine but....
     
    At first my code:
     
    public class FragmentDatasheetWithHeader extends Fragment {
     
     
    private long mRowId;
    private String mSid;
     
     
    @Override
    public View onCreateView(final LayoutInflater inflater, final
    ViewGroup container, final Bundle savedInstanceState) {
     
    final ScrollView scrollView = new ScrollView(getActivity());
    final LinearLayout linearLayout = new LinearLayout(getActivity());
    linearLayout.setId(4711);
    linearLayout.setOrientation(LinearLayout.VERTICAL);
     
    scrollView.addView(linearLayout);
     
    createUI();
     
    return scrollView;
    }
     
    private void createUI() {
     
    final FragmentProductDetailHeader fragmentHeader =
    FragmentProductDetailHeader.newInstance(this.mRowId,
    FragmentProductDetailHeader.HEADERTYPE_SMALL);
    final FragmentDatasheet fragmentDatasheet =
    FragmentDatasheet.newInstance(this.mRowId, this.mSid);
     
    final FragmentManager fragmentManager = getChildFragmentManager();
    fragmentManager.beginTransaction().add(4711, fragmentHeader,
    "fragmentHeader").commit();
    fragmentManager.beginTransaction().add(4711, fragmentDatasheet,
    "fragmentDatasheet").commit();
    }
    }
     
    Now my problem:
     
    In the Developer options I activated "Don't keep activities (Destroy
    every activity as soon the user leaves it)"
     
    When the activity with the FragmentDatasheetWithHeader is open and the
    app goes into background and comes back to foreground the nested
    Fragments are doubled. But it only appears if the container for the
    nested Fragments is a LinearLayout. If the container is a FrameLayout
    the nested Fragments are not doubled.
     
    What's going wrong?
     
     
    Ralph

     

    TreKing <trekingapp@gmail.com> Aug 30 07:02PM -0500  

    On Fri, Aug 30, 2013 at 6:44 PM, Ralph Bergmann | the4thFloor.eu <
    > nested Fragments is a LinearLayout. If the container is a FrameLayout
    > the nested Fragments are not doubled.
     
    > What's going wrong?
     
    1 - Debug your app and gather more information.
    2 - Use the logging utility at your disposal to spew out information about
    what your app is doing.
    3 - Use the info from (1) and (2) above to determine whether your app is,
    in fact, is going through the creation of this fragment twice.
     
    The frame layout may have two items in it, you just may not be able to tell
    that there are two since they would overlap. In a LinearLayout, it would be
    obvious.
     
    -------------------------------------------------------------------------------------------------
    TreKing <http://sites.google.com/site/rezmobileapps/treking> - Chicago
    transit tracking app for Android-powered devices

     

    "Ralph Bergmann | the4thFloor.eu" <ralph@the4thfloor.eu> Aug 31 02:51AM +0200  

    Am 31.08.13 02:02, schrieb TreKing:
    > 1 - Debug your app and gather more information.
     
    I debugged it. The createUI() method is called once.
     
     
     
    Ralph

     

    Ash <anangia@gmail.com> Aug 30 04:06AM -0700  

    Hi All,
     
    I have a mobile phone from Runbo (
    http://www.runboruggedphones.com/shop/buy-runbo-x5-ip67-rugged-waterproof-smartphone.html
    ).
     
    It has a 3 additional buttons which I have not seen on normal Android
    phones. These are PTT, SOS and ET.
     
    I was able to detect the SOS and ET button using the following functions:
    public void onKeyUp(...)
    and
    public void onKeyDown(...)
     
    The keycode values for SOS and ET were very high in the range. ET was set
    to 300 and SOS was 301. But that does not matter as long as I can detect
    them.
     
    However I am not able to detect the PTT button press.
     
    Has anyone got any ideas on how to detect when the PTT button is pressed?
     
    Any advice or help will be much appreciated.
     
    Thanks
    Ash

     

    Jadranko Bodiroga <jadrankobodiroga1985@gmail.com> Aug 30 03:00PM +0200  

    something like this maybe: if (event.getKeyCode() == KeyEvent.KEYCODE_POWER
    ) {}
     
     
     

     

    Jadranko Bodiroga <jadrankobodiroga1985@gmail.com> Aug 30 03:01PM +0200  

    add permission : <uses-permission android:name=
    "android.permission.PREVENT_POWER_KEY" />
     
     
    On Fri, Aug 30, 2013 at 3:00 PM, Jadranko Bodiroga <

     

    Ash <anangia@gmail.com> Aug 30 02:53PM -0700  

    The code you have given is to detect the Power button. I want to detect the
    PTT (push-to-talk) button.
     
    On Friday, 30 August 2013 23:01:01 UTC+10, baturanija1 wrote:

     

    Emanuel Moecklin <1gravityllc@gmail.com> Aug 30 02:51PM -0700  

    See my answer here with a complete example:
    http://stackoverflow.com/a/18541955/534471
     
    On Thursday, March 24, 2011 5:11:48 AM UTC-4, asher wrote:

     

    Jadranko Bodiroga <jadrankobodiroga1985@gmail.com> Aug 30 03:06PM +0200  

    maybe try add something like this : super.setRequestedOrientation(
    ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) ...then you force it to show in
    portal/Landscape...
     
     
    On Fri, Aug 30, 2013 at 4:58 AM, Sadhna Upadhyay

     

    ankit the OPIUM <ankitgoyal1009@gmail.com> Aug 30 04:40AM -0700  

    My customers are complaining that my app is not working properly in New
    Nexus 7(2013). I want to test it in that but device is not available for
    sale in India. So when I tried to create emulator for the given
    configuration it is not booting at all. I have tried on Windows XP and 7
    both with latest SDK 20.0.5
    I have created new device with following configuration.
    1200*1920
    xhdpi (also tried with hdpi and xxhdpi also)
     
    Am I missing something?

     

--
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+unsubscribe@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 unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

[android-developers] Digest for android-developers@googlegroups.com - 7 Messages in 6 Topics

Comments: (0)

Group: http://groups.google.com/group/android-developers/topics

    Sadhna Upadhyay <sadhna.braahmam@gmail.com> Aug 30 08:28AM +0530  

    Hi guys,
    i am recording video and playing it but the problem is that it is
    not playing in portrait mode tough it is recording in portrait but when i
    play video it play in landscape only please help me if any one have any
    idea about it.
     
     
     
     
     
    Thanks
    sadhna

     

    EhyehAsherEhyeh <jacobsen.arild@gmail.com> Aug 29 06:11AM -0700  

    Thank you! I was baffled, now I'm just frustrated that the Android team
    didn't just write that in the documentation for the IntentService
    constructor. (I imagine they felt "Invoked by your subclass's constructor."
    more than adequately explained it... :p)
     
    On Friday, 8 May 2009 20:07:46 UTC+2, John Seghers wrote:

     

    EhyehAsherEhyeh <jacobsen.arild@gmail.com> Aug 29 06:12AM -0700  

    Thank you! I was baffled, now I'm just frustrated that the Android team
    didn't just write that in the documentation for the IntentService
    constructor. (I imagine they felt "Invoked by your subclass's constructor."
    more than adequately explained it... :p)

     

    arsalank2 <arsalank2@gmail.com> Aug 29 03:13AM -0700  

    Does RotationVector sensor internally use magnetic sensor to determine the
    final values? If yes, does it account for Earth's Geomagnetic field?
     
    There two methods in SensorManager to determine rotation, i.e,
    SensorManager.getRotationMatrixFromVector and
    SensorManager.getRotationMatrix. Does any of these methods compensates for
    Earth's Geomagnetic field? If yes, which method is more accurate. If not,
    how can Geomagnetic field be compensated? Can it be simply adjusted by
    subtracting the offset in input magnetic sensor values to
    getRotationMatrix? How can it be done with Rotation Vector sensor?

     

    Mukesh Srivastav <mukichamps@gmail.com> Aug 29 12:27PM +0530  

    You do one thing, copy the output text and validate it in the below link,
    that will tell you the exact problem, with the exception i see, it looks
    like it is issue with the JSON output.
     
    http://jsonlint.com/
     
     
     
    --
    Warm Regards,
    *Mukesh Kumar*,
    Android Consultant/Freelancer,
    India,Hyderabad.

     

--
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+unsubscribe@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 unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

[android-developers] Digest for android-developers@googlegroups.com - 6 Messages in 4 Topics

Comments: (0)

Group: http://groups.google.com/group/android-developers/topics

    Seshu <s.seshu143@gmail.com> Aug 28 10:25AM -0700  

    Hi developers,
    I am doing project on maps in which i need to get the current
    location. if both network provider and gps provider disabled means then i
    am opening the locations in setting menu and then user ll select either any
    one and after selecting any one option i need to get the current location.
    now my app was minimized and then changed the network provider and now
    opened my application again and then i need to check which network provider
    available based on the condition i ll updated the location. i used dynamic
    broadcast receivers in my activity class but i am not unable to fetch the
    data. if any one knows then plz provide solutions and links etc.,
     
     
    Thanks and Regards,
    S.Seshu.

     

    kj <scweeden@gmail.com> Aug 28 04:37AM -0700  

    Putting images in drawable folders based on screen resolution is a bad
    idea, do not do this. Make the proper images and place them into the
    standard density folders: drawable-hdpi, drawable-mdpi, etc. See the icon
    design guidelines for sizing info:
    https://developer.android.com/design/style/iconography.html
     
    On Tuesday, August 27, 2013 12:34:30 AM UTC-4, Amit Mangal wrote:

     

    Harish <hkachoria@gmail.com> Aug 28 07:52AM -0700  

    >> does't work always that's what we face and now every thing working as we
    >> want.
     
    > However in future If I find a better solution with standard folder then
    perfect.

     

    Sumedh Jiwane <sumedh02@gmail.com> Aug 28 03:13PM +0530  

    Nothing is much clear from the description of your problem. I am suspecting
    that you are facing the UI issue.
    Are you calling logout function in main thread/ui thread? If so replace it
    with worker thread. Alternatively you can start a service using
    AlarmManager.
     
     
     

     

--
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+unsubscribe@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 unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

[android-developers] Digest for android-developers@googlegroups.com - 20 Messages in 9 Topics

Comments: (0)

Group: http://groups.google.com/group/android-developers/topics

    Shubham Aggarwal <shubham.1992aggarwal@gmail.com> Aug 27 10:19AM -0700  

    Hi,
    I am creating an application which uses an example source code provided in
    Google Android Documentation licensed under apache license 2.0
    Is it legal to directly copy one or more of the files from that source code
    in my application (to be published on market)
     
    Thanks
    Shubham

     

    TreKing <trekingapp@gmail.com> Aug 27 07:29PM -0500  

    On Tue, Aug 27, 2013 at 12:19 PM, Shubham Aggarwal <
    > Google Android Documentation licensed under apache license 2.0
    > Is it legal to directly copy one or more of the files from that source
    > code in my application (to be published on market)
     
    Have you considered reading the terms of the Apache License?
     
    -------------------------------------------------------------------------------------------------
    TreKing <http://sites.google.com/site/rezmobileapps/treking> - Chicago
    transit tracking app for Android-powered devices

     

    brianl <lichtenw@gmail.com> Aug 27 04:51PM -0700  

    Also, tried...
     
    mView.announceForAccessibility("Hello World");
     
     
     
    On Tuesday, August 27, 2013 4:46:07 PM UTC-7, brianl wrote:

     

    brianl <lichtenw@gmail.com> Aug 27 04:46PM -0700  

    Instead of using TTS to voice an utterance I'm wondering if this will do
    the job...

    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH)
    {
    AccessibilityEvent event =
    AccessibilityEvent.obtain(AccessibilityEvent.TYPE_ANNOUNCEMENT);
    AccessibilityRecord record = AccessibilityRecord.obtain();
    record.setContentDescription("Hello World");
    event.appendRecord(record);
    mView.sendAccessibilityEventUnchecked(event);
    }
     
    Tried this on a Nexus 4.1.2 with Accessibility TalkBack enabled and 'Hello
    World' was NOT spoken.

     

    Lai Vung <haibison@gmail.com> Aug 27 02:45PM -0700  

    Thanks Jon.
     
    It works very well for me. You saved me a day. Thank you.
     
    Hai
     
    On Sunday, December 7, 2008 2:56:10 PM UTC+7, Jon Colverson wrote:

     

    Keith Wiley <kbwiley@gmail.com> Aug 27 09:13AM -0700  

    I admit I haven't logged into my developer console in a few days, but when
    I did this morning I saw a message that there are new guidelines to agree
    to and that existing apps not in compliance might be removed 30 days hence
    (less than 30 since I missed a few days). Part of the new agreement says
    the following [my emphasis in red]:
     
     
    - *In-app purchases:*
    -
    - *Developers offering virtual goods* or currencies* within a game
    downloaded from Google Play must use Google Play's in-app billing
    service <http://developer.android.com/google/play/billing/index.html>as the method of payment.
    *
    - Developers offering additional content, services or functionality
    within another category of app downloaded from Google Play must use Google
    Play's in-app billing service<http://developer.android.com/google/play/billing/index.html>as the method of payment, except:
    - where payment is primarily for physical goods or services (e.g.
    buying movie tickets, or buying a publication where the price also includes
    a hard copy subscription); or
    - where payment is for digital content or goods that may be
    consumed outside of the application itself (e.g. buying songs that can be
    played on other music players).

    One approach to interpreting this would be to try to nit-pick it apart (to
    debate the meaning of "*virtual good*" for instance, but another approach
    is to simply ask the larger question: Can we no longer use MobFox or any
    other non-Google in-app payment system (in a game, perhaps other apps, but
    not in a game for whatever reason)? I have a game on Google Play that
    uses in-app purchases to sell various "upgrades" or "additional
    capabilities" (sort of extra-life like things) within the game. Is Google
    going to remove my app three weeks from now if I don't complete gut all the
    MobFox payments from it or am I misunderstanding these new guidelines?
     
    ...or, alternatively, does "*virtual good*" refer to something very
    specific, not just app upgrades but actual "pretend items" of some nebulous
    definition (like magic swords or stuff like that, which my game doesn't
    have anything like anyway), such that the *mere presence of MobFox* in an
    app won't necessarily be grounds for summary removal by Google.
     
    I'm quite confused about this.
     
    Thanks.

     

    John Coryat <coryat@gmail.com> Aug 27 10:23AM -0700  

    Caution: IANAL
     
    I believe you were already in violation of Google's terms when you opted to
    use a payer system outside of Google Wallet. The new terms just clarify it.
    To me, it removes all doubt that you can get away with bypassing the Google
    Play terms.
     
    There shouldn't be any doubt as to what this says. You're fooling yourself
    if you think this is an idle threat from Google. They most likely have an
    automatic system in place that is going to purge any app that isn't in
    compliance after the deadline.
     
    -John Coryat

     

    Keith Wiley <kbwiley@gmail.com> Aug 27 10:41AM -0700  

    Fair enough. Thanks for the info. That leaves me rather confused though.
    What is the point of third party systems like MobFox? How do they work?
    Is their entire business model predicated on hoping confused developers
    such as myself will accidentally violate the Google TOS? That strikes me
    as somewhat unbelievable.

     

    Kristopher Micinski <krismicinski@gmail.com> Aug 27 01:51PM -0400  

    I think they're a vestigal holdover from when in app billing didn't exist
    and these things weren't really enforced, but you can feel free to email
    them if you'd like clarification.
     
    Kris
     
     

     

    Keith Wiley <kbwiley@gmail.com> Aug 27 10:52AM -0700  

    WAIT. Oh man am I confused. I'm sorry. I use MobFox for my in-app ads
    (as opposed to whatever ad system Google supports, AdMob I believe), but my
    in-app purchases are processed using Google. Yeesh!
     
    In fact, IIRC, I coded up both MobFox and AdMob ads and can switch to use
    either, both, or neither of those ad systems, but I don't think I ever
    turned the AdMob option on, only MobFox.
     
    Anyway, this whole discussion is something of a red herring now. Sorry.

     

    Keith Wiley <kbwiley@gmail.com> Aug 27 11:21AM -0700  

    Like I said in an earlier response, I was confusing in-app ads and in-app
    purchases. This entire thread (my original question) is essentially
    invalid. Please disregard. Sorry.

     

    Nuno Silva <little.coding.fox@gmail.com> Aug 27 09:13AM -0700  

    I'm using Google Play Services for cloud sync in a game, and have already
    spent several hours trying to figure out this bug, but I have absolutely no
    luck figuring it out.
     
    I googled everywhere, but this specific error doesn't appear to anyone
    else, and I tried all the other solutions to similar problems without
    success, so I'm hoping I'll get luck and someone will know how to solve
    this.
     
    What confuses me is, this worked at least once, originally even using a
    wrong app key! After I logged in for the first time, I am now unable to
    login any more, and get an "Unknown Error" message box.
     
    I've verified that I call the mHelper methods for onActivityResult since I
    overload it, and followed all the instructions I could find for setting up
    everything.
     
    Any help would be appreciated!
     
    Relevant Logcat:
     
    08-27 16:48:20.082 I/ejk ( 1690): I/O exception
    (javax.net.ssl.SSLException) caught when processing request: Write error:
    ssl=0x5fbf10: I/O error during system call, Broken pipe
     
    08-27 16:48:20.082 I/ejk ( 1690): Retrying request
     
    08-27 16:48:20.343 D/dalvikvm( 1690): GC_CONCURRENT freed 749K, 49% free
    4217K/8263K, external 1596K/2108K, paused 3ms+3ms
     
    08-27 16:48:20.757 E/Volley ( 1690): [24] je.a: Unexpected response code
    403 for https://www.googleapis.com/games/v1/players/me
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): Access Not Configured
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): avk
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): at
    aqq.a(SourceFile:126)
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): at
    ahd.a(SourceFile:228)
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): at
    ahd.a(SourceFile:209)
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): at
    agl.a(SourceFile:489)
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): at
    axu.a(SourceFile:202)
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): at
    com.google.android.gms.games.service.GamesSignInIntentService.onHandleIntent(SourceFile:324)
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): at
    android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): at
    android.os.Handler.dispatchMessage(Handler.java:99)
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): at
    android.os.Looper.loop(Looper.java:130)
     
    08-27 16:48:20.820 E/SignInIntentService( 1690): at
    android.os.HandlerThread.run(HandlerThread.java:60)
     
    08-27 16:48:20.820 E/LoadSelfFragment( 3660): Unable to sign in -
    application does not have a registered client ID
     
    08-27 16:48:20.828 D/CcUtils Google Services GameHelper( 3627):
    onActivityResult, req 9001 response 10004
     
    08-27 16:48:20.828 D/CcUtils Google Services GameHelper( 3627):
    responseCode != RESULT_OK, so not reconnecting.
     
    08-27 16:48:20.828 D/CcUtils Google Services GameHelper( 3627): giveUp:
    giving up on connection. Status code: 4
     
    08-27 16:48:20.828 D/CcUtils Google Services GameHelper( 3627): Making
    error dialog for error: 4
     
    08-27 16:48:20.867 D/CcUtils Google Services GameHelper( 3627):
    onActivityResult, req 9001 response 10004
     
    08-27 16:48:20.871 D/CcUtils Google Services GameHelper( 3627):
    responseCode != RESULT_OK, so not reconnecting.
     
    08-27 16:48:20.871 D/CcUtils Google Services GameHelper( 3627): giveUp:
    giving up on connection. Status code: 4
     
    08-27 16:48:20.871 D/CcUtils Google Services GameHelper( 3627): Making
    error dialog for error: 4
     
    Relevant Android Manifest bits:
     
    <meta-data android:name="com.google.android.gms.games.APP_ID"

     

    akash khandare <akashsapana@gmail.com> Aug 27 09:24PM +0530  


    > In a testing program I'm playing with currently, I want to use
    setFormat() to adapt the pixel format of my surface to the chosen EGL
    config before I pass the surface holder to eglCreateWindowSurface().
     
    > Now, I call EGL from my render thread and I know
    SurfaceHolder.setFormat() is documented to have to be "called from the same
    thread running the SurfaceView's window", which I take to be the main
    thread. To comply, I wrap my setFormat() call in a Runnable which I pass
    to runOnUiThread() and wait() until it's actually executed.
     
    > This works perfectly on some devices, however it gives me intermittent
    failures on Optimus One (with Android 2.2) - on program start-up, three
    times out of four the screen is just black. Even if start-up goes right,
    the first configuration change makes the screen go black. The program
    still runs and no GL or EGL calls signal any errors.
     
    > Here's the weirdest part - if I omit the runOnUiThread() stuff and simply
    call setFormat() from my render thread, it fixes the problem and the
    program runs 100% solid on Optimus no matter much beating I give it -
    randomly pressing Home and Back while rotating the device wildly, putting
    it to sleep and waking it back up, the renderer always handles the native
    window changes correctly and renders just fine.
    > 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 unsubscribe from this group and stop receiving emails from it, send an
    email to android-developers+unsubscribe@googlegroups.com.

     

    RLScott <fixthatpiano@yahoo.com> Aug 27 06:10AM -0700  

    Is there anything wrong with this way of trigger an action in an Activity
    from a local Service? It seems too easy. But all the examples I have seen
    of accomplishing the same end use a more complicated Messenger method.
    Anyway, here is what I do:
     
    In my activity, I start and bind to a local Service (BTService) from
    onResume:
     
    Intent intent = new Intent(this, BTService.class);
    bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
    startService(intent);
     
    The "mConnection" referenced above is defined by:
     
    /** Defines callbacks for service binding, passed to bindService() **/
    private ServiceConnection mConnection = new ServiceConnection() {
     
    @Override
    public void onServiceConnected(ComponentName className,
    IBinder service) {
    // We've bound to LocalService, cast the IBinder and get BTService
    instance
    MyBtServiceBinder binder = (MyBtServiceBinder) service;
    btserv = binder.getService(); //..Activity's reference to the
    Service
    btserv.main = Main.this; //..Service's reference to the
    binding Activity
    }
     
    @Override
    public void onServiceDisconnected(ComponentName arg0) {
    if(btserv != null)
    {
    btserv.main = null; //..Break the Service's reference to the
    Activity
    btserv = null; //..Break the Activity's reference to the
    Service
    }
    }
    };
     
    In my Activity's onPause I disconnect from the Service as follows:
     
    if (btserv!=null) {
    btserv.main = null; //..Break the Service's reference to the
    Activity
    btserv = null; //..Break the Activity's reference to the
    Service
    unbindService(mConnection);
    }
     
    So when the Service wants to trigger an event in the Activity, it does this:
     
    if(main != null)
    {
    main.handler.post(main.doHandleEvent);
    }
     
    Where "main" is the reference to my Activity that was set by the Activity
    in "onServiceConnected", and "handler" is a Handler in my Activity that
    handles posts to the Runnable, "doHandleEvent". Then in short order, the
    doHandleEvent in my Activity will run. And that is how I trigger an event
    in the Activity from my Service. Of course there are many assumptions in
    this approach. For example, only one client should connect to my Service,
    since it only holds a single reference to the client. And the triggering
    shown above is from the UI thread, not from a worker thread. That gets
    around the race condition where "main" is not null at the "if" statement,
    but becomes null by the time the thread gets into the referencing of
    handler and doHandleEvent. I have tested this method in a Bluetooth
    application and everything seems to be working fine. But I want to know if
    there is some "gotcha" that I have not seen.
     
    Robert Scott
    Hopkins, MN

     

    Amit Mangal <forum.amit.mangal@gmail.com> Aug 27 12:24PM +0530  

    any idea guys ?
     
     
    On Tue, Aug 27, 2013 at 10:50 AM, Amit Mangal

     

    Sumedh Jiwane <sumedh02@gmail.com> Aug 27 01:36PM +0530  

    Try refreshing the folders, clean and rebuild.
     
     
     
    On Tue, Aug 27, 2013 at 12:24 PM, Amit Mangal

     

    Harish <hkachoria@gmail.com> Aug 27 01:32AM -0700  


    > Ideally no setting is require, how you know dpi of your screen ? some time
    > even big screen are treated as mdpi based on the dpi setting on device
    > (which is not editable unless rooted).
     
     
    First you check dpi of device, try some helper app like
    https://play.google.com/store/apps/details?id=com.sturnus.screeninfo
     
    Normally for big screen( 7 and 10 inch) device I created separate
    folder drawable-sw600dp and drawable-sw720dp and it works for bigger screen
    with good dpi.

     

    Amit Mangal <forum.amit.mangal@gmail.com> Aug 27 03:44PM +0530  

    is there any way my app should support all screen sizes withouth stretching
    images ?
     
    i am having ldpi hdpi mdpi xhdpi xxhdpi
     
    images .
     
     

     

    Harish <hkachoria@gmail.com> Aug 27 04:24AM -0700  

    I face lot of issue on my app which is supported for Tablet as well as on
    phone device and I had entirely different screens and layout for tablets.
     
    It was nightmare working with china tablets which come with very different
    dpi even though all are 7inch tablets.
     
    and After testing on many tablets and phone I put images with following
    sizes and as of now it's working on most of devices without issue,
     
    - hdpi - 48*48
    - mdpi- 48*48
    - sw600dp - 72*72
    - sw720dp - 96*96
    - xhdpi- 72*72
    - xxhdpi - 96*96
    - ldpi- 24*24
     
    pls let me know if you find better solution.

     

--
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+unsubscribe@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 unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

[android-developers] Digest for android-developers@googlegroups.com - 10 Messages in 6 Topics

Comments: (0)

Group: http://groups.google.com/group/android-developers/topics

    Amit Mangal <forum.amit.mangal@gmail.com> Aug 27 10:04AM +0530  

    Hi there,
    i have created a xml file using wrap content and relative layout. i am
    having images for all resolution.
     
    i create drawable folders for all images and kept all images in folders but
    when i am running project it is not working big screen only working on mdpi
    screens not working for hdpi screen.
     
    any body knows what settings is required so that it will pick correct
    images from folder.
     
    thanks

     

    TreKing <trekingapp@gmail.com> Aug 27 12:12AM -0500  

    On Mon, Aug 26, 2013 at 11:34 PM, Amit Mangal
     
    > i create drawable folders for all images and kept all images in folders
     
     
    What folders?
     
    -------------------------------------------------------------------------------------------------
    TreKing <http://sites.google.com/site/rezmobileapps/treking> - Chicago
    transit tracking app for Android-powered devices

     

    Amit Mangal <forum.amit.mangal@gmail.com> Aug 27 10:50AM +0530  

    drawable-hdpi
    drawable-ldpi
    drawable-mdpi
    drawable-xhdpi
    drawable-xxhdpi
     
    All images kept in proper folders but still it is not picking proper images
    as per screen resolution
     
    thanks
     
     
     
     

     

    Anthony Mandra <amandra@gmail.com> Aug 26 09:35PM -0700  

    It's been a while, but I just started experiencing very sluggish
    responsivity from Android Studio. Typing will sometimes take a few second
    to appear and the mouse will be unresponsive after edits for a few seconds.
    Did you ever figure out what your issue was?
     
    On Friday, May 17, 2013 6:20:06 AM UTC+9, Tone wrote:

     

    Mike Yeh <drogon43@gmail.com> Aug 26 06:53PM -0700  

    Dear Kowalski,

    Thanks for your sharing.

    On my testing I use ProcessExproler to watch out the memory usage. I do
    both testing on two cases -- one is use host GPU one is not.
    Under use host GPU case, The memory is kept on raising but this phenomenon
    doesn't happen in not use host GPU case.
    It seems it's not the Android application problem.

    Best Regards,
    MIKE

     
    kowalski於 2013年8月15日星期四UTC+8下午8時40分23秒寫道:
     

     

    TG <tirtha.guha@gmail.com> Aug 26 07:16AM -0700  

    I am using a Samsung Galaxy S Plus Phone running on Android 2.3.4
     
    I manually set the proxy server and the port in the phone, in Settings->
    Wireless & Network-> Wi-Fi Settings-> MENU Button-> Advanced panel.
     
    My phone is still not able to communicate using the proxy. I tried the
    browser, and that is not able make use of the proxy settings.
     
    public static InputStream inputStreamForUrl(URL url) throws IOException {
     
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); // doesn't work on android 2.3.4
    urlConnection.setRequestMethod("GET");
    urlConnection.setDoInput(true);
    urlConnection.setConnectTimeout(30000);
    urlConnection.setReadTimeout(30000);
    System.out.println(urlConnection.usingProxy());
    urlConnection.connect();
    return urlConnection.getInputStream();}
     
    However, If I manually hardcode the proxy in the code, it works
     
    Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy.server.url", 8080));// this needs to be hard coded to make it work in 2.3HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(proxy);// this needs to be hard coded to make it work in 2.3
     
    I tried to dynamically find out the system proxy and then use it in code,
     
    private static void getProxySettings()
    {
    final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= 14;
     
    String proxyAddress = "";
    int proxyPort = 0;
     
    if( IS_ICS_OR_LATER )
    {
    proxyAddress = System.getProperty( "http.proxyHost" );
     
    String portStr = System.getProperty( "http.proxyPort" );
    proxyPort = Integer.parseInt( ( portStr != null ? portStr : "-1" ) );
    }
    else
    {
    proxyAddress = android.net.Proxy.getHost( ctx );
    proxyPort = android.net.Proxy.getPort( ctx );
    }
     
     
     
    System.out.println(proxyAddress);
    System.out.println(proxyPort);
    }
     
    but the proxy address and port is null always.
     
    Can someone help please
     
    *PS.* I absolutely no problem on Android 4.1/4.2/4.3 devices

     

    Robert Greenwalt <rgreenwalt@google.com> Aug 26 04:26PM -0700  

    This flavor of proxy support in Android didn't appear until Honeycomb
    (3.1). Prior to that there was the Proxy class in the framework that
    reported a network-independent "global proxy".
     
     

     

    dashman <erjdriver@gmail.com> Aug 26 05:56AM -0700  

    in my view class, i'm intercepting
     
    public boolean onTouchEvent(MotionEvent event)
     
     
    when i drag my finger across the screen.
     
    i get ACTION_DOWN and then after some time ACTION_CANCEL.
     
     
    i would like to get ACTION_DOWN...ACTION_MOVE and then
    eventually ACTION_UP.

     

    lunard <lunard@gmail.com> Aug 25 11:15PM -0700  

    Hello, my name is Luca from Italy.
    After 3 year I returned to develop on Android and now I have to decide
    which environment to use.
     
    I'm excited to use Android Studio, but the problem is that I learn on the
    Commonsware book, where all examples are implemented with Eclipse.
     
    Someone is working on Android Studio?
    Do you know if is possible too run Eclipse and Android Studio at the same
    time (problem with abd, etc?)
     
     
    Thanks, Luca!

     

--
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+unsubscribe@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 unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

[android-developers] Digest for android-developers@googlegroups.com - 4 Messages in 4 Topics

Comments: (0)

Group: http://groups.google.com/group/android-developers/topics

    Dhaval Sodha Parmar <dhaval0122@gmail.com> Aug 25 10:14PM -0700  

    I want Vertical seekBar like below image *(for android 4.O+))*. its in Google
    Play Music<https://play.google.com/store/apps/details?id=com.google.android.music>
    App.
     
    [image: enter image description here]
     
    i have tried below way: *but i can't set hight & width*
     
    <SeekBar
    android:id="@+id/seekBar1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:rotation="270"
    />
     
    i want like below:
     
    [image: enter image description here]
     
    right now i have used this Stack Answer<http://stackoverflow.com/a/8893285/1168654> but
    its too hard to manage multiple vertical seekbar.
     
    i am looking for better way than this.

     

    Ricardo Cardoso <rick.duk@gmail.com> Aug 25 11:03PM -0300  

    I have the following return my webservice created in ruby on rails
     
    {"created_at":"2013-08-24T02:45:13Z","datebirth":null,"email":"email@gmail.com","firstname":"Ricardo","gender":null,"id":11,"lastname":null,"modelphone":null,"password":null,"password_confirmation":null,"picture":null,"token":"98e58617a9beb77c71de20b3545550e4","typeos":null,"updated_at":"2013-08-25T20:45:25Z"}
     
    This return I'm typing the curl in the console like this:
     
    curl -v -H 'Content-Type: application/json' -H 'Accept:
    application/json' -X POST http://localhost:3000/api/v1/sessions.json
    -d "{\"user\":{\"email\":\"email@gmail.com\",\"password\":\"secret1234\"}}"
     
    and I also have the same return on Android!
     
    I'm using AndroidAnnotations and created the code that calls the webservice
     
    @Background
     
    void login(UserWrapper userWrapper){
     
    try {
     
    //Acessa o webservice através de rest passando o objeto UserWrapper
    que tem o Objeto User
     
    JsonObject json = userRestClient.login(userWrapper);
     
    Gson gson = new Gson();
     
    userWrapper = gson.fromJson(json, UserWrapper.class);
     
    sucessLogin(userWrapper);
     
    } catch (RestClientException e) {
     
    errorLogin();
     
    }
     
    }
     
     
    But I am getting the following error
     
    08-24 18:34:19.420: E/LoginActivity_(11373):
    com.google.gson.JsonSyntaxException: java.lang.IllegalStateException:
    Expected BEGIN_OBJECT but was STRING
     
    My class is as follows restclient
     
     
    @Rest(rootUrl="http://192.168.1.100:3000",
    converters={GsonHttpMessageConverter.class})
    @Accept(MediaType.APPLICATION_JSON) public interface UserRestClient {
     
    @Post("/api/v1/registrations")
     
    UserWrapper addUser(UserWrapper user);
     
    @Post("/api/v1/sessions.json")
     
    JsonObject login(UserWrapper user);
     
    @Get("/users/{id}.json")
     
    JsonObject edit(int id);
     
    @Put("/users/{id}")
     
    void update(User user, int id);
     
    @Post("/user")
     
    void recoverPassWordUser(String email);
     
     
    I know that the return is a String from my server, but I need to get a
    JSONObject. I also know I need to use a parse, so I made the following way
    by changing my code
     
     
    String json = userRestClient.login(userWrapper);
     
    JsonParser parser = new JsonParser();
     
    JsonObject jsonObject = parser.parse(json).getAsJsonObject();
     
    Gson gson = new Gson();
     
    userWrapper = gson.fromJson(jsonObject, UserWrapper.class);
     
    sucessLogin(userWrapper);
     
     
    But I get the error the following error:
     
     
    08-25 18:31:17.945: E/LoginActivity_(13266):
    org.springframework.http.converter.HttpMessageNotReadableException:
    Could not read JSON: java.lang.IllegalStateException: Expected a
    string but was BEGIN_OBJECT at line 1 column 2; nested exception is
    com.google.gson.JsonSyntaxException: java.lang.IllegalStateException:
    Expected a string but was BEGIN_OBJECT at line 1 column 2
     
    When I change to receive a JSONObject error says that is a String, when I
    change a String to receive the error says that is a JSONObject.
     
    Help-me

     

    "Fábio cunha" <psxbrasil@gmail.com> Aug 25 07:25AM -0700  

    Hi,
    The new Google Play privacy policy will begin to remove apps from Google
    Play that use push ads.
    Because of that I'll need to change the way that I generate revenue from
    Google Play.
     
    I pretend to use two ads types in my games and I want to know if Google
    pretend to banish this type of apps, or something because they are not good
    for android users experience.
     
    The first ad type:
    The first ad type that I want to use in my apps is the ads by reward, the
    user can go to an specific screen, in this screen if the user download a
    game, the user receive some benefit for the game.
     
    The second ad type:
    The second ad is a poll ad, user is incentivized to respond a poll, when
    the poll is completed, the user receive a reward for the game.
     
    The use of these both ads in Google Play are allowed? There's any privacy
    policy that not allow this type of ad?

     

    Hand Green <cooperateonline@gmail.com> Aug 25 07:40PM +0800  

    Thank you.
     
     
    2013/8/24 TreKing <trekingapp@gmail.com>
     

     

--
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+unsubscribe@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 unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

[android-developers] Digest for android-developers@googlegroups.com - 14 Messages in 8 Topics

Comments: (0)

Group: http://groups.google.com/group/android-developers/topics

    William Reed <wreed58@gmail.com> Aug 24 12:14PM -0700  

    Hey guys I was going through the android dev guidelines and came upon this
    awesome list looking thing that would be awesome to have in my app
     
    <http://i.stack.imgur.com/oLZ5V.png>
     
    You can see the list on the left phone with the little picture and then the
    three lines of text. That is exactly what I am looking for although I
    really do not know how to go about making this so any help provided would
    be awesome.

     

    Kostya Vasilyev <kmansoft@gmail.com> Aug 25 01:32AM +0400  

    Last I checked (using Developer Options, "show view boundaries"), Gmail was
    not using Android layouts for items inside a message item view. It's one
    Android view per message list item, the internals are handled internally.
     
    Now back to your original question: consider RelativeLayout:
     
    http://developer.android.com/reference/android/widget/RelativeLayout.html
     
    -- K
     
     
    2013/8/25 William Reed <wreed58@gmail.com>
     

     

    OronS <oron.subayi@gmail.com> Aug 24 03:19AM -0700  

    Little search showed that ACTION_CANCEL is the right value to get from the
    system, but the (X,Y) values on this event are not proportional to the
    gesture I made :S
    Y values are way bigger than expected
    I did expand the HitRect size, but it's still too big
     
    On Friday, August 23, 2013 10:24:03 PM UTC+3, OronS wrote:

     

    Nobu Games <dev.nobu.games@gmail.com> Aug 24 10:14AM -0700  

    You could still try the approach I described by getting rawX and rawY from
    the motion event and match it with the global rect position of the target
    view. Motion event coordinates are usually in a local coordinate system. I
    guess the local coordinate system is the one of the ImageView you start
    your gesture with, hence the too big numbers when you get your
    ACTION_CANCEL on the other view.
     
    On Saturday, August 24, 2013 5:19:04 AM UTC-5, OronS wrote:

     

    OronS <oron.subayi@gmail.com> Aug 24 11:19AM -0700  

    I did a combination..
    I've created a subclass of GestureOverlayView as you have suggested, and
    then the approach with dispatchTouchEvent(MotionEvent)<http://developer.android.com/reference/android/view/ViewGroup.html#dispatchTouchEvent%28android.view.MotionEvent%29>didn't work.
     
    One problem was the big numbers, and the second one was that important
    callbacks like *OnGesturePerformedListener* that used for gesture
    recognition at the end of the user's motion, were not called at
    all...probably because of the Gesture\Touch system, which intercepts one
    another :)
     
    The final result was that the subclass also implemented *OnGestureListener*which has 4 methods:
    @Override
    public void onGesture(GestureOverlayView overlay, MotionEvent event)
     
    @Override
    public void onGestureCancelled(GestureOverlayView overlay, MotionEvent
    event)
     
    @Override
    public void onGestureEnded(GestureOverlayView overlay, MotionEvent
    event)
     
    @Override
    public void onGestureStarted(GestureOverlayView overlay, MotionEvent
    event)
     
    Then I could control the beginning and the ending of the gesture, and *
    OnGesturePerformedListener* did called, and performed it's actions from the
    main activity
     
    Quite a shame that there are no documentations to the Gesture\Touch system
     
    On Saturday, August 24, 2013 8:14:53 PM UTC+3, Nobu Games wrote:

     

    oscar barenys <rtfss1@gmail.com> Aug 24 10:47AM -0700  

    Hi seems new Android 4.3 supports OGL ES 3.0 and new NDK also.. does
    android emulator from sdk support native ES 3.0 assuming a recent GPU and
    drivers on host (say OpenGL 4.3 drivers)..
    if not it's coming soon?

     

    Jose_GD <jose.gonzalez.d@gmail.com> Aug 24 07:59AM -0700  

    What I've done in one of my apps is to take advantage of a Google Drive
    presentation I did for my client showing all the app's features, and put
    them in the form of PNG files inside an ImageSwitcher. This ImageSwitcher
    lives inside a DialogFragment shown upon selecting "Help" from the
    ActionBar.
     
    Hope this helps.
     
    José
    https://play.google.com/store/apps/details?id=com.josegd.monthcalwidget
     
    El miércoles, 21 de agosto de 2013 20:09:14 UTC-3, Nathan escribió:

     

    Jose_GD <jose.gonzalez.d@gmail.com> Aug 24 07:46AM -0700  

    I use about.me but not for showing a portfolio. But you can of course, why
    not.
     
    Right now I show my work on LinkedIn, in my case with a link to my app on
    Play and with a Google Drive presentation with screeshots of an app I made
    for a client (in PDF form).
     
     
     
    El viernes, 23 de agosto de 2013 09:10:48 UTC-3, Lucas Diego escribió:

     

    Romain Guy <romainguy@android.com> Aug 24 01:28AM -0700  

    Here is what the documentation says: "The current implementation
    necessitates that the reused bitmap be mutable and of the same size as the
    source content."
     
    Make sure the bitmap you are reusing is mutable.
     
     
     
    --
    Romain Guy
    Android framework engineer
    romainguy@android.com

     

    danik <danikula@gmail.com> Aug 24 04:52AM -0700  

    Bitmap is mutable, because I decode it with option inMutable=true. Bitmaps
    have same size, because I decode the same file. But your answer forces me
    to read docs more carefully and I realize my fail! The docs says:
    The source content must be in* jpeg or png* format (whether as a resource
    or as a stream)
    OMG! My images have GIF format.
     
    By the way thanks!
     
    суббота, 24 августа 2013 г., 11:28:33 UTC+3 пользователь Romain Guy
    (Google) написал:

     

    MobileVisuals <eyvind@astralvisuals.com> Aug 24 01:36AM -0700  

    I have some music visualizer apps. They have internal players, where the
    music visualization still works. The apps also use the sound for external
    players, like Spotify and Winamp. The apps could visualize the sound from
    these before, but it does not work on Jelly bean.
     
     
    I have played music with external players, while debugging the apps. The
    bytes in the updateVisualizerFFT method of OnDataCaptureListener are always
    0 for external players, when a visualizer is created with 0 as an argument:
     
    new Visualizer(0);
     
    Creating a Visualizer with 0 as an argument means that the visualizer will
    be attached to the MediaPlayer or AudioTrack in the same audio session:
     
    http://developer.android.com/reference/android/media/audiofx/Visualizer.html#Visualizer(int)
     
     
    The bytes in the updateVisualizerFFT method are 0 and this results in no
    visualization, since there is no signal to use for visualization. No error
    message or any other information that I can use is generated from logCat.
     
    On Friday, August 23, 2013 5:55:03 PM UTC+2, MobileVisuals wrote:

     

    catafest <catalinfest@gmail.com> Aug 24 01:08AM -0700  

    I use a simple pygame script from here:
    http://pygame-catalin.blogspot.ro/2013/08/pygame-first-interface-part-4.html
    .
    When I want to make a screenshot using android-studio of this game.
    This is the error show by Android-Studio in log:
     
    08-15 15:16:24.530 2628-2647/? E/: void __egl_platform_dequeue_buffer(egl_surface*):1080 [EGL-ERROR] failed to dequeue buffer from native window (0x19cf18); err = -19, buf = 0x008-15 15:16:24.540 116-116/? E/SurfaceTexture: [SurfaceView] dequeueBuffer: SurfaceTexture has been abandoned!08-15 15:16:24.540 2628-2647/? E/: void __egl_platform_dequeue_buffer(egl_surface*):1080 [EGL-ERROR] failed to dequeue buffer from native window (0x19cf18); err = -19, buf = 0x008-15 15:16:24.540 116-130/? E/SurfaceTexture: [SurfaceView] dequeueBuffer: SurfaceTexture has been abandoned!08-15 15:16:24.540 2628-2647/? E/: void __egl_platform_dequeue_buffer(egl_surface*):1080 [EGL-ERROR] failed to dequeue buffer from native window (0x19cf18); err = -19, buf = 0x008-15 15:16:24.540 116-136/? E/SurfaceTexture: [SurfaceView] dequeueBuffer: SurfaceTexture has been abandoned!08-15 15:16:24.540 2628-2647/? E/: void __egl_platform_dequeue_buffer(egl_surface*):1080 [EGL-ERROR] failed to dequeue buffer from native window (0x19cf18); err = -19, buf = 0x008-15 15:16:24.550 116-2307/? E/SurfaceTexture: [SurfaceView] dequeueBuffer: SurfaceTexture has been abandoned!
     
    Any idea about this error?

     

--
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+unsubscribe@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 unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.