Merge remote branch 'origin/android_branch' into android_branch

This commit is contained in:
Eric House 2014-11-22 17:11:40 -08:00
commit 83a79963d4
285 changed files with 24152 additions and 11677 deletions

2
.gitignore vendored
View file

@ -3,7 +3,7 @@
*~
/gitignored
TAGS
core
core*
*.apk
xwords_4.4.0.0*
gcm_loop.shelf

5
.projectile Normal file
View file

@ -0,0 +1,5 @@
-TAGS
-/xwords4/android/XWords4-dbg
-/xwords4/linux/discon_ok2.sh_logs
-/xwords4/android/XWords4/res_src/values-pt/strings.xml
-/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml

View file

@ -1 +1,3 @@
/libraries
/modules
XWords4-gcm/

View file

@ -1,9 +0,0 @@
*.apk
local.properties
bin
gen
proguard.cfg
proguard-project.txt
obj
res/drawable*/*gen.png
img_src

View file

@ -1,245 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- -*- compile-command: "ant install"; -*- -->
<!-- Copyright (C) 2007 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="org.eehouse.android.xw4bt"
android:versionCode="72"
android:versionName="@string/app_version"
>
<!-- BE SURE TO MODIFY project.project AND the variable TARGET in
../scripts/setup_local_props.sh if targetSdkVersion changes!!!
-->
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" />
<supports-screens android:resizeable="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-feature android:name="android.hardware.telephony"
android:required = "false"
/>
<uses-feature android:name="android.hardware.nfc" android:required="false" />
<!-- GCM stuff -->
<permission android:name="org.eehouse.android.xw4.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="org.eehouse.android.xw4.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.NFC" />
<application android:icon="@drawable/icon48x48"
android:label="@string/app_name"
android:name=".XWApp"
>
<activity android:name="GamesList"
android:label="@string/app_name"
android:launchMode="standard"
android:configChanges="keyboardHidden|orientation|screenSize"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="@string/xwords_nfc_mime" />
</intent-filter>
</activity>
<activity android:name="DictsActivity"
android:label="@string/title_dicts_list"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name="NewGameActivity"
android:theme="@android:style/Theme.NoTitleBar"
/>
<activity android:name="BTInviteActivity"
android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name="SMSInviteActivity"
android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
/>
<activity android:name="GameConfig"
android:screenOrientation="sensor"
android:configChanges="keyboardHidden|orientation|screenSize"
>
<intent-filter>
<action android:name="android.intent.action.EDIT" />
</intent-filter>
</activity>
<activity android:name="PrefsActivity"
android:label="@string/title_prefs"
android:screenOrientation="sensor"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name="BoardActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden"
/>
<activity android:name="LookupActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Dialog"
/>
<activity android:name="StudyList"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<receiver android:name="RelayReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<receiver android:name="UpdateCheckReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<activity android:name="DispatchNotify">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="newxwgame"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="@string/invite_host"
android:pathPrefix="@string/invite_prefix"
/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="@string/invite_mime" />
</intent-filter>
</activity>
<!-- downloading dicts -->
<activity android:name=".DictImportActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog">
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:scheme="file" android:host="*"
android:pathPattern=".*\\.xwd" />
<data android:scheme="http"
android:mimeType="application/x-xwordsdict"
android:host="*"
android:pathPattern=".*\\.xwd" />
</intent-filter>
</activity>
<activity android:name="RelayGameActivity"/>
<activity android:name="DictBrowseActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name="ChatActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<service android:name="RelayService"/>
<receiver android:name=".MountEventReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<data android:scheme="file" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MEDIA_EJECT" />
<data android:scheme="file" />
</intent-filter>
</receiver>
<receiver android:name="BTReceiver">
<intent-filter>
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
</intent-filter>
<intent-filter>
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
</intent-filter>
</receiver>
<service android:name="BTService"/>
<receiver android:name="SMSReceiver" >
<intent-filter android:priority="999" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<service android:name="SMSService"/>
<receiver android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="org.eehouse.android.xw4" />
</intent-filter>
</receiver>
<service android:name=".GCMIntentService" />
</application>
</manifest>

View file

@ -1,3 +0,0 @@
BasEnglish2to8.xwd
CollegeEng_2to8.xwd
Top5000.xwd

View file

@ -1,151 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="XWords4" default="release">
<!-- The local.properties file is created and updated by the 'android' tool.
It contains the path to the SDK. It should *NOT* be checked into
Version Control Systems. -->
<loadproperties srcFile="local.properties" />
<!-- The ant.properties file can be created by you. It is only edited by the
'android' tool to add properties to it.
This is the place to change some Ant specific build properties.
Here are some properties you may want to change/update:
source.dir
The name of the source directory. Default is 'src'.
out.dir
The name of the output directory. Default is 'bin'.
For other overridable properties, look at the beginning of the rules
files in the SDK, at tools/ant/build.xml
Properties related to the SDK location or the project target should
be updated using the 'android' tool with the 'update' action.
This file is an integral part of the build system for your
application and should be checked into Version Control Systems.
-->
<property file="ant.properties" />
<!-- The project.properties file is created and updated by the 'android'
tool, as well as ADT.
This contains project specific properties such as project target, and library
dependencies. Lower level build properties are stored in ant.properties
(or in .classpath for Eclipse projects).
This file is an integral part of the build system for your
application and should be checked into Version Control Systems. -->
<loadproperties srcFile="project.properties" />
<!-- quick check on sdk.dir -->
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
unless="sdk.dir"
/>
<!-- extension targets. Uncomment the ones where you want to do custom work
in between standard targets -->
<property name="INITIAL_CLIENT_VERS" value="3"/>
<target name="-pre-clean">
<exec dir="." executable="../scripts/ndksetup.sh" output="/dev/null">
<arg value="${build.target}"/>
</exec>
<exec dir="." executable="../scripts/ndkbuild.sh" output="/dev/null">
<arg value="clean"/>
</exec>
<exec dir="." executable="../scripts/mkimages.sh"
failonerror="true" >
<arg value="--clean"/>
</exec>
</target>
<target name="-pre-build">
<exec dir="." executable="../scripts/mkvariant.sh" failonerror="true"
output="/dev/null">
<arg value="--variant-name"/>
<arg value="xw4bt"/>
<arg value="--app-name"/>
<arg value="cWords-BT"/>
<arg value="--dest-dir"/>
<arg value="./res"/>
<arg value="--dest-dir"/>
<arg value="./src"/>
<arg value="--dest-dir"/>
<arg value="./jni"/>
<arg value="--dest-dir"/>
<arg value="./assets"/>
<arg value="--dest-dir"/>
<arg value="./libs"/>
<arg value="--dest-dir"/>
<arg value="./img_src"/>
</exec>
<exec dir="." executable="../scripts/ndksetup.sh" output="/dev/null">
<arg value="${build.target}"/>
</exec>
<property name="CHAT_ENABLED" value="true" />
<property name="THUMBNAIL_ENABLED" value="true" />
<exec dir="." executable="../scripts/ndkbuild.sh" failonerror="true">
<arg value="BUILD_TARGET=${build.target}" />
<arg value="-j3"/>
<arg value="INITIAL_CLIENT_VERS=${INITIAL_CLIENT_VERS}" />
<arg value="CHAT_ENABLED=${CHAT_ENABLED}" />
<arg value="THUMBNAIL_ENABLED=${THUMBNAIL_ENABLED}" />
</exec>
<exec dir="." executable="../scripts/mkimages.sh"
failonerror="true" output="/dev/null"
/>
<exec dir="." executable="../scripts/gen_gcmid.sh"
output="src/org/eehouse/android/xw4bt/GCMConsts.java"
failonerror="true" logError="true"
>
<arg value="xw4bt"/>
</exec>
<exec dir=".." executable="./scripts/genvers.sh" output="/dev/null">
<arg value="XWords4-bt"/>
<arg value="xw4bt"/>
<arg value="${INITIAL_CLIENT_VERS}" />
<arg value="${CHAT_ENABLED}" />
<arg value="${THUMBNAIL_ENABLED}" />
</exec>
</target>
<!--
<target name="-pre-compile">
</target>
/* This is typically used for code obfuscation.
Compiled code location: ${out.classes.absolute.dir}
If this is not done in place, override ${out.dex.input.absolute.dir} */
<target name="-post-compile">
</target>
-->
<!-- Import the actual build file.
To customize existing targets, there are two options:
- Customize only one target:
- copy/paste the target into this file, *before* the
<import> task.
- customize it to your needs.
- Customize the whole content of build.xml
- copy/paste the content of the rules files (minus the top node)
into this file, replacing the <import> task.
- customize to your needs.
***********************
****** IMPORTANT ******
***********************
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
in order to avoid having your file be overridden by tools such as "android update project"
-->
<!-- version-tag: 1 -->
<import file="${sdk.dir}/tools/ant/build.xml" />
</project>

View file

@ -1,20 +0,0 @@
anddict.c
anddict.h
andglobals.h
andutils.c
andutils.h
drawwrapper.c
drawwrapper.h
jniutlswrapper.c
jniutlswrapper.h
LocalizedStrIncludes.h
paths.h
utils.c
utilwrapper.c
utilwrapper.h
xportwrapper.c
xportwrapper.h
xptypes.h
xwjni.c
#paths.h#
Application.mk

View file

@ -1,100 +0,0 @@
# -*- mode: Makefile; compile-command: "cd ../; ${NDK_ROOT}/ndk-build -j3"; -*-
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
COMMON_PATH=../../../common
LOCAL_C_INCLUDES+= \
-I$(LOCAL_PATH)/$(COMMON_PATH) \
-I$(LOCAL_PATH)/../../../relay \
LOCAL_LDLIBS += -llog
ifeq ($(BUILD_TARGET),debug)
LOCAL_DEBUG = -DMEM_DEBUG -DDEBUG -DENABLE_LOGGING -DCOMMS_CHECKSUM -Wno-unused-but-set-variable
endif
LOCAL_DEFINES += \
$(LOCAL_DEBUG) \
-DXWFEATURE_RELAY \
-DXWFEATURE_BLUETOOTH \
-DXWFEATURE_SMS \
-DXWFEATURE_COMMSACK \
-DXWFEATURE_TURNCHANGENOTIFY \
-DCOMMS_XPORT_FLAGSPROC \
-DKEY_SUPPORT \
-DXWFEATURE_CROSSHAIRS \
-DPOINTER_SUPPORT \
-DSCROLL_DRAG_THRESHHOLD=1 \
-DDROP_BITMAPS \
-DXWFEATURE_TRAYUNDO_ONE \
-DDISABLE_TILE_SEL \
-DXWFEATURE_BOARDWORDS \
-DXWFEATURE_WALKDICT \
-DXWFEATURE_WALKDICT_FILTER \
-DXWFEATURE_DICTSANITY \
-DFEATURE_TRAY_EDIT \
-DXWFEATURE_BONUSALL \
-DMAX_ROWS=32 \
-DHASH_STREAM \
-DXWFEATURE_BASE64 \
-DXWFEATURE_DEVID \
-DCOMMON_LAYOUT \
-DINITIAL_CLIENT_VERS=${INITIAL_CLIENT_VERS} \
-DRELAY_ROOM_DEFAULT=\"\" \
-D__LITTLE_ENDIAN \
ifeq ($(CHAT_ENABLED),true)
LOCAL_DEFINES += -DXWFEATURE_CHAT
endif
# -DXWFEATURE_SCOREONEPASS \
LOCAL_SRC_FILES += \
xwjni.c \
utilwrapper.c \
drawwrapper.c \
xportwrapper.c \
anddict.c \
andutils.c \
jniutlswrapper.c \
COMMON_PATH=../../../common
COMMON_SRC_FILES += \
$(COMMON_PATH)/boarddrw.c \
$(COMMON_PATH)/scorebdp.c \
$(COMMON_PATH)/dragdrpp.c \
$(COMMON_PATH)/pool.c \
$(COMMON_PATH)/tray.c \
$(COMMON_PATH)/dictnry.c \
$(COMMON_PATH)/dictiter.c \
$(COMMON_PATH)/dictmgr.c \
$(COMMON_PATH)/mscore.c \
$(COMMON_PATH)/vtabmgr.c \
$(COMMON_PATH)/strutils.c \
$(COMMON_PATH)/engine.c \
$(COMMON_PATH)/board.c \
$(COMMON_PATH)/mempool.c \
$(COMMON_PATH)/game.c \
$(COMMON_PATH)/server.c \
$(COMMON_PATH)/model.c \
$(COMMON_PATH)/comms.c \
$(COMMON_PATH)/memstream.c \
$(COMMON_PATH)/movestak.c \
$(COMMON_PATH)/dbgutil.c \
LOCAL_CFLAGS+=$(LOCAL_C_INCLUDES) $(LOCAL_DEFINES) -Wall
LOCAL_SRC_FILES := $(linux_SRC_FILES) $(LOCAL_SRC_FILES) $(COMMON_SRC_FILES)
LOCAL_MODULE := xwjni
LOCAL_LDLIBS := -L${SYSROOT}/usr/lib -llog -lz
include $(BUILD_SHARED_LIBRARY)
ifneq ($(shell which ccache),)
TARGET_CC = ccache $(TOOLCHAIN_PREFIX)gcc
TARGET_CXX = ccache $(TOOLCHAIN_PREFIX)g++
endif
COMMON_SRC_FILES :=
COMMON_PATH :=

