Merge branch 'gingerbread' into gingerbread-release

This commit is contained in:
The Android Automerger
2010-10-01 07:16:47 -07:00
22 changed files with 649 additions and 132 deletions

17
apps/Tag/Android.mk Normal file
View File

@@ -0,0 +1,17 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
# Only compile source java files in this apk.
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := TagApp
# LOCAL_PROGUARD_EABLED := disabled
# LOCAL_SDK_VERSION := current
include $(BUILD_PACKAGE)
# Use the following include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Declare the contents of this Android application. The namespace
attribute brings in the Android platform namespace, and the package
supplies a unique name for the application. When writing your
own application, the package name must be changed from "com.example.*"
to come from a domain that you own or have control over. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.apps.tag">
<application android:label="Tags">
<activity android:name="Tags">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="TagSelector"></activity>
<activity android:name="TagList"></activity>
</application>
</manifest>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use grey -->
<item android:drawable="@drawable/ic_tab_artists_grey"
android:state_selected="true" />
<!-- When not selected, use white-->
<item android:drawable="@drawable/ic_tab_artists_white" />
</selector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<EditText xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="18sp"
android:autoText="true"
android:capitalize="sentences"
android:text="@string/hello_activity_text_text" />

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" />
</LinearLayout>
</TabHost>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/help_info_menu_item"
android:icon="@android:drawable/ic_menu_help"
android:title="@string/help_and_info" />
</menu>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<string name="hello_activity_text_text">Hello, World!</string>
<string name="help_and_info">help and info</string>
<string name="saved">Saved</string>
</resources>

View File

@@ -0,0 +1,56 @@
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.apps.tag;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* @author nnk@google.com (Nick Kralevich)
*/
public class TagDBHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String TABLE_CREATE = "create table Tags ("
+ "_id INTEGER PRIMARY KEY ASC, "
+ "description TEXT, "
+ "date TEXT"
+ ")";
private static final String FAKE_DATA =
"INSERT INTO Tags (description) values ('hello world')";
private static final String FAKE_DATA2 =
"INSERT INTO Tags (description) values ('hi world')";
public TagDBHelper(Context context) {
super(context, "Tags.db", null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_CREATE);
db.execSQL(FAKE_DATA);
db.execSQL(FAKE_DATA2);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}

View File

@@ -0,0 +1,84 @@
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.apps.tag;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.provider.Contacts;
import android.view.Menu;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import com.trustedlogic.trustednfc.android.NfcManager;
/**
* @author nnk@google.com (Nick Kralevich)
*/
public class TagList extends ListActivity implements DialogInterface.OnClickListener {
private NfcManager mManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SQLiteDatabase db = new TagDBHelper(this.getBaseContext()).getReadableDatabase();
Cursor c = db.query("Tags", new String[] { "_id", "description" }, null, null, null, null, null);
SimpleCursorAdapter sca =
new SimpleCursorAdapter(this,
android.R.layout.two_line_list_item,
c,
new String[] { "description" },
new int[] { android.R.id.text1 });
setListAdapter(sca);
registerForContextMenu(getListView());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add("hello world");
return true;
}
@Override
protected Dialog onCreateDialog(int id, Bundle args) {
String[] stuff = new String[] { "a", "b" };
return new AlertDialog.Builder(this)
.setTitle("blah")
.setItems(stuff, this)
.setPositiveButton("Delete", null)
.setNegativeButton("Cancel", null)
.create();
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
showDialog(1);
super.onListItemClick(l, v, position, id);
}
@Override
public void onClick(DialogInterface dialog, int which) { }
}

View File

