2 new revisions:
Revision: 7e774d082767
Author: rjmatthews62
Date: Sat Jun 2 00:28:01 2012
Log: fullShow now without flicker.
http://code.google.com/p/android-scripting/source/detail?r=7e774d082767
Revision: 332f4ccf3d59
Author: rjmatthews62
Date: Sun Jun 3 20:45:39 2012
Log: Fix to issue 631
http://code.google.com/p/android-scripting/source/detail?r=332f4ccf3d59
==============================================================================
Revision: 7e774d082767
Author: rjmatthews62
Date: Sat Jun 2 00:28:01 2012
Log: fullShow now without flicker.
http://code.google.com/p/android-scripting/source/detail?r=7e774d082767
Modified:
/android/Common/src/com/googlecode/android_scripting/facade/ui/FullScreenTask.java
/android/Common/src/com/googlecode/android_scripting/facade/ui/UiFacade.java
/android/Common/src/com/googlecode/android_scripting/facade/ui/ViewInflater.java
/android/ScriptForAndroidTemplate/libs/script.jar
/android/ScriptingLayerForAndroid/AndroidManifest.xml
/android/script_for_android_template.zip
=======================================
---
/android/Common/src/com/googlecode/android_scripting/facade/ui/FullScreenTask.java
Sun Apr 29 18:55:54 2012
+++
/android/Common/src/com/googlecode/android_scripting/facade/ui/FullScreenTask.java
Sat Jun 2 00:28:01 2012
@@ -167,6 +167,24 @@
public void onClick(View view) {
mEventFacade.postEvent("click", mInflater.getViewInfo(view));
}
+
+ public void loadLayout(String layout) {
+ ViewInflater inflater = new ViewInflater();
+ View view;
+ StringReader sr = new StringReader(layout);
+ try {
+ XmlPullParser xml = ViewInflater.getXml(sr);
+ view = inflater.inflate(getActivity(), xml);
+ mView = view;
+ mInflater = inflater;
+ getActivity().setContentView(mView);
+ mInflater.setClickListener(mView, this, this);
+ mLayout = layout;
+ mView.invalidate();
+ } catch (Exception e) {
+ mInflater.getErrors().add(e.toString());
+ }
+ }
private class SetProperty implements Runnable {
View mView;
@@ -206,6 +224,21 @@
mInflater.setListAdapter(mView, mItems);
}
}
+
+ private class SetLayout implements Runnable {
+ String mLayout;
+ CountDownLatch mLatch = new CountDownLatch(1);
+
+ SetLayout(String layout) {
+ mLayout = layout;
+ }
+
+ @Override
+ public void run() {
+ loadLayout(mLayout);
+ mLatch.countDown();
+ }
+ }
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
@@ -234,5 +267,16 @@
public void setOverrideKeys(List<Integer> overrideKeys) {
mOverrideKeys = overrideKeys;
}
+
+ // Used to hot-switch screens.
+ public void setLayout(String layout) {
+ SetLayout p = new SetLayout(layout);
+ mHandler.post(p);
+ try {
+ p.mLatch.await();
+ } catch (InterruptedException e) {
+ mInflater.getErrors().add(e.toString());
+ }
+ }
}
=======================================
---
/android/Common/src/com/googlecode/android_scripting/facade/ui/UiFacade.java
Sun Apr 29 19:26:02 2012
+++
/android/Common/src/com/googlecode/android_scripting/facade/ui/UiFacade.java
Sat Jun 2 00:28:01 2012
@@ -552,14 +552,16 @@
@RpcParameter(name = "layout", description = "String containing View
layout") String layout)
throws InterruptedException {
if (mFullScreenTask != null) {
- fullDismiss();
- }
- mFullScreenTask = new FullScreenTask(layout);
- mFullScreenTask.setEventFacade(mEventFacade);
- mFullScreenTask.setUiFacade(this);
- mFullScreenTask.setOverrideKeys(mOverrideKeys);
- mTaskQueue.execute(mFullScreenTask);
- mFullScreenTask.getShowLatch().await();
+ // fullDismiss();
+ mFullScreenTask.setLayout(layout);
+ } else {
+ mFullScreenTask = new FullScreenTask(layout);
+ mFullScreenTask.setEventFacade(mEventFacade);
+ mFullScreenTask.setUiFacade(this);
+ mFullScreenTask.setOverrideKeys(mOverrideKeys);
+ mTaskQueue.execute(mFullScreenTask);
+ mFullScreenTask.getShowLatch().await();
+ }
return mFullScreenTask.mInflater.getErrors();
}
=======================================
---
/android/Common/src/com/googlecode/android_scripting/facade/ui/ViewInflater.java
Thu Apr 12 05:56:17 2012
+++
/android/Common/src/com/googlecode/android_scripting/facade/ui/ViewInflater.java
Sat Jun 2 00:28:01 2012
@@ -997,4 +997,10 @@
mErrors.add("failed to load list " + e.getMessage());
}
}
-}
+
+ public void clearAll() {
+ getErrors().clear();
+ mIdList.clear();
+ mNextSeq = BASESEQ;
+ }
+}
=======================================
--- /android/ScriptForAndroidTemplate/libs/script.jar Fri May 25 20:03:47
2012
+++ /android/ScriptForAndroidTemplate/libs/script.jar Sat Jun 2 00:28:01
2012
Binary file, no diff available.
=======================================
--- /android/ScriptingLayerForAndroid/AndroidManifest.xml Sun Apr 29
18:55:54 2012
+++ /android/ScriptingLayerForAndroid/AndroidManifest.xml Sat Jun 2
00:28:01 2012
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="
http://schemas.android.com/apk/res/android"
package="com.googlecode.android_scripting" android:installLocation="auto"
- android:versionCode="518" android:versionName="5x18">
+ android:versionCode="519" android:versionName="5x19">
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission
android:name="net.dinglisch.android.tasker.PERMISSION_RUN_TASKS" />
<uses-permission
android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
=======================================
--- /android/script_for_android_template.zip Fri May 25 20:03:47 2012
+++ /android/script_for_android_template.zip Sat Jun 2 00:28:01 2012
File is too large to display a diff.
==============================================================================
Revision: 332f4ccf3d59
Author: rjmatthews62
Date: Sun Jun 3 20:45:39 2012
Log: Fix to issue 631
http://code.google.com/p/android-scripting/source/detail?r=332f4ccf3d59
Modified:
/android/Common/src/com/googlecode/android_scripting/facade/ui/FullScreenTask.java
=======================================
---
/android/Common/src/com/googlecode/android_scripting/facade/ui/FullScreenTask.java
Sat Jun 2 00:28:01 2012
+++
/android/Common/src/com/googlecode/android_scripting/facade/ui/FullScreenTask.java
Sun Jun 3 20:45:39 2012
@@ -215,13 +215,13 @@
SetList(View view, JSONArray items) {
mView = view;
mItems = items;
- mView.invalidate();
mLatch.countDown();
}
@Override
public void run() {
mInflater.setListAdapter(mView, mItems);
+ mView.invalidate();
}
}