View file

@ -1,3 +0,0 @@
armeabi
x86
gcm.jar

View file

@ -1,11 +0,0 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "ant.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=Google Inc.:Google APIs:14

View file

@ -1,20 +0,0 @@
back__gen.png
content_discard__gen.png
content_edit.png
content_new__gen.png
dict__gen.png
down__gen.png
download__gen.png
edit__gen.png
email__gen.png
new_group__gen.png
prefs__gen.png
relabel__gen.png
reset__gen.png
save__gen.png
send__gen.png
up__gen.png
content_copy__gen.png
clear_all__gen.png
search__gen.png
select_all__gen.png

View file

@ -1,20 +0,0 @@
back__gen.png
content_discard__gen.png
content_edit.png
content_new__gen.png
dict__gen.png
down__gen.png
download__gen.png
edit__gen.png
email__gen.png
new_group__gen.png
prefs__gen.png
relabel__gen.png
reset__gen.png
save__gen.png
send__gen.png
up__gen.png
content_copy__gen.png
clear_all__gen.png
search__gen.png
select_all__gen.png

View file

@ -1,20 +0,0 @@
back__gen.png
content_discard__gen.png
content_edit.png
content_new__gen.png
dict__gen.png
down__gen.png
download__gen.png
edit__gen.png
email__gen.png
new_group__gen.png
prefs__gen.png
relabel__gen.png
reset__gen.png
save__gen.png
send__gen.png
up__gen.png
content_copy__gen.png
clear_all__gen.png
search__gen.png
select_all__gen.png

View file

@ -1,29 +0,0 @@
bluetooth_active.png
bluetooth_disabled.png
dicticon.png
downarrow.png
expander_ic_maximized.9.png
expander_ic_minimized.9.png
flip.png
icon48x48.png
ic_popup_sync_1.png
netarrow_allconn.png
netarrow_someconn.png
netarrow_unconn.png
next_hint.png
origin.png
prev_hint.png
refresh.png
relaygame.png
rightarrow.png
shuffle.png
sologame.png
stat_notify_chat.png
stat_notify_sync.png
undo.png
values.png
zoom.png
in_arrow_active.png
in_arrow.png
out_arrow_active.png
out_arrow.png

View file

@ -1 +0,0 @@
board.xml

View file

@ -1,34 +0,0 @@
about_dlg.xml
board.xml
btinviter_item.xml
btinviter_item.xml.~1~
btinviter.xml
chat_history_local.xml
chat_history_remote.xml
chat.xml
color_display.xml
color_edit.xml
dflt_name.xml
dict_browser.xml
dict_browse.xml
divider_view.xml
force_remote.xml
game_config.xml
game_list_item.xml
game_list.xml
import_dict.xml
list_item.xml
lookup.xml
new_game.xml
passwd_view.xml
player_edit.xml
player_list_elem.xml
prefs_w_buttons.xml
relay_game_config.xml
rename_game.xml
select_dialog_item.xml
smsinviter_item.xml
smsinviter.xml
confirm_sms.xml
game_list_group.xml
studylist.xml

View file

@ -1 +0,0 @@
board_menu.xml

View file

@ -1,7 +0,0 @@
board_menu.xml
chat_menu.xml
dicts_item_menu.xml
games_list_item_menu.xml
games_list_menu.xml
dicts_menu.xml
studylist.xml

View file

@ -1 +0,0 @@
changes

View file

@ -1 +0,0 @@
strings.xml

View file

@ -1 +0,0 @@
strings.xml

View file

@ -1 +0,0 @@
styles.xml

View file

@ -1 +0,0 @@
strings.xml

View file

@ -1 +0,0 @@
strings.xml

View file

@ -1,4 +0,0 @@
git_string.xml
strings.xml
styles.xml
common_rsrc.xml

View file

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_version">4.4-bt beta 76</string>
</resources>

View file

@ -1 +0,0 @@
xwprefs.xml

View file

@ -1,87 +0,0 @@
BoardActivity.java
BoardDims.java
BoardView.java
BTInviteActivity.java
BTReceiver.java
BTService.java
ChatActivity.java
CommsTransport.java
DbgUtils.java
DBHelper.java
DBUtils.java
DictBrowseActivity.java
DictImportActivity.java
DictLangCache.java
DictListPreference.java
DictsActivity.java
DictUtils.java
DispatchNotify.java
DlgDelegate.java
EditColorPreference.java
FirstRunDialog.java
GameConfig.java
GameListAdapter.java
GamesList.java
GameUtils.java
GitVersion.java
MountEventReceiver.java
MultiMsgSink.java
NetLaunchInfo.java
NetStateCache.java
NetUtils.java
NewGameActivity.java
PollListPreference.java
PrefsActivity.java
RefreshNamesTask.java
RelayGameActivity.java
RelayMsgSink.java
RelayReceiver.java
RelayService.java
StatusReceiver.java
Toolbar.java
Utils.java
XWActivity.java
XWConstants.java
XWEditTextPreference.java
XWListActivity.java
XWListAdapter.java
XWListItem.java
XWListPreference.java
GameNamer.java
LookupActivity.java
InviteActivity.java
SMSInviteActivity.java
SMSListItem.java
SMSReceiver.java
SMSService.java
MultiService.java
ABUtils.java
BoardCanvas.java
BuildConstants.java
ConnStatusHandler.java
DlgState.java
ExpiringDelegate.java
ExpiringLinearLayout.java
ExpiringTextView.java
GameListGroup.java
GameListItem.java
GameLock.java
GCMConsts.java
GCMIntentService.java
NFCUtils.java
SelectableItem.java
SMSCheckBoxPreference.java
ThumbCanvas.java
UpdateCheckReceiver.java
XWExpandableListActivity.java
XWPrefs.java
XWService.java
XWSumListPreference.java
XWThumbListPreference.java
StudyList.java
CrashTrack.java
DelegateBase.java
DlgID.java
GamesListActivity.java
GamesListDelegate.java
LookupAlert.java

View file