@@ -0,0 +1,64 @@
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.apps.tag;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
/**
* @author nnk@google.com (Nick Kralevich)
*/
public class TagListAdapter extends BaseAdapter {
private Context context;
TagListAdapter(Context context) {
this.context = context;
}
private static final String[] listItems = {
"Welcome! T2000 Festival",
"Free songs by Hula 88",
"Welcome to FreeBucks",
"BooBox Movie Coupons"
};
@Override
public int getCount() {
return listItems.length;
}
@Override
public String getItem(int position) {
return listItems[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = new TextView(context);
tv.setText(getItem(position));
return tv;
}
}

View File

@@ -0,0 +1,67 @@
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.apps.tag;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
/**
* A minimal "Hello, World!" application.
*/
public class TagSelector extends Activity {
private static final int DIALOG = 1;
private static final String[] elements = { "hello world" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final TextView tv = new TextView(this);
tv.setText("hello world");
tv.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
tv.setText("clicked!");
showAlert();
}
});
setContentView(tv);
// Set the layout for this activity. You can find it
// in res/layout/hello_activity.xml
// setContentView(R.layout.hello_activity);
}
@Override
protected Dialog onCreateDialog(int id, Bundle bundle) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Welcome ");
builder.setCancelable(true);
builder.setItems(elements, null);
return builder.create();
}
private void showAlert() {
showDialog(DIALOG);
}
}

View File

@@ -0,0 +1,26 @@
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.apps.tag;
/**
* @author nnk@google.com (Nick Kralevich)
*/
public class TagUi {
}

View File

