[android-beginners] I can't figure out how to link one projects files to another with eclipse. Please Help!
I transferred my development from Windows to Mac. I have the latest version of Eclipse, and the 1.5 r2 SDK. I have successfully ran a sample Hello world app to make sure it all fits together properly. I then imported my library projects (called MyLib) that holds many reusable classes of mine. I also imported some projects that depend on the MyLib package. When I open my projects, Eclipse asks me if I want to open dependent projects as well, and I select yes. The MyLib project folder opens up as it should, and I see the folder in my project as well with the small link arrow on it. When I look in my project properties - project references, the MyLib folder is checked. When I run my project, it outputs in the debugger (LogCat): (in yellow) dalvikvm failed resolving 'Lcom/mycompany/myapp/Splash; interface 22 'Lcom/mycompany/MyLib/MyClass$MyClassCallback;' dalvikvm Link of class 'Lcom/mycompany/myapp/Splash;' failed (where MyClass.MyClassCallback is a required interface to one of my library classes) (some other stuff...) (in red) java.lang.RunTimeException:unable to instantiate activity ComponentInfo (com.mycompany.myapp/ com.mycompany.myapp.Splash):java.lang.ClassNotFoundException:com.mycompany.myapp.Splash in loader dalvik... Any ideas as to what I'm doing wrong? Did I fail to link my library properly? I've changed many build path properties back and forth trying to get it to work, but nothing seems to make a difference. Please help! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: Very Basic question regarding Activities
Could you give a more detailed example - I too would like to see how an array (of ints, for example) can be accessed in activity 2 from activity one. As it is now, I'm loading that data every time I start a new activity - and it's quite slow! Thanks On Feb 14, 7:32 pm, Ganesan V ganesan.v...@gmail.com wrote: U can use Indent class of MyActivity from MyActivity2. Ganesh. On Sat, Feb 14, 2009 at 2:05 AM, Alex55 aroch...@gmail.com wrote: Hello guys, I have a very basic question regarding Activities in Android. Can I share data types a cross Activities in Android? Let's say I have 2 activities, MyActivity.java and MyActivity2.java. I have declared some Strings and Arrays on MyActivity that I would like to access from MyActivity2, is this possible? If so, how can I accomplish this? I know its a very basic question, but believe it or not I've had a hard time figuring this one out! Many thanks for your prompt response, Alex --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: doing something useful in splash
I think the splash screen can be shown (or not shown) using a boolean flag in the method: onNewIntent(Context context) Although I won't be able to test until I get home. :) The problem for me is passing data between the intents. I can pass primitives via bundles, and load data from files for new intents/ activities, but how to just pass a reference to a user defined data type? is that not allowed? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: doing something useful in splash
ok, thanks. i'll work on it tonight --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: Beer Radar Tutorial
It would also be nice to see different icons on the radar map. For example: A bottle indicates a store where beer can be purchased (and maybe a mixed drink glass for liqueur stores). A glass indicates a pub - a place where you can actually sit down and drink. Also, a small font (text view) under each image identifies each place as well, e.g., 'pub', 'discotheque' or 'pool hall'. These might just be user-selectable options in the menu. :) On Feb 9, 7:10 pm, madcoder paperga...@gmail.com wrote: I want it...NOW On Feb 9, 2:00 am, Strawp ikwall...@gmail.com wrote: On Feb 8, 5:10 pm, android-noob iceal.thaddeus@gmail.com wrote: Hi, I created a tutorial that maps the user's GPS location with BEER locations :) http://www.androidph.com http://www.androidph.com/2009/02/app-10-beer-radar.html -ice Excellent! This is one of those apps that fills a need I didn't realise I had ;) You need to sort out the formatting on your blog text though, e.g. preserve whitespace on source code snippets and use real unordered lists as bullet points instead of putting dashes in. As it is it's pretty flat and just makes it hard to read. +1 RSS subscription from me though. Are you going to turn that app into a real service? Iain --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: Beer Radar Tutorial
I want it...NOW On Feb 9, 2:00 am, Strawp ikwall...@gmail.com wrote: On Feb 8, 5:10 pm, android-noob iceal.thaddeus@gmail.com wrote: Hi, I created a tutorial that maps the user's GPS location with BEER locations :) http://www.androidph.com http://www.androidph.com/2009/02/app-10-beer-radar.html -ice Excellent! This is one of those apps that fills a need I didn't realise I had ;) You need to sort out the formatting on your blog text though, e.g. preserve whitespace on source code snippets and use real unordered lists as bullet points instead of putting dashes in. As it is it's pretty flat and just makes it hard to read. +1 RSS subscription from me though. Are you going to turn that app into a real service? Iain --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] doing something useful in splash
I want to initialize and load some data from a single user defined data class while the splash screen is being shown. Then I want to launch the main Activity, which will have access to this data. What's the best way to go about this? Do I create an activity that doesn't show itself, have it display the splash screen while another thread initializes the data, then show the main activity? Do I initialize the data in the splash activity itself, then somehow pass that data to the next activity? Or some other way? The data I want to load will delay the showing of the main activity just enough to be a distraction. I would like to overcome this. Thanks --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: Why I cannot see my email send to the group?
I don't know, I can't see it either. On Feb 2, 4:06 pm, Jerry jer...@intertrust.com wrote: Why? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: R.java file is not getting updated
LinearLayout android:orientation=vertical android:layout_width=fill_parent android:layout_height=fill_parent android:layout_gravity=left android:background=@drawable/ background Button id=@+id/startgame android:layout_width=fill_parent android:layout_height=wrap_content android:text=New Match android:layout_gravity=left/ Button id=@+id/resumegame android:layout_width=fill_parent android:layout_height=wrap_content android:text=Resume Match android:layout_gravity=left/ Button android:id=@+id/demonstration android:layout_width=fill_parent android:layout_height=wrap_content android:text=Demo Match android:layout_gravity=left/ Button android:id=@+id/instructions android:layout_width=fill_parent android:layout_height=wrap_content android:text=Instructions android:layout_gravity=left/ /LinearLayout Try to add android: To the First two button id's. Are you getting any red squiggly lines anywhere in the xml file? Are you sure that 'background' has been imported properly into your project? On Feb 2, 2:17 pm, Ashwani Rao project.d...@gmail.com wrote: Hi, Please find the attached xml file. I am using eclipse and tried to build the project through eclipes only. Thanks and Regrads, Ashwani On 2/1/09, Kevin J. Brooks bear123434...@comcast.net wrote: This fixed my problem. Try building your project. On Fri, 2009-01-30 at 07:57 -0500, Mark Murphy wrote: Ashwani Rao wrote: HI, I have created xml file for UI. I later added identifiers (@+/id) to few elements but the R.java file is not getting updated. There are many possible causes for this. Can you post the layout XML file? main.xml 1KViewDownload --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: Total noob
Before you try to start coding I recommend learning the basics of the IDE with the incredible and FREE tutorials here: http://eclipsetutorial.sourceforge.net/index.html There are four tutorials: Using the Eclipse Workbench Eclipse and Java for Total Beginners Introducing Persistence Using the Debugger I suggest you follow them in that order. Even though you may know Java, I think following the 'Total Beginners tutorial is well worth learning how to do some nice trick with the editor. If you complete the tutorials, you will likely save MUCH more time when developing, than trying to dive right in without a solid foundation on how to use the editor. I followed them all when I was first learning android, and the IDE is a snap for me now. when you are finished with the tutorials, you can look here for more info on integrating JUnit tests with android: http://dtmilano.blogspot.com/2008/11/android-testing-on-android-platf.html Hope this helps --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: String[]
His syntax is good, Eclipse is just saying that the variable is not used. Indeed. Use 'array' somewhere in your app, and the error will go away. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: R.java file dont update
Right-click the raw folder, then select 'import'. From there, expand the 'general' file, select 'file system'. Then click the 'next' button. Click the 'browse' button, then locate the folder containing the files you want to import. Select that folder, and your files should appear on the right pane. Then select the files you want to import, and press 'finish'. R should update automatically. If it doesn't, you most likely have an error in your projects files, and you need to correct them for R to be able to update. An example of this would be referencing a resource in an xml file or code that doesn't exist. Even though you may have just imported it, it won't be recognized until the error is fixed. In the case of the previous example, you could just comment out the code and allow it to update the R file, then de-comment it. Hope this helps --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: Common functionality between activities
Sweet, I'm modding a program tonight because of this concept! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] spinner blues
I have tried putting a spinner in an app, both from books and several online tutorials, and it keeps locking up. It seems like my emulator doesn't like when I set the adapter the the array list. I even made a test project just to try the spinner itself, but to no avail. I'm doing the same code that others say work, but it doesn't for me. Any ideas? Here's the main XML: ?xml version=1.0 encoding=utf-8? LinearLayout xmlns:android=http://schemas.android.com/apk/res/ android android:orientation=vertical android:layout_width=fill_parent android:layout_height=fill_parent TextView android:id=@+id/test_result android:layout_width=fill_parent android:layout_height=wrap_content android:text=@string/hello / Spinner android:id=@+id/spin android:layout_width=fill_parent android:layout_height=wrap_content android:drawSelectorOnTop=true / /LinearLayout ...the code: import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class SpinTest extends Activity { TextView testResult; private ListString allUnits; Spinner spin; ArrayAdapter String adapter; private String[] units = { Carrier, Battle ship, Cruiser, Destroyer, Frigate, Submarine, Boomer }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); testResult = (TextView)findViewById(R.id.test_result); Log.d(onCreate, testResult id found); spin =(Spinner)findViewById(R.id.spin); Log.d(onCreate, spinner id found); allUnits = new ArrayListString(); for(String s: units ){ allUnits.add(s); } Log.d(onCreate, arraylist created); adapter = new ArrayAdapter String (this, android.R.layout.simple_spinner_item, allUnits); Log.d(onCreate,new adapter made); adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item); Log.d(onCreate, adapter layout set); spin.setAdapter(adapter); Log.d(onCreate, spinner adapter set); setContentView(R.layout.main); } } ...and finally, the last portion of the log: 01-09 12:17:15.376: WARN/ActivityThread(176): Application com.mylib.SpinTest is waiting for the debugger on port 8100... 01-09 12:17:15.384: INFO/System.out(176): Sending WAIT chunk 01-09 12:17:15.427: INFO/dalvikvm(176): Debugger is active 01-09 12:17:15.585: INFO/System.out(176): Debugger has connected 01-09 12:17:15.605: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:15.804: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:16.004: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:16.237: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:16.454: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:16.495: DEBUG/dalvikvm(52): GC freed 3217 objects / 211888 bytes in 537ms 01-09 12:17:16.654: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:16.864: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:17.065: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:17.125: INFO/ActivityManager(52): Start proc com.android.alarmclock for broadcast com.android.alarmclock/.AlarmInitReceiver: pid=186 uid=1 gids={} 01-09 12:17:17.184: INFO/ActivityManager(52): processNextBroadcast: waiting for ProcessRecord{4348b1b8 186:com.android.alarmclock/1} 01-09 12:17:17.284: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:17.335: INFO/jdwp(186): received file descriptor 10 from ADB 01-09 12:17:17.424: DEBUG/PhoneApp(91): [CallNotifier] onMwiChanged(): false 01-09 12:17:17.444: DEBUG/PhoneApp(91): [CallNotifier] onCfiChanged(): false 01-09 12:17:17.485: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:17.684: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:17.704: WARN/StkAppInstaller(91): Could not change STK app state 01-09 12:17:17.754: INFO/ARMAssembler(52): generated scanline__0077:03515104__ [ 27 ipp] (41 ins) at [0x227f48:0x227fec] in 3006597 ns 01-09 12:17:17.764: DEBUG/TelephonyProvider(91): Setting numeric '310260' to be the current operator 01-09 12:17:17.894: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:17.974: INFO/ActivityThread(186): Publishing provider com.android.alarmclock: com.android.alarmclock.AlarmProvider 01-09 12:17:18.094: INFO/System.out(176): waiting for debugger to settle... 01-09 12:17:18.295: DEBUG/MobileDataStateTracker(52): CONNECTED event did
[android-beginners] Re: ImageView with large picture crashes on orientation change
Even though you are de-referencing the image view, there still may be a reference in the Activity itself. Try using this instead: iv = new ImageView(Context.getApplicationContext() ); I think you're creating a new image, while maintaining the reference to the old image(s) every time you change views. There is a good write up on this here: http://www.curious-creature.org/2008/12/18/avoid-memory-leaks-on-android/ Let me know if it helps. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: why doesn't this work? Simple question - I hope...
Yes, Mike, that makes a lot of sense. As a hobby programmer, I've only had to maintain my own code. :) Other calendar libraries, such as the ones from IBM, can be used - but they're not part of the standard Java SDK. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: sluggishness of G1 android
You can actually just hold down the power button, there's no need to hold both home and power buttons at the same time. This also gives you the option for silent mode so you don't have to go to settings to select it. Mike, good advice on identifying the leaking application. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: some android stuff i made
Is making products based on the Android design legal? It would be nice if it is, but is the logo design copyrighted/trademarked? Would be a shame for you to make a bunch of nice T-shirts, polo shirts, buttons, etc., and wind up not being allowed to sell them. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: why doesn't this work? Simple question - I hope...
Ah, I see. Now it makes sense. So why even bother with Calendar, then? I should just use the Gregorian Calendar. I read about the different Calendars available (from non-Sun companies, like IBM), but I didn't realize it was implemented in this way. I love OOP programming, but coming from an old Basic background, sometimes things slip by me. Well, maybe more than sometimes. :) Thanks! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] why doesn't this work? Simple question - I hope...
What's the difference between: Calendar c = new Calendar(); // doesn't work and Calendar c = Calendar.getInstance(); // does work Calendar is an abstract class, yet I can get an instance of it. I've used Java for a while now, but as an on/off hobby. Android has restarted my desire to code! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] I can set the button colors, but I can't change them!
I'm not looking for the easy solution (although that would be nice), but I will be more than happy with someone pointing me in the right direction so I can figure it out. I can set the button colors, but I can't change them. Well, I can, but not the way I would like to: using this line of code in onCreate: redButton.setBackgroundColor(Color.RED); sure enough, the button starts as red. Later, in another method in the same activity and thread, I try to change the color once again: redButton.setBackgroundColor(Color.BLACK); next, I tell it to draw again: redButton.invalidate(); finally I introduce a delay to let the UI update and allow the user to see the color change: long t = System.currentTimeMillis(); t = t + 100; while ( System.currentTimeMillis() t ) { ; } // crude, but I think it's effective I want the color of the button to return to the previous color automatically, so I do this next: redButton.setBackgroundColor(Color.RED); redButton.invalidate(); The delay happens, but the color change does not. Or does it, and I just don't see it (because it happens too fast)? When I remove the final two lines of code that change the color back to red, the button does turn black. So, I think this may have to do with threads, but I'm not sure. Any advice would be greatly appreciated. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: How to sign out of Gmail on G1 phone?
I agree, a user should be able to log out of gmail from the phone. An alternative way to read and reply to emails from other google accounts is to go to gmail settings, then accounts. From there you can add other email accounts, and be able to reply as if you were using that account. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: How to sign out of Gmail on G1 phone?
I agree, a user should be able to log out of gmail from the phone. An alternative way to read and reply to emails from other google accounts is to go to gmail settings, then accounts. From there you can add other email accounts, and be able to reply as if you were using that account. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---
[android-beginners] Re: new raw folder cannot be found by aapt tool
Sorry guys, I figured it out... I didn't realize the it was under import-general Thanks anyways! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Beginners group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~--~~~~--~~--~--~---