@ -1,93 +0,0 @@
/* -*- compile-command: "cd ../../../../../; ant debug install"; -*- */
/*
* Copyright 2010 - 2011 by Eric House (xwords@eehouse.org). All
* rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.eehouse.android.xw4bt;
import android.app.Application;
import android.content.Context;
import android.graphics.Color;
import android.os.Build;
import java.util.UUID;
import org.eehouse.android.xw4bt.jni.XwJNI;
public class XWApp extends Application {
public static final boolean BTSUPPORTED = true;
public static final boolean SMSSUPPORTED = true;
public static final boolean GCMSUPPORTED = true;
public static final boolean ATTACH_SUPPORTED = true;
public static final boolean REMATCH_SUPPORTED = false;
public static final boolean DEBUG_LOCKS = false;
public static final boolean DEBUG_EXP_TIMERS = false;
public static final boolean GCM_IGNORED = false;
public static final boolean UDP_ENABLED = true;
public static final String SMS_PUBLIC_HEADER = "-XW4";
public static final int MAX_TRAY_TILES = 7; // comtypes.h
public static final int SEL_COLOR = Color.argb( 0xFF, 0x09, 0x70, 0x93 );
private static UUID s_UUID = null;
private static Boolean s_onEmulator = null;
@Override
public void onCreate()
{
super.onCreate();
// This one line should always get logged even if logging is
// off -- because logging is on by default until logEnable is
// called.
DbgUtils.logf( "XWApp.onCreate(); git_rev=%s",
getString( R.string.git_rev ) );
DbgUtils.logEnable( this );
ConnStatusHandler.loadState( this );
RelayReceiver.RestartTimer( this );
UpdateCheckReceiver.restartTimer( this );
BTService.startService( this );
SMSService.checkForInvites( this );
RelayService.startService( this );
GCMIntentService.init( this );
}
public static UUID getAppUUID()
{
if ( null == s_UUID ) {
s_UUID = UUID.fromString( XwJNI.comms_getUUID() );
}
return s_UUID;
}
public static String getAppName( Context context )
{
return context.getString( R.string.app_name );
}
public static boolean onEmulator()
{
if ( null == s_onEmulator ) {
s_onEmulator = new Boolean( "google_sdk".equals(Build.MODEL) );
}
return s_onEmulator;
}
}

View file

@ -1,18 +0,0 @@
BoardHandler.java
CommonPrefs.java
CommsAddrRec.java
CurGameInfo.java
DictInfo.java
DrawCtx.java
DrawScoreInfo.java
GameSummary.java
JNIThread.java
JNIUtilsImpl.java
JNIUtils.java
LocalPlayer.java
SyncedDraw.java
TransportProcs.java
UtilCtxtImpl.java
UtilCtxt.java
XwJNI.java
BoardDims.java

View file

@ -22,7 +22,7 @@
to come from a domain that you own or have control over. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.eehouse.android.xw4dbg"
android:versionCode="73"
android:versionCode="78"
android:versionName="@string/app_version"
>
@ -70,7 +70,7 @@
android:name=".XWApp"
>
<activity android:name="GamesList"
<activity android:name="GamesListActivity"
android:label="@string/app_name"
android:launchMode="standard"
android:configChanges="keyboardHidden|orientation|screenSize"
@ -100,10 +100,10 @@
<activity android:name="SMSInviteActivity"
android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:screenOrientation="sensor"
/>
<activity android:name="GameConfig"
<activity android:name="GameConfigActivity"
android:screenOrientation="sensor"
android:configChanges="keyboardHidden|orientation|screenSize"
>
@ -123,20 +123,17 @@
android:configChanges="keyboardHidden"
/>
<activity android:name="LookupActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Dialog"
/>
<activity android:name="StudyList"
<activity android:name="StudyListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<receiver android:name="RelayReceiver">
<receiver android:name="OnBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<receiver android:name="RelayReceiver"/>
<receiver android:name="NagTurnReceiver"/>
<receiver android:name="UpdateCheckReceiver">
<intent-filter>
@ -172,9 +169,11 @@
</activity>
<!-- downloading dicts -->
<activity android:name=".DictImportActivity"
<activity android:name=".DwnldActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog">
android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboardHidden|orientation|screenSize"
>
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
@ -188,13 +187,21 @@
</intent-filter>
</activity>
<activity android:name="RelayGameActivity"/>
<activity android:name="RelayGameActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name="DictBrowseActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name="ChatActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name=".loc.LocActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name=".loc.LocItemEditActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<service android:name="RelayService"/>
@ -213,6 +220,14 @@
<intent-filter android:priority="999" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.DATA_SMS_RECEIVED" />
<data android:scheme="sms" />
<data android:port="3344" />
<data android:host="*" />
</intent-filter>
</receiver>
<service android:name="SMSService"/>

View file

@ -0,0 +1 @@
/R.java

View file

@ -39,6 +39,9 @@
application and should be checked into Version Control Systems. -->
<loadproperties srcFile="project.properties" />
<!-- An attempt to define stuff to be included from multiple build.xml files -->
<import file="../scripts/common_targets.xml" />
<!-- quick check on sdk.dir -->
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
@ -49,77 +52,28 @@
<!-- extension targets. Uncomment the ones where you want to do custom work
in between standard targets -->
<property name="INITIAL_CLIENT_VERS" value="3"/>
<property name="INITIAL_CLIENT_VERS" value="4"/>
<property name="VARIANT_NAME" value="xw4dbg"/>
<target name="-pre-clean">
<exec dir="." executable="../scripts/ndksetup.sh" output="/dev/null">
<arg value="${build.target}"/>
</exec>
<exec dir="." executable="../scripts/ndkbuild.sh" output="/dev/null">
<arg value="clean"/>
</exec>
<exec dir="." executable="../scripts/mkimages.sh"
failonerror="true" >
<arg value="--clean"/>
</exec>
</target>
<target name="-pre-build">
<exec dir="." executable="../scripts/mkvariant.sh" failonerror="true"
output="/dev/null">
<arg value="--variant-name"/>
<arg value="xw4dbg"/>
<arg value="--app-name"/>
<arg value="cWords-DBG"/>
<arg value="--dest-dir"/>
<arg value="./res"/>
<arg value="--dest-dir"/>
<arg value="./src"/>
<arg value="--dest-dir"/>
<arg value="./jni"/>
<arg value="--dest-dir"/>
<arg value="./assets"/>
<arg value="--dest-dir"/>
<arg value="./libs"/>
<arg value="--dest-dir"/>
<arg value="./img_src"/>
</exec>
<exec dir="." executable="../scripts/ndksetup.sh" output="/dev/null">
<arg value="${build.target}"/>
</exec>
<property name="CHAT_ENABLED" value="true" />
<property name="THUMBNAIL_ENABLED" value="true" />
<exec dir="." executable="../scripts/ndkbuild.sh" failonerror="true">
<arg value="BUILD_TARGET=${build.target}" />
<arg value="-j3"/>
<arg value="INITIAL_CLIENT_VERS=${INITIAL_CLIENT_VERS}" />
<arg value="CHAT_ENABLED=${CHAT_ENABLED}" />
<arg value="THUMBNAIL_ENABLED=${THUMBNAIL_ENABLED}" />
</exec>
<exec dir="." executable="../scripts/mkimages.sh"
failonerror="true" output="/dev/null"
/>
<exec dir="." executable="../scripts/gen_gcmid.sh"
output="src/org/eehouse/android/xw4dbg/GCMConsts.java"
failonerror="true" logError="true"
>
<arg value="xw4dbg"/>
</exec>
<exec dir=".." executable="./scripts/genvers.sh">
<arg value="XWords4-dbg"/>
<arg value="xw4dbg"/>
<arg value="${INITIAL_CLIENT_VERS}" />
<arg value="${CHAT_ENABLED}" />
<arg value="${THUMBNAIL_ENABLED}" />
</exec>
<antcall target="my-pre-clean" />
</target>
<target name="-pre-build" depends="my-copy-src">
<antcall target="my-pre-build">
<param name="VARIANT_NAME" value="${VARIANT_NAME}"/>
<param name="APP_NAME" value="cWords-DBG"/>
</antcall>
</target>
<target name="-pre-compile">
<antcall target="my-pre-compile">
<param name="VARIANT_NAME" value="${VARIANT_NAME}"/>
</antcall>
</target>
<!--
<target name="-pre-compile">
</target>
/* This is typically used for code obfuscation.
Compiled code location: ${out.classes.absolute.dir}
If this is not done in place, override ${out.dex.input.absolute.dir} */

View file

@ -32,3 +32,8 @@ game_list_group.xml
smsinviter_item.xml
smsinviter.xml
studylist.xml
loc_list_item.xml
loc_main.xml
loc_item_edit.xml
import_dict_item.xml
list_group.xml

View file

@ -5,3 +5,6 @@ games_list_item_menu.xml
games_list_menu.xml
dicts_menu.xml
studylist.xml
loc_menu.xml
empty.xml
loc_item_menu.xml

View file

@ -0,0 +1 @@
/strings.xml

View file

@ -0,0 +1 @@
/strings.xml

View file

@ -90,3 +90,24 @@ DlgID.java
GamesListActivity.java
GamesListDelegate.java
LookupAlert.java
BoardDelegate.java
ChatDelegate.java
DictBrowseDelegate.java
DictImportDelegate.java
DictsDelegate.java
DrawSelDelegate.java
GameConfigActivity.java
GameConfigDelegate.java
NewGameDelegate.java
RelayGameDelegate.java
StudyListActivity.java
StudyListDelegate.java
BTInviteDelegate.java
InviteDelegate.java
ListDelegateBase.java
PrefsDelegate.java
SMSInviteDelegate.java
DwnldActivity.java
DwnldDelegate.java
GroupStateListener.java
ListGroup.java

View file

@ -0,0 +1,13 @@
/LocItemEditActivity.java
/LocItemEditDelegate.java
LocActivity.java
LocDelegate.java
LocIDs.java
LocIDsData.java
LocListAdapter.java
LocListItem.java
LocSearcher.java
LocUtils.java
XlatingSpinnerAdapter.java
LocItemEditActivity.java
LocItemEditDelegate.java

View file

@ -1,7 +0,0 @@
*.apk
local.properties
bin
gen
libs
proguard.cfg
obj

View file

@ -1,168 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- -*- compile-command: "ant install"; -*- -->
<!-- Copyright (C) 2007 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="org.eehouse.android.xw4sms"
android:versionCode="44"
android:versionName="@string/app_version"
>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7" />
<application android:icon="@drawable/icon48x48"
android:label="@string/app_name"
android:name=".XWApp"
>
<activity android:name="GamesList"
android:label="@string/app_name"
android:launchMode="standard"
android:configChanges="keyboardHidden|orientation"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="DictsActivity"
android:label="@string/title_dicts_list"
android:configChanges="keyboardHidden|orientation"
/>
<activity android:name="NewGameActivity"
android:theme="@android:style/Theme.NoTitleBar"
android:configChanges="keyboardHidden|orientation"
/>
<activity android:name="SMSInviteActivity"
android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait"
/>
<activity android:name="GameConfig"
android:screenOrientation="sensor"
android:configChanges="keyboardHidden|orientation"
>
<intent-filter>
<action android:name="android.intent.action.EDIT" />
</intent-filter>
</activity>
<activity android:name="PrefsActivity"
android:label="@string/title_prefs"
android:screenOrientation="sensor"
android:configChanges="keyboardHidden|orientation"
/>
<activity android:name="BoardActivity"
android:theme="@android:style/Theme.Light"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden"
/>
<activity android:name="LookupActivity"
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.Dialog"
/>
<receiver android:name="RelayReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<receiver android:name="UpdateCheckReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<activity android:name="DispatchNotify"
>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="newxwgame"/>
</intent-filter>
</activity>
<!-- downloading dicts -->
<activity android:name=".DictImportActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog">
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:scheme="file" android:host="*"
android:pathPattern=".*\\.xwd" />
<data android:scheme="http"
android:mimeType="application/x-xwordsdict"
android:host="*"
android:pathPattern=".*\\.xwd" />
</intent-filter>
</activity>
<activity android:name="RelayGameActivity"/>
<activity android:name="DictBrowseActivity"
android:configChanges="keyboardHidden|orientation"
/>
<activity android:name="ChatActivity"
android:configChanges="keyboardHidden|orientation"
/>
<service android:name="RelayService"/>
<receiver android:name=".MountEventReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<data android:scheme="file" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MEDIA_EJECT" />
<data android:scheme="file" />
</intent-filter>
</receiver>
<receiver android:name="SMSReceiver" >
<intent-filter android:priority="999" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<service android:name="SMSService"/>
</application>
</manifest>

View file

@ -1,3 +0,0 @@
BasEnglish2to8.xwd
CollegeEng_2to8.xwd
Top5000.xwd

View file

@ -1,123 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="XWords4" default="release">
<!-- The local.properties file is created and updated by the 'android' tool.
It contains the path to the SDK. It should *NOT* be checked into
Version Control Systems. -->
<loadproperties srcFile="local.properties" />
<!-- The ant.properties file can be created by you. It is only edited by the
'android' tool to add properties to it.
This is the place to change some Ant specific build properties.
Here are some properties you may want to change/update:
source.dir
The name of the source directory. Default is 'src'.
out.dir
The name of the output directory. Default is 'bin'.
For other overridable properties, look at the beginning of the rules
files in the SDK, at tools/ant/build.xml
Properties related to the SDK location or the project target should
be updated using the 'android' tool with the 'update' action.
This file is an integral part of the build system for your
application and should be checked into Version Control Systems.
-->
<property file="ant.properties" />
<!-- The project.properties file is created and updated by the 'android'
tool, as well as ADT.
This contains project specific properties such as project target, and library
dependencies. Lower level build properties are stored in ant.properties
(or in .classpath for Eclipse projects).
This file is an integral part of the build system for your
application and should be checked into Version Control Systems. -->
<loadproperties srcFile="project.properties" />
<!-- quick check on sdk.dir -->
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
unless="sdk.dir"
/>
<target name="-pre-clean">
<exec dir="." executable="../scripts/ndkbuild.sh" output="/dev/null">
<arg value="clean"/>
</exec>
<exec dir="." executable="../scripts/cleanvariants.sh" >
<arg value="--dest-dir"/>
<arg value="./res"/>
<arg value="--dest-dir"/>
<arg value="./src"/>
<arg value="--dest-dir"/>
<arg value="./jni"/>
<arg value="--dest-dir"/>
<arg value="./assets"/>
</exec>
</target>
<!-- extension targets. Uncomment the ones where you want to do custom work
in between standard targets -->
<target name="-pre-build">
<exec dir="." executable="../scripts/mkvariant.sh" output="/dev/null">
<arg value="--variant-name"/>
<arg value="xw4sms"/>
<arg value="--app-name"/>
<arg value="cWords-SMS"/>
<arg value="--dest-dir"/>
<arg value="./res"/>
<arg value="--dest-dir"/>
<arg value="./src"/>
<arg value="--dest-dir"/>
<arg value="./jni"/>
<arg value="--dest-dir"/>
<arg value="./assets"/>
</exec>
<exec dir="." executable="../scripts/ndkbuild.sh" output="/dev/null">
<arg value="-j3"/>
</exec>
<exec dir=".." executable="./scripts/genvers.sh" output="/dev/null">
<arg value="XWords4-sms"/>
<arg value="xw4sms"/>
</exec>
</target>
<!--
<target name="-pre-compile">
</target>
/* This is typically used for code obfuscation.
Compiled code location: ${out.classes.absolute.dir}
If this is not done in place, override ${out.dex.input.absolute.dir} */
<target name="-post-compile">
</target>
-->
<!-- Import the actual build file.
To customize existing targets, there are two options:
- Customize only one target:
- copy/paste the target into this file, *before* the
<import> task.
- customize it to your needs.
- Customize the whole content of build.xml
- copy/paste the content of the rules files (minus the top node)
into this file, replacing the <import> task.
- customize to your needs.
***********************
****** IMPORTANT ******
***********************
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
in order to avoid having your file be overridden by tools such as "android update project"
-->
<!-- version-tag: 1 -->
<import file="${sdk.dir}/tools/ant/build.xml" />
</project>