@@ -0,0 +1,63 @@
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.apps.tag;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;
/**
* A minimal "Hello, World!" application.
*/
public class Tags extends TabActivity {
/**
* Called with the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources();
TabHost tabHost = getTabHost();
Intent i = new Intent().setClass(this, TagList.class);
Intent iSavedList = new Intent().setClass(this, TagList.class);
Intent iRecentList = new Intent().setClass(this, TagList.class);
Intent iMyTagList = new Intent().setClass(this, TagList.class);
TabHost.TabSpec spec1 = tabHost.newTabSpec("1")
.setIndicator("Saved", res.getDrawable(R.drawable.ic_tab_artists))
.setContent(iSavedList);
tabHost.addTab(spec1);
TabHost.TabSpec spec2 = tabHost.newTabSpec("2")
.setIndicator("Recent", res.getDrawable(R.drawable.ic_tab_artists))
.setContent(iRecentList);
tabHost.addTab(spec2);
TabHost.TabSpec spec3 = tabHost.newTabSpec("3")
.setIndicator("My Tag", res.getDrawable(R.drawable.ic_tab_artists))
.setContent(iMyTagList);
tabHost.addTab(spec3);
}
}

14
apps/Tag/tests/Android.mk Normal file
View File

@@ -0,0 +1,14 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_JAVA_LIBRARIES := android.test.runner
LOCAL_PACKAGE_NAME := TagAppTests
LOCAL_MODULE_TAGS := tests
LOCAL_INSTRUMENTATION_FOR := TagApp
include $(BUILD_PACKAGE)

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.apps.tag">
<!-- We add an application tag here just so that we can indicate that
this package needs to link against the android.test library,
which is needed when building test cases. -->
<application>
<uses-library android:name="android.test.runner" />
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.android.helloactivity"
android:label="HelloActivity sample tests">
</instrumentation>
</manifest>

View File

@@ -0,0 +1 @@
tested.project.dir=..

View File

@@ -0,0 +1,40 @@
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.apps.tag;
import android.test.ActivityInstrumentationTestCase2;
/**
* Make sure that the main launcher activity opens up properly, which will be
* verified by {@link #testActivityTestCaseSetUpProperly}.
*/
public class TagsTest extends ActivityInstrumentationTestCase2<Tags> {
/**
* Creates an {@link ActivityInstrumentationTestCase2} for the {@link Tags} activity.
*/
public TagsTest() {
super(Tags.class);
}
/**
* Verifies that the activity under test can be launched.
*/
public void testActivityTestCaseSetUpProperly() {
assertNotNull("activity should be launched successfully", getActivity());
}
}

View File

@@ -15,7 +15,12 @@
# #
# #
# These are the files that comprise that SDK # These are the files that comprise that SDK.
#
# The files that will go in the tools folder are setup through
# sdk/build/tools.atree
# This is to help when the sdk.git project is branched differently from
# the other projects.
# #
############################################################################## ##############################################################################
@@ -28,94 +33,12 @@ development/docs/SDK_RELEASE_NOTES RELEASE_NOTES.html
# doc redirect # doc redirect
frameworks/base/docs/docs-redirect.html documentation.html frameworks/base/docs/docs-redirect.html documentation.html
##############################################################################
# Tools Component
##############################################################################
# version files for the SDK updater, from sdk.git
sdk/files/tools_source.properties tools/source.properties
# copy plugin.prop from sdk.git
sdk/files/plugin.prop tools/lib/plugin.prop
# native host tools from out/host/$(HOST_OS)-$(HOST_ARCH)/
bin/adb tools/adb
bin/sqlite3 tools/sqlite3
bin/dmtracedump tools/dmtracedump
bin/etc1tool tools/etc1tool
bin/hprof-conv tools/hprof-conv
bin/mksdcard tools/mksdcard
bin/zipalign tools/zipalign
# emulator
bin/emulator tools/emulator
# Java-Based SDK Tools
bin/ddms tools/ddms
bin/hierarchyviewer tools/hierarchyviewer
bin/draw9patch tools/draw9patch
bin/layoutopt tools/layoutopt
bin/traceview tools/traceview
bin/android tools/android
# sdk.git Ant templates for project build files
sdk/templates/build.template tools/lib/build.template
sdk/templates/build.export.template tools/lib/build.export.template
# Ant Build Rules
sdk/files/ant tools/ant
sdk/files/sdk_files_NOTICE.txt tools/ant/NOTICE.txt
# layout device definition
sdk/files/devices.xml tools/lib/devices.xml
# AVD Hardware property list
external/qemu/android/avd/hardware-properties.ini tools/lib/hardware-properties.ini
# emacs support from sdk.git
sdk/files/android.el tools/lib/android.el
# Java Libraries for the tools
framework/androidprefs.jar tools/lib/androidprefs.jar
sdk/apkbuilder/etc/apkbuilder tools/apkbuilder
framework/sdkstats.jar tools/lib/sdkstats.jar
framework/archquery.jar tools/lib/archquery.jar
framework/ddms.jar tools/lib/ddms.jar
framework/ddmlib.jar tools/lib/ddmlib.jar
framework/ddmuilib.jar tools/lib/ddmuilib.jar
framework/hierarchyviewer.jar tools/lib/hierarchyviewer.jar
framework/draw9patch.jar tools/lib/draw9patch.jar
framework/layoutopt.jar tools/lib/layoutopt.jar
framework/uix.jar tools/lib/uix.jar
framework/traceview.jar tools/lib/traceview.jar
framework/anttasks.jar tools/lib/anttasks.jar
framework/sdklib.jar tools/lib/sdklib.jar
framework/sdkuilib.jar tools/lib/sdkuilib.jar
framework/sdkmanager.jar tools/lib/sdkmanager.jar
# 3rd Party java libraries
framework/swing-worker-1.1.jar tools/lib/swing-worker-1.1.jar
framework/groovy-all-1.7.0.jar tools/lib/groovy-all-1.7.0.jar
framework/commons-compress-1.0.jar tools/lib/commons-compress-1.0.jar
framework/emmalib.jar tools/lib/emma_device.jar
external/emma/lib/emma.jar tools/lib/emma.jar
external/emma/lib/emma_ant.jar tools/lib/emma_ant.jar
framework/org-netbeans-api-visual.jar tools/lib/org-netbeans-api-visual.jar
framework/org-openide-util.jar tools/lib/org-openide-util.jar
framework/jcommon-1.0.12.jar tools/lib/jcommon-1.0.12.jar
framework/jfreechart-1.0.9.jar tools/lib/jfreechart-1.0.9.jar
framework/jfreechart-1.0.9-swt.jar tools/lib/jfreechart-1.0.9-swt.jar
framework/org.eclipse.core.commands_3.4.0.I20080509-2000.jar tools/lib/org.eclipse.core.commands_3.4.0.I20080509-2000.jar
framework/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar tools/lib/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
framework/org.eclipse.jface_3.4.2.M20090107-0800.jar tools/lib/org.eclipse.jface_3.4.2.M20090107-0800.jar
framework/osgi.jar tools/lib/osgi.jar
############################################################################## ##############################################################################
# Platform Tools Component # Platform Tools Component
############################################################################## ##############################################################################
# host tools from out/host/$(HOST_OS)-$(HOST_ARCH)/ # host tools from out/host/$(HOST_OS)-$(HOST_ARCH)/
bin/adb platform-tools/adb
bin/aapt platform-tools/aapt bin/aapt platform-tools/aapt
bin/aidl platform-tools/aidl bin/aidl platform-tools/aidl
# dx # dx
@@ -213,7 +136,6 @@ frameworks/base/docs/docs-samples-redirect.html docs/samples/index.html
# Samples Component # Samples Component
############################################################################## ##############################################################################
# samples to include in the sdk samples package # samples to include in the sdk samples package
# #
# the list here should match the list of samples that we generate docs for, # the list here should match the list of samples that we generate docs for,

View File

@@ -26,10 +26,10 @@ fi
# Remove obsolete stuff from tools & platform # Remove obsolete stuff from tools & platform
TOOLS=$TEMP_SDK_DIR/tools TOOLS=$TEMP_SDK_DIR/tools
LIB=$TEMP_SDK_DIR/tools/lib LIB=$TEMP_SDK_DIR/tools/lib
rm $V $TOOLS/{adb,android,apkbuilder,ddms,dmtracedump,draw9patch,emulator,etc1tool} rm $V $TOOLS/{android,apkbuilder,ddms,dmtracedump,draw9patch,emulator,etc1tool}
rm $V $TOOLS/{hierarchyviewer,hprof-conv,layoutopt,mksdcard,sqlite3,traceview,zipalign} rm $V $TOOLS/{hierarchyviewer,hprof-conv,layoutopt,mksdcard,sqlite3,traceview,zipalign}
rm $V $LIB/*/swt.jar rm $V $LIB/*/swt.jar
rm $V $PLATFORM_TOOLS/{aapt,aidl,dx,dexdump} rm $V $PLATFORM_TOOLS/{adb,aapt,aidl,dx,dexdump}
# Copy all the new stuff in tools # Copy all the new stuff in tools
# Note: some tools are first copied here and then moved in platforms/<name>/tools/ # Note: some tools are first copied here and then moved in platforms/<name>/tools/
@@ -80,7 +80,7 @@ cp -r $V ${TOPDIR}external/sonivox/jet_tools/JetCreator $JETCREATOR/
cp -r $V ${TOPDIR}external/sonivox/jet_tools/JetCreator_content $JETDEMOCONTENT/ cp -r $V ${TOPDIR}external/sonivox/jet_tools/JetCreator_content $JETDEMOCONTENT/
cp -r $V ${TOPDIR}external/sonivox/jet_tools/logic_templates $JETLOGICTEMPLATES/ cp -r $V ${TOPDIR}external/sonivox/jet_tools/logic_templates $JETLOGICTEMPLATES/
chmod $V -R u+w $JETCREATOR # fixes an issue where Cygwin might copy the above as u+rx only chmod $V -R u+w $JETCREATOR # fixes an issue where Cygwin might copy the above as u+rx only
cp $V ${TOPDIR}prebuilt/windows/jetcreator/EASDLL.dll $JETCREATOR/ cp $V ${TOPDIR}prebuilt/windows/jetcreator/EASDLL.dll $JETCREATOR/
cp $V ${TOPDIR}external/sonivox/docs/JET_Authoring_Guidelines.html $JETDOC/ cp $V ${TOPDIR}external/sonivox/docs/JET_Authoring_Guidelines.html $JETDOC/
cp -r $V ${TOPDIR}external/sonivox/docs/JET_Authoring_Guidelines_files $JETDOC/ cp -r $V ${TOPDIR}external/sonivox/docs/JET_Authoring_Guidelines_files $JETDOC/
@@ -89,7 +89,7 @@ cp -r $V ${TOPDIR}external/sonivox/docs/JET_Creator_User_Manual_files $JETDOC/
# Copy or move platform specific tools to the default platform. # Copy or move platform specific tools to the default platform.
cp $V ${TOPDIR}dalvik/dx/etc/dx.bat $PLATFORM_TOOLS/ cp $V ${TOPDIR}dalvik/dx/etc/dx.bat $PLATFORM_TOOLS/
mv $V $TOOLS/{aapt.exe,aidl.exe,dexdump.exe} $PLATFORM_TOOLS/ mv $V $TOOLS/{adb.exe,aapt.exe,aidl.exe,dexdump.exe} $TOOLS/Adb*.dll $PLATFORM_TOOLS/
# When building under cygwin, mgwz.dll must be both in SDK/tools for zipalign # When building under cygwin, mgwz.dll must be both in SDK/tools for zipalign
# and in SDK/platform/XYZ/tools/ for aapt # and in SDK/platform/XYZ/tools/ for aapt

View File

@@ -159,21 +159,20 @@ public class TouchPaint extends GraphicsActivity {
public class MyView extends View { public class MyView extends View {
private static final int FADE_ALPHA = 0x06; private static final int FADE_ALPHA = 0x06;
private static final int MAX_FADE_STEPS = 256/FADE_ALPHA + 4; private static final int MAX_FADE_STEPS = 256/FADE_ALPHA + 4;
private static final int TRACKBALL_SCALE = 10;
private Bitmap mBitmap; private Bitmap mBitmap;
private Canvas mCanvas; private Canvas mCanvas;
private final Rect mRect = new Rect(); private final Rect mRect = new Rect();
private final Paint mPaint; private final Paint mPaint;
private final Paint mFadePaint; private final Paint mFadePaint;
private boolean mCurDown; private float mCurX;
private int mCurX; private float mCurY;
private int mCurY;
private float mCurPressure;
private float mCurSize;
private int mCurWidth;
private int mFadeSteps = MAX_FADE_STEPS; private int mFadeSteps = MAX_FADE_STEPS;
public MyView(Context c) { public MyView(Context c) {
super(c); super(c);
setFocusable(true);
mPaint = new Paint(); mPaint = new Paint();
mPaint.setAntiAlias(true); mPaint.setAntiAlias(true);
mPaint.setARGB(255, 255, 255, 255); mPaint.setARGB(255, 255, 255, 255);
@@ -229,61 +228,59 @@ public class TouchPaint extends GraphicsActivity {
} }
@Override public boolean onTrackballEvent(MotionEvent event) { @Override public boolean onTrackballEvent(MotionEvent event) {
boolean oldDown = mCurDown;
mCurDown = true;
int N = event.getHistorySize(); int N = event.getHistorySize();
int baseX = mCurX; final float scaleX = event.getXPrecision() * TRACKBALL_SCALE;
int baseY = mCurY; final float scaleY = event.getYPrecision() * TRACKBALL_SCALE;
final float scaleX = event.getXPrecision();
final float scaleY = event.getYPrecision();
for (int i=0; i<N; i++) { for (int i=0; i<N; i++) {
//Log.i("TouchPaint", "Intermediate trackball #" + i //Log.i("TouchPaint", "Intermediate trackball #" + i
// + ": x=" + event.getHistoricalX(i) // + ": x=" + event.getHistoricalX(i)
// + ", y=" + event.getHistoricalY(i)); // + ", y=" + event.getHistoricalY(i));
drawPoint(baseX+event.getHistoricalX(i)*scaleX, mCurX += event.getHistoricalX(i) * scaleX;
baseY+event.getHistoricalY(i)*scaleY, mCurY += event.getHistoricalY(i) * scaleY;
event.getHistoricalPressure(i), drawPoint(mCurX, mCurY, 1.0f, 16.0f);
event.getHistoricalSize(i));
} }
//Log.i("TouchPaint", "Trackball: x=" + event.getX() //Log.i("TouchPaint", "Trackball: x=" + event.getX()
// + ", y=" + event.getY()); // + ", y=" + event.getY());
drawPoint(baseX+event.getX()*scaleX, baseY+event.getY()*scaleY, mCurX += event.getX() * scaleX;
event.getPressure(), event.getSize()); mCurY += event.getY() * scaleY;
mCurDown = oldDown; drawPoint(mCurX, mCurY, 1.0f, 16.0f);
return true; return true;
} }
@Override public boolean onTouchEvent(MotionEvent event) { @Override public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction(); int action = event.getActionMasked();
mCurDown = action == MotionEvent.ACTION_DOWN if (action != MotionEvent.ACTION_UP && action != MotionEvent.ACTION_CANCEL) {
|| action == MotionEvent.ACTION_MOVE; int N = event.getHistorySize();
int N = event.getHistorySize(); int P = event.getPointerCount();
for (int i=0; i<N; i++) { for (int i = 0; i < N; i++) {
//Log.i("TouchPaint", "Intermediate pointer #" + i); for (int j = 0; j < P; j++) {
drawPoint(event.getHistoricalX(i), event.getHistoricalY(i), mCurX = event.getHistoricalX(j, i);
event.getHistoricalPressure(i), mCurY = event.getHistoricalY(j, i);
event.getHistoricalSize(i)); drawPoint(mCurX, mCurY,
event.getHistoricalPressure(j, i),
event.getHistoricalTouchMajor(j, i));
}
}
for (int j = 0; j < P; j++) {
mCurX = event.getX(j);
mCurY = event.getY(j);
drawPoint(mCurX, mCurY, event.getPressure(j), event.getTouchMajor(j));
}
} }
drawPoint(event.getX(), event.getY(), event.getPressure(),
event.getSize());
return true; return true;
} }
private void drawPoint(float x, float y, float pressure, float size) { private void drawPoint(float x, float y, float pressure, float width) {
//Log.i("TouchPaint", "Drawing: " + x + "x" + y + " p=" //Log.i("TouchPaint", "Drawing: " + x + "x" + y + " p="
// + pressure + " s=" + size); // + pressure + " width=" + width);
mCurX = (int)x; if (width < 1) width = 1;
mCurY = (int)y; if (mBitmap != null) {
mCurPressure = pressure; float radius = width / 2;
mCurSize = size; int pressureLevel = (int)(pressure * 255);
mCurWidth = (int)(mCurSize*(getWidth()/3));
if (mCurWidth < 1) mCurWidth = 1;
if (mCurDown && mBitmap != null) {
int pressureLevel = (int)(mCurPressure*255);
mPaint.setARGB(pressureLevel, 255, 255, 255); mPaint.setARGB(pressureLevel, 255, 255, 255);
mCanvas.drawCircle(mCurX, mCurY, mCurWidth, mPaint); mCanvas.drawCircle(x, y, radius, mPaint);
mRect.set(mCurX-mCurWidth-2, mCurY-mCurWidth-2, mRect.set((int) (x - radius - 2), (int) (y - radius - 2),
mCurX+mCurWidth+2, mCurY+mCurWidth+2); (int) (x + radius + 2), (int) (y + radius + 2));
invalidate(mRect); invalidate(mRect);
} }
mFadeSteps = 0; mFadeSteps = 0;