Webview question: Is it possible to execute Javascript from Java synchronously?

by Mattaku Betsujin » Tue, 07 Apr 2009 04:44:04 GMT


Sponsored Links
 This doesn't make any sense, though. If you're inside in.read(), you should
be sleeping, waiting for the network transfer to complete. So the WebKit
thread *should* have some time to process your loadUrl() requests .....









--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. New maps app features and mapview

Will new map app features be available in mapview as well?
I'd really love to see rotation in it.

Thanks

       Federico


-- 

2. already created always-on-top-of-all-windows view, how to add touch functionality?

Hi All! I'm trying to create an always-op-top button/clickable-image
which stays on top of all the windows all the time. The proof of
concept is here 
http://www.appbrain.com/app/smart-taskbar-%28sidebar%29/com.smart.taskbar
and here http://forum.xda-developers.com/showthread.php?t=865525 I'm
following this example code
http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=services/java/com/android/server/LoadAverageService.java;h=0d86429aaa5ccf6ecf311dfb3af0f3ccbf5f8d29;hb=HEAD

I have been successful and have a running service now. The service
displays some text on top left corner of screen all the time while
user can freely interact with rest of apps in normal manner. What I'm
doing is subclass ViewGroup and add it to root window manager with
flag TYPE_SYSTEM_OVERLAY. Now I want to add a button/clickable-image
in place of this text which can receive touch events on itself. I
tried overriding "onTouchEvent" for the whole ViewGroup but it does
not receive any event. How can I receive events only on certain parts
of my always-on-top view group? Kindly suggest.

======
CODE=
======

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.os.IBinder;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class HUD extends Service {
        HUDView mView;

        @Override
        public IBinder onBind(Intent intent) {
                return null;
        }

        @Override
        public void onCreate() {
                super.onCreate();
                Toast.makeText(getBaseContext(),"onCreate",
Toast.LENGTH_LONG).show();
                mView = new HUDView(this);
                WindowManager.LayoutParams params = new 
WindowManager.LayoutParams(
                                WindowManager.LayoutParams.WRAP_CONTENT,
                                WindowManager.LayoutParams.WRAP_CONTENT,
                                WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
                                0,
//                              WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
//                                              | 
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
                                PixelFormat.TRANSLUCENT);
                params.gravity = Gravity.RIGHT | Gravity.TOP;
                params.setTitle("Load Average");
                WindowManager wm = (WindowManager) 
getSystemService(WINDOW_SERVICE);
                wm.addView(mView, params);
        }

        @Override
        public void onDestroy() {
                super.onDestroy();
                Toast.makeText(getBaseContext(),"onDestroy",
Toast.LENGTH_LONG).show();
                if(mView != null)
                {
                        ((WindowManager)
getSystemService(WINDOW_SERVICE)).removeView(mView);
                        mView = null;
                }
        }
}

class HUDView extends ViewGroup {
        private Paint mLoadPaint;

        public HUDView(Context context) {
                super(context);
                Toast.makeText(getContext(),"HUDView", 
Toast.LENGTH_LONG).show();

                mLoadPaint = new Paint();
                mLoadPaint.setAntiAlias(true);
                mLoadPaint.setTextSize(10);
                mLoadPaint.setARGB(255, 255, 0, 0);
        }

        @Override
        protected void onDraw(Canvas canvas) {
                super.onDraw(canvas);
                canvas.drawText("Hello World", 5, 15, mLoadPaint);
        }

        @Override
        protected void onLayout(boolean arg0, int arg1, int arg2, int arg3,
int arg4) {
        }

        @Override
        public boolean onTouchEvent(MotionEvent event) {
                //return super.onTouchEvent(event);
                Toast.makeText(getContext(),"onTouchEvent",
Toast.LENGTH_LONG).show();
                return true;
        }
}

-- 

3. google analytics jar and notifying my app users

4. 4000 Character Description Limit!?

5. binder error during boot

6. ListView Selected

7. List of phone names?