View file

@ -1,18 +0,0 @@
anddict.c
anddict.h
andglobals.h
andutils.c
andutils.h
drawwrapper.c
drawwrapper.h
jniutlswrapper.c
jniutlswrapper.h
LocalizedStrIncludes.h
paths.h
utils.c
utilwrapper.c
utilwrapper.h
xportwrapper.c
xportwrapper.h
xptypes.h
xwjni.c

View file

@ -1,84 +0,0 @@
# -*- mode: Makefile; compile-command: "cd ../; ${NDK_ROOT}/ndk-build -j3"; -*-
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
COMMON_PATH=../../../common
local_C_INCLUDES+= \
-I$(LOCAL_PATH)/$(COMMON_PATH) \
-I$(LOCAL_PATH)/../../../relay \
local_LDLIBS += -llog
# local_DEBUG = -DMEM_DEBUG -DDEBUG -DENABLE_LOGGING
local_DEFINES += \
$(local_DEBUG) \
-DXWFEATURE_RELAY \
-DXWFEATURE_SMS \
-DXWFEATURE_COMMSACK \
-DXWFEATURE_TURNCHANGENOTIFY \
-DXWFEATURE_CHAT \
-DCOMMS_XPORT_FLAGSPROC \
-DKEY_SUPPORT \
-DXWFEATURE_CROSSHAIRS \
-DPOINTER_SUPPORT \
-DSCROLL_DRAG_THRESHHOLD=1 \
-DDROP_BITMAPS \
-DXWFEATURE_TRAYUNDO_ONE \
-DDISABLE_TILE_SEL \
-DXWFEATURE_BOARDWORDS \
-DXWFEATURE_WALKDICT \
-DXWFEATURE_WALKDICT_FILTER \
-DXWFEATURE_DICTSANITY \
-DFEATURE_TRAY_EDIT \
-DXWFEATURE_BONUSALL \
-DMAX_ROWS=32 \
-DHASH_STREAM \
-DXWFEATURE_BASE64 \
-DINITIAL_CLIENT_VERS=2 \
-DRELAY_ROOM_DEFAULT=\"\" \
-D__LITTLE_ENDIAN \
local_SRC_FILES += \
xwjni.c \
utilwrapper.c \
drawwrapper.c \
xportwrapper.c \
anddict.c \
andutils.c \
jniutlswrapper.c \
COMMON_PATH=../../../common
common_SRC_FILES += \
$(COMMON_PATH)/boarddrw.c \
$(COMMON_PATH)/scorebdp.c \
$(COMMON_PATH)/dragdrpp.c \
$(COMMON_PATH)/pool.c \
$(COMMON_PATH)/tray.c \
$(COMMON_PATH)/dictnry.c \
$(COMMON_PATH)/dictiter.c \
$(COMMON_PATH)/mscore.c \
$(COMMON_PATH)/vtabmgr.c \
$(COMMON_PATH)/strutils.c \
$(COMMON_PATH)/engine.c \
$(COMMON_PATH)/board.c \
$(COMMON_PATH)/mempool.c \
$(COMMON_PATH)/game.c \
$(COMMON_PATH)/server.c \
$(COMMON_PATH)/model.c \
$(COMMON_PATH)/comms.c \
$(COMMON_PATH)/memstream.c \
$(COMMON_PATH)/movestak.c \
$(COMMON_PATH)/dbgutil.c \
LOCAL_CFLAGS+=$(local_C_INCLUDES) $(local_DEFINES) -Wall
LOCAL_SRC_FILES := $(linux_SRC_FILES) $(local_SRC_FILES) $(common_SRC_FILES)
LOCAL_MODULE := xwjni
LOCAL_LDLIBS := -L${SYSROOT}/usr/lib -llog -lz
include $(BUILD_SHARED_LIBRARY)

View file

@ -1,11 +0,0 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "ant.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-7

View file

@ -1,30 +0,0 @@
bluetooth_active.png
bluetooth_disabled.png
dicticon.png
downarrow.png
expander_ic_maximized.9.png
expander_ic_minimized.9.png
flip.png
icon48x48.png
ic_popup_sync_1.png
netarrow_allconn.png
netarrow_someconn.png
netarrow_unconn.png
next_hint.png
origin.png
prev_hint.png
refresh.png
relaygame.png
rightarrow.png
shuffle.png
sologame.png
stat_notify_chat.png
stat_notify_sync.png
undo.png
values.png
zoom.png
sym_action_chat.png
in_arrow.png
out_arrow.png
in_arrow_active.png
out_arrow_active.png

View file

@ -1 +0,0 @@
board.xml

View file

@ -1,31 +0,0 @@
about_dlg.xml
board.xml
btinviter_item.xml
btinviter.xml
chat_history_local.xml
chat_history_remote.xml
chat.xml
color_display.xml
color_edit.xml
dflt_name.xml
dict_browser.xml
dict_browse.xml
divider_view.xml
force_remote.xml
game_config.xml
game_list_item.xml
game_list.xml
import_dict.xml
list_item.xml
lookup.xml
new_game.xml
passwd_view.xml
player_edit.xml
player_list_elem.xml
prefs_w_buttons.xml
relay_game_config.xml
rename_game.xml
smsinviter_item.xml
smsinviter.xml
game_list_tmp.xml
confirm_sms.xml

View file

@ -1 +0,0 @@
board_menu.xml

View file

@ -1,5 +0,0 @@
board_menu.xml
chat_menu.xml
dicts_item_menu.xml
games_list_item_menu.xml
games_list_menu.xml

View file

@ -1,35 +0,0 @@
<html>
<head>
<style type="text/css">
body {font-size: smaller;}
</style>
</head>
<body>
<b>CrossW-SMS 4.4 beta 52 release</b>
<p>This is first release of this variant of Crosswords featuring the
ability to play via SMS</p>
<ul>Other changes
<li>Remember wordlist browser position, word size, etc.</li>
<li>Fix wordlist browser bugs for languages with more than one
letter on a tile</li>
<li>New word lookup URLs for Catalan language lists</li>
<li>Display wordlist comment if present</li>
</ul>
<p>Please remember that this is beta software. Please let me know (at
eehouse@eehouse.org) what's broken and what features you'd most like
to see.</p>
<p>(Website <a href="http://eehouse.org/xw4sms.html">here</a>.)</p>
<p>Thanks!<br>--Eric</p>
</body>
</html>

View file

@ -1 +0,0 @@
strings.xml

View file

@ -1 +0,0 @@
strings.xml

View file

@ -1 +0,0 @@
styles.xml

View file

@ -1 +0,0 @@
strings.xml

View file

@ -1,4 +0,0 @@
common_rsrc.xml
git_string.xml
strings.xml
styles.xml

View file

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_version">4.4 beta 52</string>
</resources>

View file

@ -1 +0,0 @@

View file

