diff --git a/samples/notifications/default.properties b/samples/notifications/default.properties index 7027a19..fc667cd 100644 --- a/samples/notifications/default.properties +++ b/samples/notifications/default.properties @@ -9,4 +9,4 @@ # Project target. target=android-5 -android.library.reference.1=../cicada/cicadalib +android.library.reference.1=../../cicadalib diff --git a/samples/phonestatus/.classpath b/samples/phonestatus/.classpath new file mode 100644 index 0000000..7011827 --- /dev/null +++ b/samples/phonestatus/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/samples/phonestatus/.project b/samples/phonestatus/.project new file mode 100644 index 0000000..36367ee --- /dev/null +++ b/samples/phonestatus/.project @@ -0,0 +1,45 @@ + + + PhoneStatus + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + + + ApolloLib_src + 2 + _android_ApolloLib_c6286f16/src + + + CicadaLib_src + 2 + _android_CicadaLib_8981e3e4/src + + + diff --git a/samples/phonestatus/AndroidManifest.xml b/samples/phonestatus/AndroidManifest.xml new file mode 100644 index 0000000..f25421e --- /dev/null +++ b/samples/phonestatus/AndroidManifest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/samples/phonestatus/default.properties b/samples/phonestatus/default.properties new file mode 100644 index 0000000..c33f3d2 --- /dev/null +++ b/samples/phonestatus/default.properties @@ -0,0 +1,12 @@ +# 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, +# "build.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-8 +android.library.reference.1=../../cicadalib diff --git a/samples/phonestatus/proguard.cfg b/samples/phonestatus/proguard.cfg new file mode 100644 index 0000000..b1cdf17 --- /dev/null +++ b/samples/phonestatus/proguard.cfg @@ -0,0 +1,40 @@ +-optimizationpasses 5 +-dontusemixedcaseclassnames +-dontskipnonpubliclibraryclasses +-dontpreverify +-verbose +-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* + +-keep public class * extends android.app.Activity +-keep public class * extends android.app.Application +-keep public class * extends android.app.Service +-keep public class * extends android.content.BroadcastReceiver +-keep public class * extends android.content.ContentProvider +-keep public class * extends android.app.backup.BackupAgentHelper +-keep public class * extends android.preference.Preference +-keep public class com.android.vending.licensing.ILicensingService + +-keepclasseswithmembernames class * { + native ; +} + +-keepclasseswithmembers class * { + public (android.content.Context, android.util.AttributeSet); +} + +-keepclasseswithmembers class * { + public (android.content.Context, android.util.AttributeSet, int); +} + +-keepclassmembers class * extends android.app.Activity { + public void *(android.view.View); +} + +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keep class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator *; +} diff --git a/samples/phonestatus/res/drawable-hdpi/icon.png b/samples/phonestatus/res/drawable-hdpi/icon.png new file mode 100644 index 0000000..8074c4c Binary files /dev/null and b/samples/phonestatus/res/drawable-hdpi/icon.png differ diff --git a/samples/phonestatus/res/drawable-ldpi/icon.png b/samples/phonestatus/res/drawable-ldpi/icon.png new file mode 100644 index 0000000..1095584 Binary files /dev/null and b/samples/phonestatus/res/drawable-ldpi/icon.png differ diff --git a/samples/phonestatus/res/drawable-mdpi/icon.png b/samples/phonestatus/res/drawable-mdpi/icon.png new file mode 100644 index 0000000..a07c69f Binary files /dev/null and b/samples/phonestatus/res/drawable-mdpi/icon.png differ diff --git a/samples/phonestatus/res/values/strings.xml b/samples/phonestatus/res/values/strings.xml new file mode 100644 index 0000000..01f230e --- /dev/null +++ b/samples/phonestatus/res/values/strings.xml @@ -0,0 +1,4 @@ + + + Phone Status + diff --git a/samples/phonestatus/src/com/hydraproductions/cicada/phonestatus/PhoneStatus.java b/samples/phonestatus/src/com/hydraproductions/cicada/phonestatus/PhoneStatus.java new file mode 100644 index 0000000..798ba9d --- /dev/null +++ b/samples/phonestatus/src/com/hydraproductions/cicada/phonestatus/PhoneStatus.java @@ -0,0 +1,102 @@ +package com.hydraproductions.cicada.phonestatus; + +import org.cicadasong.cicadalib.CicadaApp; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Typeface; + +import android.telephony.PhoneStateListener; +import android.telephony.TelephonyManager; +import android.telephony.SignalStrength; // API Level 7+ +import android.util.Log; + +/** + * @See http://developer.android.com/reference/android/telephony/SignalStrength.html#getGsmSignalStrength%28%29 + * @See 3GPP TS 27.007 v6.3.0 (2003-06) - Section 8.5 - Signal Quality +CSQ + * @author Dominic Clifton + */ +public class PhoneStatus extends CicadaApp { + + public static final String TAG = PhoneStatus.class.getSimpleName(); + + private Paint paint; + private TelephonyManager telephonyManager; + private StatusPhoneStateListener phoneStateListener; + float signalStrengthPercentage; + + final static short GSM_STRENGTH_MIN = 0; + final static short GSM_STRENGTH_MAX = 31; + final static short GSM_STRENGTH_UNKNOWN = 99; + + protected float calculateSignalStrengthPercentage(SignalStrength signalStrength) { + // TODO add CDMA signal strength calculations + int gsmSignalStrength = signalStrength.getGsmSignalStrength(); + Log.i(TAG, String.format("GSM Signal Strength: %d", gsmSignalStrength)); + if (gsmSignalStrength == GSM_STRENGTH_MAX) { + return 0; + } + return (float)(gsmSignalStrength * 100) / GSM_STRENGTH_UNKNOWN; + } + + protected void updateSignalStrength(SignalStrength signalStrength) { + signalStrengthPercentage = calculateSignalStrengthPercentage(signalStrength); + + if (!PhoneStatus.this.isActive()) { + return; + } + invalidate(); + } + + + private class StatusPhoneStateListener extends PhoneStateListener { + @Override + public void onSignalStrengthsChanged(SignalStrength signalStrength) { + updateSignalStrength(signalStrength); + } + }; + + @Override + public void onCreate() { + super.onCreate(); + phoneStateListener = new StatusPhoneStateListener(); + telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); + } + + @Override + public String getAppName() { + return getString(R.string.app_name); + } + + @Override + protected void onResume() { + paint = new Paint(); + paint.setTextAlign(Paint.Align.CENTER); + paint.setTypeface(Typeface.DEFAULT_BOLD); + paint.setAntiAlias(false); + paint.setTextSize(16); + + telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); + + invalidate(); + } + + @Override + protected void onPause() { + telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_NONE); + } + + @Override + protected void onDraw(Canvas canvas) { + int x = canvas.getWidth() / 2; + int y = (int) (canvas.getHeight() - paint.ascent()) / 2; + String readout = String.format("%3.2f%%", signalStrengthPercentage); + canvas.drawText(readout, x, y, paint); + } + + @Override + protected void onButtonPress(WatchButton button) { + // TODO Auto-generated method stub + } +} diff --git a/samples/stopwatch/AndroidManifest.xml b/samples/stopwatch/AndroidManifest.xml index bb18ddd..b054cf1 100644 --- a/samples/stopwatch/AndroidManifest.xml +++ b/samples/stopwatch/AndroidManifest.xml @@ -1,6 +1,6 @@ diff --git a/samples/stopwatch/res/values/strings.xml b/samples/stopwatch/res/values/strings.xml index 7b94ef3..9962d36 100644 --- a/samples/stopwatch/res/values/strings.xml +++ b/samples/stopwatch/res/values/strings.xml @@ -1,4 +1,4 @@ - StopWatch + Stopwatch diff --git a/samples/stopwatch/src/com/hydraproductions/cicada/StopWatch.java b/samples/stopwatch/src/com/hydraproductions/cicada/stopwatch/StopWatch.java similarity index 94% rename from samples/stopwatch/src/com/hydraproductions/cicada/StopWatch.java rename to samples/stopwatch/src/com/hydraproductions/cicada/stopwatch/StopWatch.java index d464e99..12a984d 100644 --- a/samples/stopwatch/src/com/hydraproductions/cicada/StopWatch.java +++ b/samples/stopwatch/src/com/hydraproductions/cicada/stopwatch/StopWatch.java @@ -1,4 +1,4 @@ -package com.hydraproductions.cicada; +package com.hydraproductions.cicada.stopwatch; /** * Stopwatch example