@ -1,342 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
>
<PreferenceScreen android:title="@string/prefs_defaults"
android:summary="@string/prefs_defaults_summary"
>
<PreferenceScreen android:title="@string/prefs_names"
android:summary="@string/prefs_names_summary"
>
<org.eehouse.android.xw4sms.XWEditTextPreference
android:key="@string/key_player1_name"
android:title="@string/pref_player1_name"
android:capitalize="words"
android:defaultValue=""
/>
<org.eehouse.android.xw4sms.XWEditTextPreference
android:key="@string/key_player2_name"
android:title="@string/pref_player2_name"
android:capitalize="words"
android:defaultValue="ignored"
android:summary="@string/tell_unused"
android:enabled="false"
/>
<org.eehouse.android.xw4sms.XWEditTextPreference
android:key="@string/key_player3_name"
android:title="@string/pref_player3_name"
android:capitalize="words"
android:defaultValue=""
android:summary="@string/tell_unused"
android:enabled="false"
/>
<org.eehouse.android.xw4sms.XWEditTextPreference
android:key="@string/key_player4_name"
android:title="@string/pref_player4_name"
android:capitalize="words"
android:defaultValue=""
android:summary="@string/tell_unused"
android:enabled="false"
/>
</PreferenceScreen>
<PreferenceScreen android:title="@string/prefs_dicts"
android:summary="@string/prefs_dicts_summary"
>
<org.eehouse.android.xw4sms.DictListPreference
android:key="@string/key_default_dict"
android:title="@string/default_dict"
android:defaultValue="CollegeEng_2to8"
/>
<org.eehouse.android.xw4sms.DictListPreference
android:key="@string/key_default_robodict"
android:title="@string/default_robodict"
android:defaultValue="Top5000"
/>
</PreferenceScreen>
<CheckBoxPreference android:key="@string/key_init_hintsallowed"
android:title="@string/hints_allowed"
android:summary="@string/hints_allowed_sum"
android:defaultValue="true"
/>
<CheckBoxPreference android:key="@string/key_init_nethintsallowed"
android:title="@string/nethints_allowed"
android:summary="@string/nethints_allowed_sum"
android:defaultValue="true"
/>
<CheckBoxPreference android:key="@string/key_init_autojuggle"
android:title="@string/init_autojuggle"
android:summary="@string/init_autojuggle_sum"
android:defaultValue="false"
/>
<org.eehouse.android.xw4sms.XWListPreference
android:key="@string/key_default_phonies"
android:title="@string/default_phonies"
android:entries="@array/phony_names"
android:entryValues="@array/phony_names"
android:defaultValue="@string/phonies_warn"
/>
<CheckBoxPreference android:key="@string/key_default_timerenabled"
android:title="@string/use_timer"
android:defaultValue="false"
/>
<org.eehouse.android.xw4sms.XWEditTextPreference
android:key="@string/key_initial_player_minutes"
android:title="@string/initial_player_minutes"
android:defaultValue="25"
android:numeric="decimal"
/>
<org.eehouse.android.xw4sms.XWListPreference
android:key="@string/key_board_size"
android:title="@string/board_size"
android:entries="@array/board_sizes"
android:entryValues="@array/board_sizes"
android:defaultValue="15x15"
/>
</PreferenceScreen>
<PreferenceScreen android:title="@string/prefs_appearance"
android:summary="@string/prefs_appearance_summary"
>
<org.eehouse.android.xw4sms.XWListPreference
android:key="@string/key_summary_field"
android:title="@string/summary_field"
android:entries="@array/game_summary_values"
android:entryValues="@array/game_summary_values"
android:defaultValue="@string/game_summary_field_opponents"
/>
<CheckBoxPreference android:key="@string/key_hide_intro"
android:title="@string/hide_intro"
android:summary="@string/hide_intro_summary"
android:defaultValue="false"
/>
<CheckBoxPreference android:key="@string/key_hide_title"
android:title="@string/hide_title"
android:summary="@string/hide_title_summary"
android:defaultValue="true"
/>
<CheckBoxPreference android:key="@string/key_show_arrow"
android:title="@string/show_arrow"
android:summary="@string/show_arrow_summary"
android:defaultValue="true"
/>
<CheckBoxPreference android:key="@string/key_keep_screenon"
android:title="@string/keep_screenon"
android:summary="@string/keep_screenon_summary"
android:defaultValue="false"
/>
<PreferenceScreen android:title="@string/prefs_colors"
android:summary="@string/prefs_colors_summary"
>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_player0"
android:title="@string/player0"
android:defaultValue="0x000000"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_player1"
android:title="@string/player1"
android:defaultValue="0xFF0000"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_player2"
android:title="@string/player2"
android:defaultValue="0x0000FF"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_player3"
android:title="@string/player3"
android:defaultValue="0x008F00"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_bonus_l2x"
android:title="@string/bonus_l2x"
android:defaultValue="0xAFAF00"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_bonus_l3x"
android:title="@string/bonus_l3x"
android:defaultValue="0x00AFAF"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_bonus_w2x"
android:title="@string/bonus_w2x"
android:defaultValue="0xAF00AF"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_bonus_w3x"
android:title="@string/bonus_w3x"
android:defaultValue="0xAFAFAF"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_clr_crosshairs"
android:title="@string/clr_crosshairs"
android:defaultValue="0x7070FF"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_clr_bonushint"
android:title="@string/key_bonushint"
android:defaultValue="0x7F7F7F"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_tile_back"
android:title="@string/tile_back"
android:defaultValue="0xFFFF99"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_empty"
android:title="@string/empty"
android:defaultValue="0xFFFFFF"
/>
<org.eehouse.android.xw4sms.EditColorPreference
android:key="@string/key_background"
android:title="@string/background"
android:defaultValue="0xFFFFFF"
/>
</PreferenceScreen>
</PreferenceScreen>
<PreferenceScreen android:title="@string/prefs_behavior"
android:summary="@string/prefs_behavior_summary"
>
<CheckBoxPreference android:key="@string/key_explain_robot"
android:title="@string/explain_robot"
android:summary="@string/explain_robot_summary"
android:defaultValue="true"
/>
<CheckBoxPreference android:key="@string/key_skip_confirm"
android:title="@string/skip_confirm_turn"
android:summary="@string/skip_confirm_turn_summary"
android:defaultValue="false"
/>
<CheckBoxPreference android:key="@string/key_sort_tiles"
android:title="@string/title_sort_tiles"
android:summary="@string/summary_sort_tiles"
android:defaultValue="true"
/>
<CheckBoxPreference android:key="@string/key_ringer_zoom"
android:title="@string/ringer_zoom"
android:summary="@string/ringer_zoom_summary"
android:defaultValue="false"
/>
<CheckBoxPreference android:key="@string/key_hide_crosshairs"
android:title="@string/hide_crosshairs"
android:summary="@string/hide_crosshairs_summary"
android:defaultValue="false"
/>
<CheckBoxPreference android:key="@string/key_peek_other"
android:title="@string/peek_other"
android:summary="@string/peek_other_summary"
android:defaultValue="false"
/>
</PreferenceScreen>
<PreferenceScreen android:title="@string/network_behavior"
android:summary="@string/network_behavior_summary"
android:key="pref_key"
>
<org.eehouse.android.xw4sms.SMSCheckBoxPreference
android:key="@string/key_enable_sms"
android:title="@string/enable_sms"
android:summary="@string/enable_sms_summary"
android:defaultValue="false"
/>
<org.eehouse.android.xw4sms.PollListPreference
android:key="@string/key_connect_frequency"
android:title="@string/connect_frequency"
android:entries="@array/connect_frequencies"
android:entryValues="@array/connect_frequencies_values"
android:defaultValue="900"
/>
<CheckBoxPreference android:key="@string/key_notify_sound"
android:title="@string/notify_sound"
android:summary="@string/notify_other_summary"
android:defaultValue="true"
/>
<CheckBoxPreference android:key="@string/key_notify_vibrate"
android:title="@string/notify_vibrate"
android:summary="@string/notify_other_summary"
android:defaultValue="false"
/>
</PreferenceScreen>
<PreferenceScreen android:title="@string/advanced"
android:summary="@string/advanced_summary"
>
<EditTextPreference android:title="@string/git_rev_title"
android:summary="@string/git_rev"
android:enabled="false"
/>
<CheckBoxPreference android:key="@string/key_logging_on"
android:title="@string/logging_on"
android:defaultValue="false"
/>
<CheckBoxPreference android:key="@string/key_enable_debug"
android:title="Enable debug features"
android:summary="Menuitems etc."
android:defaultValue="false"
/>
<CheckBoxPreference android:key="@string/key_show_sms"
android:title="Show SMS sends, receives"
android:defaultValue="false"
/>
<org.eehouse.android.xw4sms.XWEditTextPreference
android:key="@string/key_relay_host"
android:title="@string/relay_host"
android:defaultValue="@string/default_host"
/>
<org.eehouse.android.xw4sms.XWEditTextPreference
android:key="@string/key_relay_port"
android:title="@string/relay_port"
android:defaultValue="10997"
android:numeric="decimal"
/>
<org.eehouse.android.xw4sms.XWEditTextPreference
android:key="@string/key_proxy_port"
android:title="@string/proxy_port"
android:defaultValue="10998"
android:numeric="decimal"
/>
<org.eehouse.android.xw4sms.XWEditTextPreference
android:key="@string/key_redir_host"
android:title="@string/redir_host"
android:defaultValue="@string/default_host"
/>
<org.eehouse.android.xw4sms.XWEditTextPreference
android:key="@string/key_dict_host"
android:title="@string/dict_host"
android:defaultValue="@string/dict_url"
/>
<org.eehouse.android.xw4sms.XWEditTextPreference
android:key="@string/key_update_url"
android:title="@string/expl_update_url"
android:defaultValue="@string/default_update_url"
/>
<CheckBoxPreference android:key="@string/key_update_prerel"
android:title="Update between releases"
android:summary="Get intermediate builds"
android:defaultValue="false"
/>
</PreferenceScreen>
</PreferenceScreen>

View file

@ -1,64 +0,0 @@
BoardActivity.java
BoardDims.java
BoardView.java
BTInviteActivity.java
BTReceiver.java
BTService.java
ChatActivity.java
CommsTransport.java
DbgUtils.java
DBHelper.java
DBUtils.java
DictBrowseActivity.java
DictImportActivity.java
DictLangCache.java
DictListPreference.java
DictsActivity.java
DictUtils.java
DispatchNotify.java
DlgDelegate.java
EditColorPreference.java
FirstRunDialog.java
GameConfig.java
GameListAdapter.java
GameNamer.java
GamesList.java
GameUtils.java
GitVersion.java
InviteActivity.java
LookupActivity.java
MountEventReceiver.java
MultiMsgSink.java
NetLaunchInfo.java
NetStateCache.java
NetUtils.java
NewGameActivity.java
PollListPreference.java
PrefsActivity.java
RefreshNamesTask.java
RelayGameActivity.java
RelayMsgSink.java
RelayReceiver.java
RelayService.java
SMSInviteActivity.java
SMSListItem.java
SMSReceiver.java
SMSService.java
StatusReceiver.java
Toolbar.java
Utils.java
XWActivity.java
XWConstants.java
XWEditTextPreference.java
XWListActivity.java
XWListAdapter.java
XWListItem.java
XWListPreference.java
MultiService.java
ConnStatusHandler.java
SMSCheckBoxPreference.java
XWPrefs.java
UpdateCheckReceiver.java
ExpiringDelegate.java
ExpiringLinearLayout.java
ExpiringTextView.java

View file

@ -1,79 +0,0 @@
/* -*- compile-command: "cd ../../../../../; ant debug install"; -*- */
/*
* Copyright 2010 - 2011 by Eric House (xwords@eehouse.org). All
* rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.eehouse.android.xw4sms;
import android.app.Application;
import android.content.Context;
import android.os.Build;
import java.util.UUID;
import org.eehouse.android.xw4sms.jni.XwJNI;
public class XWApp extends Application {
public static final boolean DEBUG_LOCKS = false;
public static final boolean BTSUPPORTED = false;
public static final boolean SMSSUPPORTED = true;
public static final String SMS_PUBLIC_HEADER = "-XW4s";
private static UUID s_UUID = null;
private static Boolean s_onEmulator = null;
@Override
public void onCreate()
{
super.onCreate();
// This one line should always get logged even if logging is
// off -- because logging is on by default until logEnable is
// called.
DbgUtils.logf( "XWApp.onCreate(); git_rev=%s",
getString( R.string.git_rev ) );
DbgUtils.logEnable( this );
ConnStatusHandler.loadState( this );
RelayReceiver.RestartTimer( this );
UpdateCheckReceiver.restartTimer( this );
BTService.startService( this );
SMSService.checkForInvites( this );
}
public static UUID getAppUUID()
{
if ( null == s_UUID ) {
s_UUID = UUID.fromString( XwJNI.comms_getUUID() );
}
return s_UUID;
}
public static String getAppName( Context context )
{
return context.getString( R.string.app_name );
}
public static boolean onEmulator()
{
if ( null == s_onEmulator ) {
s_onEmulator = new Boolean( "google_sdk".equals(Build.MODEL) );
}
return s_onEmulator;
}
}

View file

@ -1,17 +0,0 @@
BoardHandler.java
CommonPrefs.java
CommsAddrRec.java
CurGameInfo.java
DictInfo.java
DrawCtx.java
DrawScoreInfo.java
GameSummary.java
JNIThread.java
JNIUtilsImpl.java
JNIUtils.java
LocalPlayer.java
SyncedDraw.java
TransportProcs.java
UtilCtxtImpl.java
UtilCtxt.java
XwJNI.java

View file

@ -5,6 +5,5 @@ bin
gen
libs
proguard.cfg
proguard-project.txt
obj
res/drawable*/*gen.png

View file

@ -22,7 +22,7 @@
to come from a domain that you own or have control over. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.eehouse.android.xw4"
android:versionCode="76"
android:versionCode="84"
android:versionName="@string/app_version"
>
@ -46,6 +46,8 @@
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-feature android:name="android.hardware.telephony"
@ -92,15 +94,20 @@
<activity android:name="NewGameActivity"
android:theme="@android:style/Theme.NoTitleBar"
/>
<activity android:name="BTInviteActivity"
android:label="@string/bt_invite_title"
android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name="SMSInviteActivity"
android:label="@string/sms_invite_title"
android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="sensor"
/>
<activity android:name="GameConfig"
<activity android:name="GameConfigActivity"
android:screenOrientation="sensor"
android:configChanges="keyboardHidden|orientation|screenSize"
>
@ -117,18 +124,21 @@
<activity android:name="BoardActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
/>
<activity android:name="StudyListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<receiver android:name="RelayReceiver">
<receiver android:name="OnBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<receiver android:name="RelayReceiver"/>
<receiver android:name="NagTurnReceiver"/>
<receiver android:name="UpdateCheckReceiver">
<intent-filter>
@ -164,9 +174,11 @@
</activity>
<!-- downloading dicts -->
<activity android:name=".DictImportActivity"
<activity android:name=".DwnldActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog">
android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboardHidden|orientation|screenSize"
>
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
@ -180,13 +192,21 @@
</intent-filter>
</activity>
<activity android:name="RelayGameActivity"/>
<activity android:name="RelayGameActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name="DictBrowseActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name="ChatActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name=".loc.LocActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<activity android:name=".loc.LocItemEditActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
<service android:name="RelayService"/>
@ -201,10 +221,29 @@
</intent-filter>
</receiver>
<receiver android:name="BTReceiver">
<intent-filter>
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
</intent-filter>
<intent-filter>
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
</intent-filter>
</receiver>
<service android:name="BTService"/>
<receiver android:name="SMSReceiver" >
<intent-filter android:priority="999" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.DATA_SMS_RECEIVED" />
<data android:scheme="sms" />
<data android:port="3344" />
<data android:host="*" />
</intent-filter>
</receiver>
<service android:name="SMSService"/>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,62 @@
<html>
<head>
<script>
showSurvey = function() {
var div = document.getElementById('survey');
div.style.display = 'inline';
};
</script>
<style type="text/css">
body {font-size: smaller;}
#survey { display: none; }
h2,h3 { text-align: center; }
</style>
</head>
<body>
<h2>Crosswords 4.4 beta 91 release</h2>
<p>The last release was big (added Bluetooth support) and the next
will be too (rethinking how game invitations work). This one just
cleans up some stuff that was bugging me.</p>
<div id="survey">
<p>Please <a href="https://www.surveymonkey.com/s/GX3XLHR">take
this survey</a> to help determine what gets done next in
Crosswords.</p>
</div>
<h3>New with this release</h3>
<ul>
<li>Add &quot;New group&quot; button to move-game-to-group
alert</li>
<li>Make selection of default language for new games
explicit</li>
<li>When issuing new tiles into tray, sort only the ones to the
right of the divider; leave those to the left alone</li>
<li>When you choose to download a new wordlist while configuring
a new game, assume you want to use it for the game</li>
<li>Fix a few more little bugs and annoyances</li>
</ul>
<p>(The full changelog
is <a href="http://xwords.sf.net/and_changes.php">here</a>.)</p>
<h3>Next up</h3>
<ul>
<li>Fix things so you don&apos;t have to specify how two devices will
communicate: Bluetooth, Relay, SMS - shouldn&apos;t be something you
have to pick. I should just use what works at the time. That&apos;s
the goal anyway.</li>
<li>Offer &quot;Rematch&quot; when game&apos;s over (easy if I get
the above right)</li>
</ul>
<p>This is beta software. Please let me know (email
eehouse@eehouse.org) what&apos;s broken and what features you&apos;d
most like to see. And if you do get a crash, please let your phone
report it to Google so I can see it!</p>
<p>Thanks!<br>--Eric</p>
</body>
</html>

View file

@ -39,6 +39,9 @@
application and should be checked into Version Control Systems. -->
<loadproperties srcFile="project.properties" />
<!-- An attempt to define stuff to be included from multiple build.xml files -->
<import file="../scripts/common_targets.xml" />
<!-- quick check on sdk.dir -->
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
@ -46,62 +49,28 @@
/>
<!-- extension targets. Uncomment the ones where you want to do custom work
in between standard targets -->
<!-- extension targets. Uncomment the ones where you want to do custom work
in between standard targets -->
<property name="INITIAL_CLIENT_VERS" value="4"/>
<target name="-pre-clean">
<exec dir="." executable="../scripts/ndksetup.sh" output="/dev/null"
failonerror="true" >
<arg value="${build.target}"/>
</exec>
<exec dir="." executable="../scripts/ndkbuild.sh" failonerror="true" >
<arg value="clean"/>
</exec>
<property name="VARIANT_NAME" value="xw4"/>
<property name="APP_NAME" value="Crosswords"/>
<exec dir="." executable="../scripts/mkimages.sh"
failonerror="true" output="/dev/null" >
<arg value="--clean"/>
</exec>
</target>
<target name="-pre-clean">
<antcall target="my-pre-clean" />
</target>
<target name="-pre-build">
<exec dir="." executable="../scripts/ndksetup.sh" output="/dev/null">
<arg value="${build.target}"/>
</exec>
<property name="CHAT_ENABLED" value="true" />
<property name="THUMBNAIL_ENABLED" value="true" />
<exec dir="." executable="../scripts/ndkbuild.sh" failonerror="true">
<arg value="BUILD_TARGET=${build.target}" />
<arg value="-j3"/>
<arg value="INITIAL_CLIENT_VERS=${INITIAL_CLIENT_VERS}" />
<arg value="CHAT_ENABLED=${CHAT_ENABLED}" />
<arg value="THUMBNAIL_ENABLED=${THUMBNAIL_ENABLED}" />
</exec>
<exec dir="." executable="../scripts/mkimages.sh"
failonerror="true" output="/dev/null"
/>
<exec dir="." executable="../scripts/gen_gcmid.sh"
output="src/org/eehouse/android/xw4/GCMConsts.java"
logError="true" failonerror="true"
>
<arg value="xw4"/>
</exec>
<exec dir=".." executable="./scripts/genvers.sh" output="ant_out.txt">
<arg value="XWords4"/>
<arg value="xw4"/>
<arg value="${INITIAL_CLIENT_VERS}" />
<arg value="${CHAT_ENABLED}" />
<arg value="${THUMBNAIL_ENABLED}" />
</exec>
<antcall target="my-pre-build" />
</target>
<target name="-pre-compile">
<antcall target="my-pre-compile" />
</target>
<!--
<target name="-pre-compile">
</target>
/* This is typically used for code obfuscation.
Compiled code location: ${out.classes.absolute.dir}
If this is not done in place, override ${out.dex.input.absolute.dir} */

View file

@ -1,9 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg x='0px' y='0px' xml:space='preserve' id='Layer_1' height='32px' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' version='1.1' style='enable-background:new 0 0 32 32;' xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' width='32px' xmlns:xlink='http://www.w3.org/1999/xlink'>
<metadata><rdf:RDF><cc:Work><dc:subject><rdf:Bag><rdf:li>core</rdf:li></rdf:Bag></dc:subject></cc:Work></rdf:RDF></metadata><path d='M26.498,23.393l-4.055-4.056c-0.357-0.356-1.003-0.322-1.65,0.015l-1.77-1.768c2.305-3.011,2.088-7.334-0.667-10.089
c-3-2.999-7.862-2.999-10.862,0c-2.998,3-2.998,7.863,0,10.862c2.756,2.755,7.079,2.973,10.09,0.667l1.769,1.768
c-0.337,0.649-0.372,1.295-0.016,1.651l4.056,4.056c0.512,0.512,1.624,0.23,2.48-0.627C26.729,25.016,27.011,23.904,26.498,23.393z
M8.637,17.215c-2.368-2.369-2.368-6.21,0-8.578c2.37-2.37,6.207-2.368,8.578,0c2.367,2.368,2.367,6.208,0,8.578
C14.844,19.583,11.004,19.583,8.637,17.215z'/>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120"
height="120" xml:space="preserve">
<g
id="g12"
transform="matrix(1.25,0,0,-1.25,0,120)">
<g id='g1532'>
<g id='g1534'>
<g transform='translate(25.91,44.35)' id='g1540'>
<path style='fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none' d='M 0,0 C -7.104,7.11 -7.104,18.63 0,25.74 7.109,32.85 18.62,32.84 25.73,25.74 32.84,18.63 32.84,7.114 25.73,0 18.62,-7.104 7.104,-7.104 0,0 M 53.58,-18.53 41.42,-6.365 C 40.35,-5.297 38.41,-5.398 36.47,-6.41 L 31.16,-1.105 C 38.08,7.928 37.42,20.9 29.16,29.16 20.16,38.16 5.573,38.16 -3.427,29.16 -12.42,20.16 -12.42,5.575 -3.427,-3.425 4.841,-11.69 17.81,-12.34 26.84,-5.426 L 32.15,-10.73 C 31.14,-12.68 31.03,-14.61 32.1,-15.68 L 44.27,-27.85 C 45.81,-29.38 49.14,-28.54 51.71,-25.97 54.28,-23.4 55.12,-20.07 53.58,-18.53' id='path1542'/>
</g>
</g>
</g></g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -16,6 +16,7 @@ endif
LOCAL_DEFINES += \
$(LOCAL_DEBUG) \
-DXWFEATURE_RELAY \
-DXWFEATURE_BLUETOOTH \
-DXWFEATURE_SMS \
-DXWFEATURE_COMMSACK \
-DXWFEATURE_TURNCHANGENOTIFY \
@ -83,7 +84,7 @@ COMMON_SRC_FILES += \
$(COMMON_PATH)/dbgutil.c \
LOCAL_CFLAGS+=$(LOCAL_C_INCLUDES) $(LOCAL_DEFINES)
LOCAL_CFLAGS+=$(LOCAL_C_INCLUDES) $(LOCAL_DEFINES) -Wall -std=c99
LOCAL_SRC_FILES := $(linux_SRC_FILES) $(LOCAL_SRC_FILES) $(COMMON_SRC_FILES)
LOCAL_MODULE := xwjni
LOCAL_LDLIBS := -L${SYSROOT}/usr/lib -llog -lz

View file

@ -19,17 +19,13 @@
# define STR_PHONY_REJECTED 13
# define STRD_CUMULATIVE_SCORE 14
# define STRS_NEW_TILES 15
# define STR_PASSED 16
# define STRSD_SUMMARYSCORED 17
# define STRD_TRADED 18
# define STR_LOSTTURN 19
# define STR_COMMIT_CONFIRM 20
# define STR_BONUS_ALL 21
# define STRD_TURN_SCORE 22
# define STRD_REMAINS_HEADER 23
# define STRD_REMAINS_EXPL 24
# define STR_RESIGNED 25
# define STR_WINNER 26
# define STR_COMMIT_CONFIRM 16
# define STR_BONUS_ALL 17
# define STRD_TURN_SCORE 18
# define STRD_REMAINS_HEADER 19
# define STRD_REMAINS_EXPL 20
# define STR_RESIGNED 21
# define STR_WINNER 22
# define N_AND_USER_STRINGS 26
# define N_AND_USER_STRINGS 22
#endif

View file

@ -518,9 +518,9 @@ static void
and_draw_dictChanged( DrawCtx* dctx, XP_S16 playerNum,
const DictionaryCtxt* dict )
{
XP_LOGF( "%s(dict=%p); code=%x", __func__, dict, andDictID(dict) );
AndDraw* draw = (AndDraw*)dctx;
if ( NULL != draw->jdraw ) {
if ( !!dict && !!draw->jdraw ) {
XP_LOGF( "%s(dict=%p); code=%x", __func__, dict, andDictID(dict) );
XP_LangCode code = 0; /* A null dict means no-lang */
if ( NULL != dict ) {
code = dict_getLangCode( dict );

View file

@ -208,11 +208,14 @@ static const SetInfo bd_ints[] = {
,ARR_MEMBER( BoardDims, top )
,ARR_MEMBER( BoardDims, width )
,ARR_MEMBER( BoardDims, height )
,ARR_MEMBER( BoardDims, scoreLeft )
,ARR_MEMBER( BoardDims, scoreHt )
,ARR_MEMBER( BoardDims, scoreWidth )
,ARR_MEMBER( BoardDims, boardWidth )
,ARR_MEMBER( BoardDims, boardHt )
,ARR_MEMBER( BoardDims, trayLeft )
,ARR_MEMBER( BoardDims, trayTop )
,ARR_MEMBER( BoardDims, trayWidth )
,ARR_MEMBER( BoardDims, trayHt )
,ARR_MEMBER( BoardDims, cellSize )
,ARR_MEMBER( BoardDims, maxCellSize )
@ -478,7 +481,7 @@ typedef struct _JNIState {
JNIEXPORT jint JNICALL
Java_org_eehouse_android_xw4_jni_XwJNI_initJNI
( JNIEnv* env, jclass C, int jniGlobalPtr )
( JNIEnv* env, jclass C, int jniGlobalPtr, jint seed )
{
/* Why am I doing this twice? */
/* struct timeval tv; */
@ -494,9 +497,8 @@ Java_org_eehouse_android_xw4_jni_XwJNI_initJNI
MPASSIGN( state->mpool, mpool );
globals->vtMgr = make_vtablemgr(MPPARM_NOCOMMA(mpool));
XP_U32 secs = getCurSeconds( env );
XP_LOGF( "initing srand with %d", secs );
srandom( secs );
XP_LOGF( "%s: initing srand with %d", __func__, seed );
srandom( seed );
return (jint) state;
}
@ -1131,22 +1133,24 @@ Java_org_eehouse_android_xw4_jni_XwJNI_model_1getNumTilesInTray
return result;
}
JNIEXPORT jstring JNICALL
JNIEXPORT void JNICALL
Java_org_eehouse_android_xw4_jni_XwJNI_model_1getPlayersLastScore
(JNIEnv* env, jclass C, jint gamePtr, jint player )
( JNIEnv* env, jclass C, jint gamePtr, jint player, jobject jlmi )
{
jstring result = NULL;
XWJNI_START();
XP_ASSERT( !!state->game.model );
XP_UCHAR buf[64] = {0};
XP_U16 buflen = sizeof(buf);
if ( !model_getPlayersLastScore( state->game.model, player, buf,
&buflen ) ) {
buf[0] = '\0';
LastMoveInfo lmi;
XP_Bool valid = model_getPlayersLastScore( state->game.model,
player, &lmi );
setBool( env, jlmi, "isValid", valid );
if ( valid ) {
setInt( env, jlmi, "score", lmi.score );
setInt( env, jlmi, "nTiles", lmi.nTiles );
setInt( env, jlmi, "moveType", lmi.moveType );
setString( env, jlmi, "name", lmi.name );
setString( env, jlmi, "word", lmi.word );
}
result = (*env)->NewStringUTF( env, buf );
XWJNI_END();
return result;
}
JNIEXPORT jstring JNICALL
@ -1173,17 +1177,19 @@ and_send_on_close( XWStreamCtxt* stream, void* closure )
comms_send( state->game.comms, stream );
}
JNIEXPORT void JNICALL
JNIEXPORT jboolean JNICALL
Java_org_eehouse_android_xw4_jni_XwJNI_server_1initClientConnection
( JNIEnv* env, jclass C, jint gamePtr )
{
jboolean result;
LOG_FUNC();
XWJNI_START_GLOBALS();
XWStreamCtxt* stream = and_empty_stream( MPPARM(mpool) globals );
stream_setOnCloseProc( stream, and_send_on_close );
server_initClientConnection( state->game.server, stream );
result = server_initClientConnection( state->game.server, stream );
XWJNI_END();
LOG_RETURN_VOID();
LOG_RETURNF( "%d", result );
return result;
}
JNIEXPORT void JNICALL

View file

@ -0,0 +1,20 @@
# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

View file

@ -8,7 +8,7 @@
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-14

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/board_root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"

View file

@ -2,87 +2,57 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/board_root"
android:orientation="vertical"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical|center_horizontal"
>
<org.eehouse.android.xw4.BoardView
android:id="@+id/board_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="true"
android:clickable="true"
android:longClickable="true"
android:drawSelectorOnTop="false"
android:layout_gravity="center_vertical|center_horizontal"
/>
<LinearLayout android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<org.eehouse.android.xw4.BoardView
android:id="@+id/board_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="true"
android:clickable="true"
android:longClickable="true"
android:drawSelectorOnTop="false"
android:layout_gravity="center_horizontal"
android:background="@android:color/transparent"
/>
<LinearLayout android:id="@+id/exchange_buttons"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FF000000"
>
<Button android:id="@+id/exchange_commit"
android:text="@string/button_trade_commit"
style="@style/spaced_buttons"
/>
<Button android:id="@+id/exchange_cancel"
android:text="@string/button_trade_cancel"
style="@style/spaced_buttons"
/>
</LinearLayout>
<HorizontalScrollView android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout android:id="@+id/toolbar_horizontal"
<LinearLayout android:id="@+id/exchange_buttons"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:visibility="gone"
>
<Button android:id="@+id/exchange_commit"
android:text="@string/button_trade_commit"
style="@style/evenly_spaced_horizontal"
/>
<Button android:id="@+id/exchange_cancel"
android:text="@string/button_trade_cancel"
style="@style/evenly_spaced_horizontal"
/>
</LinearLayout>
<ImageButton android:id="@+id/prevhint_button_horizontal"
style="@style/toolbar_button"
android:src="@drawable/prev_hint"
/>
<ImageButton android:id="@+id/nexthint_button_horizontal"
style="@style/toolbar_button"
android:src="@drawable/next_hint"
/>
<ImageButton android:id="@+id/shuffle_button_horizontal"
style="@style/toolbar_button"
android:src="@drawable/shuffle"
/>
<ImageButton android:id="@+id/undo_button_horizontal"
style="@style/toolbar_button"
android:src="@drawable/undo"
/>
<ImageButton android:id="@+id/dictlist_button_horizontal"
style="@style/toolbar_button"
android:src="@drawable/dicticon"
/>
<ImageButton android:id="@+id/chat_button_horizontal"
style="@style/toolbar_button"
android:src="@drawable/stat_notify_chat"
/>
<ImageButton android:id="@+id/values_button_horizontal"
style="@style/toolbar_button"
android:src="@drawable/values"
/>
<ImageButton android:id="@+id/flip_button_horizontal"
style="@style/toolbar_button"
android:src="@drawable/flip"
/>
<ImageButton android:id="@+id/zoom_button_horizontal"
style="@style/toolbar_button"
android:src="@drawable/zoom"
/>
</LinearLayout>
</HorizontalScrollView>
<!-- toolbar goes inside me -->
<HorizontalScrollView android:id="@+id/tbar_parent_hor"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
/>
</LinearLayout>
<!-- toolbar goes inside me -->
<ScrollView android:id="@+id/tbar_parent_vert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
/>
</LinearLayout>

View file

@ -10,6 +10,7 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:padding="8dp"
/>
<ListView android:id="@id/android:list"
@ -25,8 +26,8 @@
android:layout_height="wrap_content"
>
<Button android:id="@+id/button_rescan"
android:text="@string/bt_pick_rescan_button"
style="@style/spaced_buttons"
android:text="@string/bt_pick_addall_button"
style="@style/evenly_spaced_horizontal"
/>
<!-- <Button android:id="@+id/button_reconfigure" -->
<!-- android:text="@string/bt_pick_reconfig_button" -->
@ -36,7 +37,7 @@
<!-- /> -->
<Button android:id="@+id/button_clear"
android:text="@string/bt_pick_clear_button"
style="@style/spaced_buttons"
style="@style/evenly_spaced_horizontal"
/>
</LinearLayout>

View file

@ -4,19 +4,24 @@
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<ExpandableListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:drawSelectorOnTop="false"/>
>
<Button android:id="@+id/download"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/download_dicts"
/>
<CheckBox android:id="@+id/show_remote"
android:text="@string/show_remote"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:textSize="20dp"
/>
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:layout_weight="1"
android:drawSelectorOnTop="false"
/>
</LinearLayout>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<org.eehouse.android.xw4.HeaderWithExpander
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="#FF7F7F7F"
android:layout_marginTop="10dip"
>
<TextView android:id="@+id/label"
style="@style/expander_label"
/>
<ImageButton android:id="@+id/expander"
style="@style/expander_button"
/>
</org.eehouse.android.xw4.HeaderWithExpander>

View file

@ -5,19 +5,11 @@
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="#FF7F7F7F"
style="@style/group_items"
>
<TextView android:id="@+id/game_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:textStyle="italic"
android:layout_weight="1"
style="@style/expander_label"
/>
<ImageButton android:id="@+id/expander"

View file

@ -15,7 +15,7 @@
<TextView android:id="@+id/view_unloaded"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center"
android:paddingTop="10dp"
@ -31,7 +31,7 @@
>
<ImageView android:id="@+id/msg_marker"
android:layout_width="wrap_content"
android:layout_width="42dp"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical|center_horizontal"
android:paddingLeft="8dip"

View file

@ -2,23 +2,16 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="10sp"
>
<TextView android:id="@+id/dwnld_message"
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:layout_height="fill_parent"
android:layout_weight="1"
android:drawSelectorOnTop="false"
/>
<ProgressBar android:id="@+id/progress_bar"
style="@android:style/Widget.ProgressBar.Horizontal"
android:indeterminate="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_margin="5sp"
/>
</LinearLayout>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="10sp"
android:layout_weight="1"
>
<TextView android:id="@+id/dwnld_message"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ProgressBar android:id="@+id/progress_bar"
style="@android:style/Widget.ProgressBar.Horizontal"
android:indeterminate="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5sp"
/>
</LinearLayout>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<org.eehouse.android.xw4.ListGroup
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
style="@style/group_items"
>
<TextView android:id="@+id/game_name"
style="@style/expander_label"
/>
<ImageButton android:id="@+id/expander"
style="@style/expander_button"
/>
</org.eehouse.android.xw4.ListGroup>

View file

@ -1,44 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<org.eehouse.android.xw4.XWListItem
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/player_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="true"
android:clickable="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:longClickable="true"
android:background="@android:drawable/list_selector_background"
>
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="true"
android:clickable="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:longClickable="true"
android:background="@android:drawable/list_selector_background"
android:orientation="vertical"
android:paddingTop="5dp"
android:paddingBottom="5dp"
>
<CheckBox android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
/>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView android:id="@+id/text_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
<CheckBox android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
/>
<TextView android:id="@+id/text_item2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:visibility="gone"
/>
<TextView android:id="@+id/text_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:singleLine="true"
/>
<ImageButton android:id="@+id/del"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@android:drawable/ic_delete"
android:visibility="invisible"
/>
<TextView android:id="@+id/text_item2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:singleLine="true"
android:visibility="gone"
/>
</org.eehouse.android.xw4.XWListItem>
<ImageButton android:id="@+id/del"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@android:drawable/ic_delete"
android:visibility="invisible"
/>
</LinearLayout>
</org.eehouse.android.xw4.XWListItem>

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView style="@style/config_separator"
android:id="@+id/english_label"
/>
<TextView android:id="@+id/english_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView style="@style/config_separator"
android:id="@+id/blessed_label"
/>
<TextView android:id="@+id/xlated_view_blessed"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView style="@style/config_separator"
android:id="@+id/local_label"
/>
<EditText android:id="@+id/xlated_view_local"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<org.eehouse.android.xw4.loc.LocListItem
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView android:id="@+id/english_view"
style="@style/evenly_spaced_horizontal"
android:singleLine="true"
/>
<TextView android:id="@+id/xlated_view"
style="@style/evenly_spaced_horizontal"
android:singleLine="true"
/>
</org.eehouse.android.xw4.loc.LocListItem>

View file

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView android:text="@string/loc_filters_prompt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Spinner android:id="@+id/filters"
android:layout_weight="1"
android:prompt="@string/loc_filters_prompt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/loc_filters"
/>
</LinearLayout>
<!-- Search field -->
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView android:text="@string/loc_search_prompt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<EditText android:id="@+id/loc_search_field"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:layout_weight="1"
/>
<ImageButton android:id="@+id/loc_search_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/search__gen"
android:gravity="right"
android:layout_weight="0"
/>
</LinearLayout>
<!-- table header -->
<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView style="@style/evenly_spaced_horizontal"
android:text="@string/loc_main_english"
android:gravity="center"
/>
<TextView android:id="@+id/other_lang"
style="@style/evenly_spaced_horizontal"
android:gravity="center"
/>
</LinearLayout>
<!-- main list (of pairs loaded dynamically) -->
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:drawSelectorOnTop="false"
/>
</LinearLayout>

View file

@ -1,18 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 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.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
@ -25,207 +11,210 @@
>
<!-- local game -->
<TextView style="@style/config_separator"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/newgame_local_header"
/>
<LinearLayout android:orientation="horizontal"
<include layout="@layout/expander_header"
android:id="@+id/newgame_local_header"
/>
<LinearLayout android:orientation="vertical"
android:id="@+id/newgame_local_hideable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:layout_marginBottom="10dip"
>
<ImageView android:src="@drawable/sologame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:layout_gravity="center_vertical|center_horizontal"
/>
<TextView android:id="@+id/newgame_local_desc"
style="@style/relay_explain"
/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:layout_marginBottom="10dip"
>
<ImageView android:src="@drawable/sologame"
style="@style/newgame_connicon"
/>
<TextView android:id="@+id/newgame_local_desc"
style="@style/relay_explain"
/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/newgame_local"
android:text="@string/newgame_local"
style="@style/spaced_buttons"
/>
<Button android:id="@+id/newgame_local_config"
android:text="@string/newgame_local_config"
style="@style/spaced_buttons"
/>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/newgame_local"
android:text="@string/newgame_local"
style="@style/evenly_spaced_horizontal"
/>
<Button android:id="@+id/newgame_local_config"
android:text="@string/newgame_configure_first"
style="@style/evenly_spaced_horizontal"
/>
</LinearLayout>
</LinearLayout>
<!-- networked game -->
<TextView style="@style/config_separator"
android:layout_marginTop="10dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/newgame_networked_header"
/>
<LinearLayout android:orientation="horizontal"
<include layout="@layout/expander_header"
android:id="@+id/newgame_relay_header"
/>
<!-- Wrapper so can show/hide -->
<LinearLayout android:orientation="vertical"
android:id="@+id/newgame_networked_hideable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:layout_marginBottom="10dip"
>
<ImageView android:src="@drawable/relaygame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:layout_gravity="center_vertical|center_horizontal"
/>
<TextView android:text="@string/newgame_networked_desc"
style="@style/relay_explain"
/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/newgame_invite_net"
android:text="@string/newgame_invite"
style="@style/spaced_buttons"
/>
<Button android:id="@+id/newgame_net_config"
android:text="@string/newgame_net_config"
style="@style/spaced_buttons"
/>
</LinearLayout>
<!-- SMS game -->
<TextView android:id="@+id/sms_separator"
style="@style/config_separator"
android:layout_marginTop="10dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/newgame_sms_header"
android:visibility="gone"
/>
<LinearLayout android:id="@+id/sms_disabled"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
>
<TextView android:text="@string/sms_disabled"
style="@style/relay_explain"
/>
<Button android:id="@+id/newgame_enable_sms"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/newgame_enable_sms"
/>
</LinearLayout>
<LinearLayout android:id="@+id/sms_stuff"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:layout_marginBottom="10dip"
>
<ImageView android:src="@android:drawable/sym_action_chat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:layout_marginBottom="10dip"
>
<ImageView android:src="@drawable/relaygame"
style="@style/newgame_connicon"
/>
<TextView android:text="@string/sms_networked_desc"
<TextView android:text="@string/newgame_networked_desc"
style="@style/relay_explain"
/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/newgame_invite_sms"
android:text="@string/newgame_invite"
style="@style/spaced_buttons"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/newgame_net_invite"
android:text="@string/newgame_invite"
style="@style/evenly_spaced_horizontal"
/>
<Button android:id="@+id/newgame_sms_config"
android:text="@string/newgame_net_config"
style="@style/spaced_buttons"
/>
<Button android:id="@+id/newgame_net_config"
android:text="@string/newgame_configure_first"
style="@style/evenly_spaced_horizontal"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<!-- Bluetooth -->
<TextView android:id="@+id/bt_separator"
style="@style/config_separator"
android:layout_marginTop="10dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/newgame_bt_header"
android:visibility="gone"
/>
<LinearLayout android:id="@+id/bt_disabled"
android:orientation="vertical"
<include layout="@layout/expander_header"
android:id="@+id/newgame_bt_header"
android:visibility="gone"
/>
<LinearLayout android:orientation="vertical"
android:id="@+id/newgame_bt_hideable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:visibility="gone"
>
<TextView android:text="@string/bt_disabled"
style="@style/relay_explain"
/>
<Button android:id="@+id/newgame_enable_bt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/newgame_enable_bt"
/>
</LinearLayout>
<LinearLayout android:id="@+id/bt_stuff"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:layout_marginBottom="10dip"
>
<ImageView android:src="@android:drawable/stat_sys_data_bluetooth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:layout_gravity="center_vertical|center_horizontal"
/>
<TextView android:text="@string/bt_networked_desc"
<LinearLayout android:id="@+id/bt_disabled"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
>
<TextView android:text="@string/bt_disabled"
style="@style/relay_explain"
/>
<Button android:id="@+id/newgame_enable_bt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/newgame_enable_bt"
/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/newgame_invite_bt"
android:text="@string/newgame_invite"
style="@style/spaced_buttons"
/>
<LinearLayout android:id="@+id/bt_stuff"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:layout_marginBottom="10dip"
>
<ImageView android:src="@android:drawable/stat_sys_data_bluetooth"
style="@style/newgame_connicon"
/>
<TextView android:text="@string/bt_networked_desc"
style="@style/relay_explain"
/>
</LinearLayout>
<Button android:id="@+id/newgame_bt_config"
android:text="@string/newgame_net_config"
style="@style/spaced_buttons"
/>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/newgame_bt_invite"
android:text="@string/newgame_invite"
style="@style/evenly_spaced_horizontal"
/>
<Button android:id="@+id/newgame_bt_config"
android:text="@string/newgame_configure_first"
style="@style/evenly_spaced_horizontal"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout> <!--bluetooth-->
<!-- SMS game -->
<include layout="@layout/expander_header"
android:id="@+id/newgame_sms_header"
/>
<!-- Wrapper so can show/hide -->
<LinearLayout android:orientation="vertical"
android:id="@+id/newgame_sms_hideable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout android:id="@+id/sms_disabled"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
>
<TextView android:text="@string/sms_disabled"
style="@style/relay_explain"
/>
<Button android:id="@+id/newgame_enable_sms"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_go_settings"
/>
</LinearLayout>
<LinearLayout android:id="@+id/sms_stuff"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:layout_marginBottom="10dip"
>
<ImageView android:src="@android:drawable/sym_action_chat"
style="@style/newgame_connicon"
/>
<TextView android:text="@string/sms_networked_desc"
style="@style/relay_explain"
/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/newgame_sms_invite"
android:text="@string/newgame_invite"
style="@style/evenly_spaced_horizontal"
/>
<Button android:id="@+id/newgame_sms_config"
android:text="@string/newgame_configure_first"
style="@style/evenly_spaced_horizontal"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout> <!-- SMS game -->
</LinearLayout>
</ScrollView>

View file

@ -21,11 +21,11 @@
>
<Button android:id="@+id/revert_colors"
android:text="@string/button_revert_colors"
style="@style/spaced_buttons"
style="@style/evenly_spaced_horizontal"
/>
<Button android:id="@+id/revert_all"
android:text="@string/button_revert_all"
style="@style/spaced_buttons"
style="@style/evenly_spaced_horizontal"
/>
</LinearLayout>
</LinearLayout>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent"
>
<TextView android:id="@+id/details"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
/>
<Button android:id="@+id/download_button"
android:text="@string/button_download"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>

View file

@ -41,7 +41,7 @@
>
<Button android:id="@+id/button_add"
android:text="@string/button_sms_add"
style="@style/spaced_buttons"
style="@style/evenly_spaced_horizontal"
/>
<ImageButton android:id="@+id/manual_add_button"
android:layout_height="fill_parent"
@ -51,7 +51,7 @@
/>
<Button android:id="@+id/button_clear"
android:text="@string/bt_pick_clear_button"
style="@style/spaced_buttons"
style="@style/evenly_spaced_horizontal"
/>
</LinearLayout>

View file

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent"
>
<ImageButton android:id="@+id/prevhint_button"
style="@style/toolbar_button"
android:src="@drawable/prev_hint"
/>
<ImageButton android:id="@+id/nexthint_button"
style="@style/toolbar_button"
android:src="@drawable/next_hint"
/>
<ImageButton android:id="@+id/shuffle_button"
style="@style/toolbar_button"
android:src="@drawable/shuffle"
/>
<ImageButton android:id="@+id/undo_button"
style="@style/toolbar_button"
android:src="@drawable/undo"
/>
<ImageButton android:id="@+id/dictlist_button"
style="@style/toolbar_button"
android:src="@drawable/dicticon"
/>
<ImageButton android:id="@+id/chat_button"
style="@style/toolbar_button"
android:src="@drawable/stat_notify_chat"
/>
<ImageButton android:id="@+id/values_button"
style="@style/toolbar_button"
android:src="@drawable/values"
/>
<ImageButton android:id="@+id/flip_button"
style="@style/toolbar_button"
android:src="@drawable/flip"
/>
<ImageButton android:id="@+id/zoom_button"
style="@style/toolbar_button"
android:src="@drawable/zoom"
/>
</LinearLayout>

View file

@ -0,0 +1,6 @@
/board_menu.xml
/chat_menu.xml
/dicts_menu.xml
/games_list_menu.xml
/loc_menu.xml
/studylist.xml

View file

@ -3,13 +3,19 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/dicts_download"
android:title="@string/download_dicts"
android:title="@string/button_download"
android:icon="@drawable/download__gen"
android:showAsAction="ifRoom"
/>
<item android:id="@+id/dicts_deselect_all"
android:title="@string/slmenu_deselect_all"
android:icon="@drawable/clear_all__gen"
android:showAsAction="ifRoom"
/>
<item android:id="@+id/dicts_delete"
android:title="@string/list_item_delete"
android:title="@string/delete_dicts"
android:icon="@drawable/content_discard__gen"
android:showAsAction="ifRoom"
/>

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Nothing goes here - though Translate may get added -->
</menu>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/loc_item_clear"
android:title="@string/loc_item_clear"
android:icon="@drawable/content_discard__gen"
android:showAsAction="ifRoom"
/>
<item android:id="@+id/loc_item_check"
android:title="@string/loc_item_check"
/>
<item android:id="@+id/loc_item_copy_eng"
android:title="@string/loc_item_copy_eng"
/>
<item android:id="@+id/loc_item_copy_bless"
android:title="@string/loc_item_copy_bless"
/>
</menu>

View file

@ -1,33 +0,0 @@
<html>
<head>
<style type="text/css">
body {font-size: smaller;}
</style>
</head>
<body>
<b>Crosswords 4.4 beta 83 release</b>
<h3>New with this release</h3>
<ul>
<li>Bug fix (obscure): don't mangle unicode model names</li>
</ul>
<h3>Next up</h3>
<ul>
<li>Much better support for localization</li>
<li>Look, again, at play via Bluetooth now that HTC phones aren't quite so common</li>
<li>Fix SMS play for KitKat</li>
<li>Offer "Rematch" when game's over</li>
</ul>
<p>(The full changelog
is <a href="http://xwords.sf.net/and_changes.php">here</a>.)</p>
<p>Please remember that this is beta software. Please let me know (at
eehouse@eehouse.org) what's broken and what features you'd most like
to see.</p>
<p>Thanks!<br>--Eric</p>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more