seperated how and what into diffrent activitys

This commit is contained in:
2011-08-07 00:38:11 +00:00
parent 87417dfc81
commit c7cc1faabb
19 changed files with 778 additions and 513 deletions

View File

@@ -8,7 +8,7 @@
<attribute name="javadoc_location" value="http://tcdevsvn1/ShyHookdocumentation"/> <attribute name="javadoc_location" value="http://tcdevsvn1/ShyHookdocumentation"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="src" path="LocationLib_src"/>
<classpathentry kind="src" path="ExceptionHandlerLib_src"/> <classpathentry kind="src" path="ExceptionHandlerLib_src"/>
<classpathentry kind="src" path="LocationLib_src"/>
<classpathentry kind="output" path="bin"/> <classpathentry kind="output" path="bin"/>
</classpath> </classpath>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.TwentyCodes.android.LocationRinger" package="com.TwentyCodes.android.LocationRinger"
android:installLocation="internalOnly" android:versionName="1.0" android:versionCode="18"> android:installLocation="internalOnly" android:versionName="1.0" android:versionCode="20">
<uses-sdk android:minSdkVersion="7" /> <uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
@@ -18,14 +18,14 @@
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name"> <application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:label="@string/app_name" android:name="LocationRinger" android:configChanges="keyboard|orientation"> <activity android:label="@string/app_name" android:configChanges="keyboard|orientation" android:name="LocationRinger">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<uses-library android:name="com.google.android.maps"/> <uses-library android:name="com.google.android.maps"/>
<activity android:name=".ui.RingerInformationActivity" android:configChanges="keyboard|orientation"></activity> <activity android:name=".ui.WhatActivity" android:configChanges="keyboard|orientation"></activity>
<receiver android:name=".receivers.SystemReceiver" android:enabled="true" android:exported="true" android:process=":SysyemEventReceiver"> <receiver android:name=".receivers.SystemReceiver" android:enabled="true" android:exported="true" android:process=":SysyemEventReceiver">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action> <action android:name="android.intent.action.BOOT_COMPLETED"></action>
@@ -49,5 +49,6 @@
</receiver> </receiver>
<activity android:name="com.TwentyCodes.android.exception.ExceptionReportActivity" android:configChanges="keyboard|orientation"></activity> <activity android:name="com.TwentyCodes.android.exception.ExceptionReportActivity" android:configChanges="keyboard|orientation"></activity>
<activity android:name="com.TwentyCodes.android.SkyHook.Splash" android:screenOrientation="portrait" android:configChanges="keyboard|orientation"></activity> <activity android:name="com.TwentyCodes.android.SkyHook.Splash" android:screenOrientation="portrait" android:configChanges="keyboard|orientation"></activity>
<activity android:name=".ui.HowActivity"></activity>
</application> </application>
</manifest> </manifest>

View File

@@ -6,10 +6,11 @@
# The following is for using our custom server based exception handler web application # The following is for using our custom server based exception handler web application
# HTTP ONLY
# server is the physical web address for your server # server is the physical web address for your server
# file is the path to your filing script # file is the path to your filing script
# get is the path to your json retrieval script # get is the path to your json retrieval script
server = http://powers.doesntexist.com:666/ server = http://powers.doesntexist.com:666
file = /index.php?post=1 file = /index.php?post=1
#get = /index.php?get=1 #get = /index.php?get=1

View File

@@ -30,65 +30,69 @@ public final class R {
public static final int skyhook_logo_alpha_small=0x7f020007; public static final int skyhook_logo_alpha_small=0x7f020007;
public static final int statusbar_icon=0x7f020008; public static final int statusbar_icon=0x7f020008;
public static final int tc_logo_complete=0x7f020009; public static final int tc_logo_complete=0x7f020009;
public static final int user=0x7f02000a; public static final int user_arrow_animation_1=0x7f02000a;
public static final int user_arrow_animation_2=0x7f02000b;
public static final int user_arrow_animation_3=0x7f02000c;
public static final int userarrow=0x7f02000d;
} }
public static final class id { public static final class id {
public static final int add_a_feature_label=0x7f070029; public static final int add_a_feature_label=0x7f070038;
public static final int add_feature_button=0x7f07002a; public static final int add_feature_button=0x7f07001d;
public static final int add_ringer_button=0x7f070030; public static final int add_ringer_button=0x7f070024;
public static final int add_ringer_button_hint=0x7f070032; public static final int add_ringer_button_hint=0x7f070026;
public static final int address=0x7f070002; public static final int address=0x7f070002;
public static final int address_list=0x7f070003; public static final int address_list=0x7f070003;
public static final int alarm_volume=0x7f070004; public static final int alarm_volume=0x7f070004;
public static final int alarm_volume_info=0x7f070023; public static final int alarm_volume_info=0x7f070033;
public static final int bluetooth_toggle=0x7f070026; public static final int bluetooth_toggle=0x7f070036;
public static final int buttons=0x7f07001a; public static final int buttons=0x7f07000d;
public static final int data_label=0x7f070024; public static final int data_label=0x7f070034;
public static final int description=0x7f070006; public static final int description=0x7f070006;
public static final int exception_text=0x7f070008; public static final int exception_text=0x7f070008;
public static final int exception_title=0x7f070007; public static final int exception_title=0x7f070007;
public static final int info=0x7f07001f; public static final int info=0x7f07002f;
public static final int map_controls=0x7f07000e; public static final int map_controls=0x7f070011;
public static final int map_edit_toggle=0x7f07000f; public static final int map_edit_toggle=0x7f070012;
public static final int map_info=0x7f070028; public static final int map_info=0x7f07000f;
public static final int map_mode=0x7f07002e; public static final int map_mode=0x7f070021;
public static final int mapview=0x7f070011; public static final int mapview=0x7f070014;
public static final int mark_my_location=0x7f07002c; public static final int mark_my_location=0x7f07001f;
public static final int msg=0x7f07000a; public static final int msg=0x7f07000a;
public static final int msg_scrollview=0x7f070009; public static final int msg_scrollview=0x7f070009;
public static final int music_volume=0x7f070012; public static final int music_volume=0x7f070015;
public static final int music_volume_info=0x7f070022; public static final int music_volume_info=0x7f070032;
public static final int my_location=0x7f07002d; public static final int my_location=0x7f070020;
public static final int notification_ringtone=0x7f070015; public static final int notification_ringtone=0x7f070018;
public static final int notification_ringtone_button=0x7f070014; public static final int notification_ringtone_button=0x7f070017;
public static final int notification_ringtone_info=0x7f070021; public static final int notification_ringtone_info=0x7f070031;
public static final int notification_ringtone_volume=0x7f070016; public static final int notification_ringtone_volume=0x7f070019;
public static final int notification_silent_toggle=0x7f070013; public static final int notification_silent_toggle=0x7f070016;
public static final int ok=0x7f070001; public static final int ok=0x7f070001;
public static final int ok_button=0x7f07000b; public static final int ok_button=0x7f07000b;
public static final int radius=0x7f070010; public static final int radius=0x7f070013;
public static final int ringer_enabled_checkbox=0x7f07000d; public static final int ringer_enabled_checkbox=0x7f070010;
public static final int ringer_list=0x7f070031; public static final int ringer_list=0x7f070025;
public static final int ringer_name=0x7f07001e; public static final int ringer_name=0x7f07002e;
public static final int ringer_options=0x7f07001c; public static final int ringer_options=0x7f07002c;
public static final int ringer_toggle=0x7f07001d; public static final int ringer_toggle=0x7f07002d;
public static final int ringtone=0x7f070035; public static final int ringerinfpager=0x7f070023;
public static final int ringtone_button=0x7f070034; public static final int ringtone=0x7f070029;
public static final int ringtone_info=0x7f070020; public static final int ringtone_button=0x7f070028;
public static final int ringtone_silent_toggle=0x7f070033; public static final int ringtone_info=0x7f070030;
public static final int ringtone_volume=0x7f070036; public static final int ringtone_silent_toggle=0x7f070027;
public static final int save_ringer_button=0x7f07002b; public static final int ringtone_volume=0x7f07002a;
public static final int scrollview=0x7f07001b; public static final int save_ringer_button=0x7f07001e;
public static final int search=0x7f07002f; public static final int scrollview=0x7f07000e;
public static final int search=0x7f070022;
public static final int search_progress=0x7f070000; public static final int search_progress=0x7f070000;
public static final int send=0x7f070005; public static final int send=0x7f070005;
public static final int skyhook_img=0x7f070017; public static final int skyhook_img=0x7f07001a;
public static final int tc_img=0x7f070019; public static final int tc_img=0x7f07001c;
public static final int text=0x7f070018; public static final int text=0x7f07001b;
public static final int update_interval=0x7f070037; public static final int update_interval=0x7f07002b;
public static final int update_interval_info=0x7f070027; public static final int update_interval_info=0x7f070037;
public static final int widget_get_location_button=0x7f07000c; public static final int widget_get_location_button=0x7f07000c;
public static final int wifi_toggle=0x7f070025; public static final int wifi_toggle=0x7f070035;
} }
public static final class layout { public static final class layout {
public static final int address_dialog=0x7f030000; public static final int address_dialog=0x7f030000;
@@ -97,18 +101,20 @@ public final class R {
public static final int exception_list_item=0x7f030003; public static final int exception_list_item=0x7f030003;
public static final int first_boot_dialog=0x7f030004; public static final int first_boot_dialog=0x7f030004;
public static final int get_location_widget=0x7f030005; public static final int get_location_widget=0x7f030005;
public static final int list_item=0x7f030006; public static final int how=0x7f030006;
public static final int map_info=0x7f030007; public static final int list_item=0x7f030007;
public static final int music_volume=0x7f030008; public static final int map_info=0x7f030008;
public static final int notification_ringtone=0x7f030009; public static final int music_volume=0x7f030009;
public static final int powered_by_skyhook=0x7f03000a; public static final int notification_ringtone=0x7f03000a;
public static final int report_list_activity=0x7f03000b; public static final int powered_by_skyhook=0x7f03000b;
public static final int ringer_info=0x7f03000c; public static final int report_list_activity=0x7f03000c;
public static final int ringer_info_button_bar=0x7f03000d; public static final int ringer_info_button_bar=0x7f03000d;
public static final int ringer_list=0x7f03000e; public static final int ringer_information=0x7f03000e;
public static final int ringtone=0x7f03000f; public static final int ringer_list=0x7f03000f;
public static final int simple_list_item=0x7f030010; public static final int ringtone=0x7f030010;
public static final int update_interval=0x7f030011; public static final int simple_list_item=0x7f030011;
public static final int update_interval=0x7f030012;
public static final int what=0x7f030013;
} }
public static final class string { public static final class string {
public static final int about=0x7f050020; public static final int about=0x7f050020;

View File

@@ -30,65 +30,69 @@ public final class R {
public static final int skyhook_logo_alpha_small=0x7f020007; public static final int skyhook_logo_alpha_small=0x7f020007;
public static final int statusbar_icon=0x7f020008; public static final int statusbar_icon=0x7f020008;
public static final int tc_logo_complete=0x7f020009; public static final int tc_logo_complete=0x7f020009;
public static final int user=0x7f02000a; public static final int user_arrow_animation_1=0x7f02000a;
public static final int user_arrow_animation_2=0x7f02000b;
public static final int user_arrow_animation_3=0x7f02000c;
public static final int userarrow=0x7f02000d;
} }
public static final class id { public static final class id {
public static final int add_a_feature_label=0x7f070029; public static final int add_a_feature_label=0x7f070038;
public static final int add_feature_button=0x7f07002a; public static final int add_feature_button=0x7f07001d;
public static final int add_ringer_button=0x7f070030; public static final int add_ringer_button=0x7f070024;
public static final int add_ringer_button_hint=0x7f070032; public static final int add_ringer_button_hint=0x7f070026;
public static final int address=0x7f070002; public static final int address=0x7f070002;
public static final int address_list=0x7f070003; public static final int address_list=0x7f070003;
public static final int alarm_volume=0x7f070004; public static final int alarm_volume=0x7f070004;
public static final int alarm_volume_info=0x7f070023; public static final int alarm_volume_info=0x7f070033;
public static final int bluetooth_toggle=0x7f070026; public static final int bluetooth_toggle=0x7f070036;
public static final int buttons=0x7f07001a; public static final int buttons=0x7f07000d;
public static final int data_label=0x7f070024; public static final int data_label=0x7f070034;
public static final int description=0x7f070006; public static final int description=0x7f070006;
public static final int exception_text=0x7f070008; public static final int exception_text=0x7f070008;
public static final int exception_title=0x7f070007; public static final int exception_title=0x7f070007;
public static final int info=0x7f07001f; public static final int info=0x7f07002f;
public static final int map_controls=0x7f07000e; public static final int map_controls=0x7f070011;
public static final int map_edit_toggle=0x7f07000f; public static final int map_edit_toggle=0x7f070012;
public static final int map_info=0x7f070028; public static final int map_info=0x7f07000f;
public static final int map_mode=0x7f07002e; public static final int map_mode=0x7f070021;
public static final int mapview=0x7f070011; public static final int mapview=0x7f070014;
public static final int mark_my_location=0x7f07002c; public static final int mark_my_location=0x7f07001f;
public static final int msg=0x7f07000a; public static final int msg=0x7f07000a;
public static final int msg_scrollview=0x7f070009; public static final int msg_scrollview=0x7f070009;
public static final int music_volume=0x7f070012; public static final int music_volume=0x7f070015;
public static final int music_volume_info=0x7f070022; public static final int music_volume_info=0x7f070032;
public static final int my_location=0x7f07002d; public static final int my_location=0x7f070020;
public static final int notification_ringtone=0x7f070015; public static final int notification_ringtone=0x7f070018;
public static final int notification_ringtone_button=0x7f070014; public static final int notification_ringtone_button=0x7f070017;
public static final int notification_ringtone_info=0x7f070021; public static final int notification_ringtone_info=0x7f070031;
public static final int notification_ringtone_volume=0x7f070016; public static final int notification_ringtone_volume=0x7f070019;
public static final int notification_silent_toggle=0x7f070013; public static final int notification_silent_toggle=0x7f070016;
public static final int ok=0x7f070001; public static final int ok=0x7f070001;
public static final int ok_button=0x7f07000b; public static final int ok_button=0x7f07000b;
public static final int radius=0x7f070010; public static final int radius=0x7f070013;
public static final int ringer_enabled_checkbox=0x7f07000d; public static final int ringer_enabled_checkbox=0x7f070010;
public static final int ringer_list=0x7f070031; public static final int ringer_list=0x7f070025;
public static final int ringer_name=0x7f07001e; public static final int ringer_name=0x7f07002e;
public static final int ringer_options=0x7f07001c; public static final int ringer_options=0x7f07002c;
public static final int ringer_toggle=0x7f07001d; public static final int ringer_toggle=0x7f07002d;
public static final int ringtone=0x7f070035; public static final int ringerinfpager=0x7f070023;
public static final int ringtone_button=0x7f070034; public static final int ringtone=0x7f070029;
public static final int ringtone_info=0x7f070020; public static final int ringtone_button=0x7f070028;
public static final int ringtone_silent_toggle=0x7f070033; public static final int ringtone_info=0x7f070030;
public static final int ringtone_volume=0x7f070036; public static final int ringtone_silent_toggle=0x7f070027;
public static final int save_ringer_button=0x7f07002b; public static final int ringtone_volume=0x7f07002a;
public static final int scrollview=0x7f07001b; public static final int save_ringer_button=0x7f07001e;
public static final int search=0x7f07002f; public static final int scrollview=0x7f07000e;
public static final int search=0x7f070022;
public static final int search_progress=0x7f070000; public static final int search_progress=0x7f070000;
public static final int send=0x7f070005; public static final int send=0x7f070005;
public static final int skyhook_img=0x7f070017; public static final int skyhook_img=0x7f07001a;
public static final int tc_img=0x7f070019; public static final int tc_img=0x7f07001c;
public static final int text=0x7f070018; public static final int text=0x7f07001b;
public static final int update_interval=0x7f070037; public static final int update_interval=0x7f07002b;
public static final int update_interval_info=0x7f070027; public static final int update_interval_info=0x7f070037;
public static final int widget_get_location_button=0x7f07000c; public static final int widget_get_location_button=0x7f07000c;
public static final int wifi_toggle=0x7f070025; public static final int wifi_toggle=0x7f070035;
} }
public static final class layout { public static final class layout {
public static final int address_dialog=0x7f030000; public static final int address_dialog=0x7f030000;
@@ -97,18 +101,20 @@ public final class R {
public static final int exception_list_item=0x7f030003; public static final int exception_list_item=0x7f030003;
public static final int first_boot_dialog=0x7f030004; public static final int first_boot_dialog=0x7f030004;
public static final int get_location_widget=0x7f030005; public static final int get_location_widget=0x7f030005;
public static final int list_item=0x7f030006; public static final int how=0x7f030006;
public static final int map_info=0x7f030007; public static final int list_item=0x7f030007;
public static final int music_volume=0x7f030008; public static final int map_info=0x7f030008;
public static final int notification_ringtone=0x7f030009; public static final int music_volume=0x7f030009;
public static final int powered_by_skyhook=0x7f03000a; public static final int notification_ringtone=0x7f03000a;
public static final int report_list_activity=0x7f03000b; public static final int powered_by_skyhook=0x7f03000b;
public static final int ringer_info=0x7f03000c; public static final int report_list_activity=0x7f03000c;
public static final int ringer_info_button_bar=0x7f03000d; public static final int ringer_info_button_bar=0x7f03000d;
public static final int ringer_list=0x7f03000e; public static final int ringer_information=0x7f03000e;
public static final int ringtone=0x7f03000f; public static final int ringer_list=0x7f03000f;
public static final int simple_list_item=0x7f030010; public static final int ringtone=0x7f030010;
public static final int update_interval=0x7f030011; public static final int simple_list_item=0x7f030011;
public static final int update_interval=0x7f030012;
public static final int what=0x7f030013;
} }
public static final class string { public static final class string {
public static final int about=0x7f050020; public static final int about=0x7f050020;

View File

@@ -30,65 +30,69 @@ public final class R {
public static final int skyhook_logo_alpha_small=0x7f020007; public static final int skyhook_logo_alpha_small=0x7f020007;
public static final int statusbar_icon=0x7f020008; public static final int statusbar_icon=0x7f020008;
public static final int tc_logo_complete=0x7f020009; public static final int tc_logo_complete=0x7f020009;
public static final int user=0x7f02000a; public static final int user_arrow_animation_1=0x7f02000a;
public static final int user_arrow_animation_2=0x7f02000b;
public static final int user_arrow_animation_3=0x7f02000c;
public static final int userarrow=0x7f02000d;
} }
public static final class id { public static final class id {
public static final int add_a_feature_label=0x7f070029; public static final int add_a_feature_label=0x7f070038;
public static final int add_feature_button=0x7f07002a; public static final int add_feature_button=0x7f07001d;
public static final int add_ringer_button=0x7f070030; public static final int add_ringer_button=0x7f070024;
public static final int add_ringer_button_hint=0x7f070032; public static final int add_ringer_button_hint=0x7f070026;
public static final int address=0x7f070002; public static final int address=0x7f070002;
public static final int address_list=0x7f070003; public static final int address_list=0x7f070003;
public static final int alarm_volume=0x7f070004; public static final int alarm_volume=0x7f070004;
public static final int alarm_volume_info=0x7f070023; public static final int alarm_volume_info=0x7f070033;
public static final int bluetooth_toggle=0x7f070026; public static final int bluetooth_toggle=0x7f070036;
public static final int buttons=0x7f07001a; public static final int buttons=0x7f07000d;
public static final int data_label=0x7f070024; public static final int data_label=0x7f070034;
public static final int description=0x7f070006; public static final int description=0x7f070006;
public static final int exception_text=0x7f070008; public static final int exception_text=0x7f070008;
public static final int exception_title=0x7f070007; public static final int exception_title=0x7f070007;
public static final int info=0x7f07001f; public static final int info=0x7f07002f;
public static final int map_controls=0x7f07000e; public static final int map_controls=0x7f070011;
public static final int map_edit_toggle=0x7f07000f; public static final int map_edit_toggle=0x7f070012;
public static final int map_info=0x7f070028; public static final int map_info=0x7f07000f;
public static final int map_mode=0x7f07002e; public static final int map_mode=0x7f070021;
public static final int mapview=0x7f070011; public static final int mapview=0x7f070014;
public static final int mark_my_location=0x7f07002c; public static final int mark_my_location=0x7f07001f;
public static final int msg=0x7f07000a; public static final int msg=0x7f07000a;
public static final int msg_scrollview=0x7f070009; public static final int msg_scrollview=0x7f070009;
public static final int music_volume=0x7f070012; public static final int music_volume=0x7f070015;
public static final int music_volume_info=0x7f070022; public static final int music_volume_info=0x7f070032;
public static final int my_location=0x7f07002d; public static final int my_location=0x7f070020;
public static final int notification_ringtone=0x7f070015; public static final int notification_ringtone=0x7f070018;
public static final int notification_ringtone_button=0x7f070014; public static final int notification_ringtone_button=0x7f070017;
public static final int notification_ringtone_info=0x7f070021; public static final int notification_ringtone_info=0x7f070031;
public static final int notification_ringtone_volume=0x7f070016; public static final int notification_ringtone_volume=0x7f070019;
public static final int notification_silent_toggle=0x7f070013; public static final int notification_silent_toggle=0x7f070016;
public static final int ok=0x7f070001; public static final int ok=0x7f070001;
public static final int ok_button=0x7f07000b; public static final int ok_button=0x7f07000b;
public static final int radius=0x7f070010; public static final int radius=0x7f070013;
public static final int ringer_enabled_checkbox=0x7f07000d; public static final int ringer_enabled_checkbox=0x7f070010;
public static final int ringer_list=0x7f070031; public static final int ringer_list=0x7f070025;
public static final int ringer_name=0x7f07001e; public static final int ringer_name=0x7f07002e;
public static final int ringer_options=0x7f07001c; public static final int ringer_options=0x7f07002c;
public static final int ringer_toggle=0x7f07001d; public static final int ringer_toggle=0x7f07002d;
public static final int ringtone=0x7f070035; public static final int ringerinfpager=0x7f070023;
public static final int ringtone_button=0x7f070034; public static final int ringtone=0x7f070029;
public static final int ringtone_info=0x7f070020; public static final int ringtone_button=0x7f070028;
public static final int ringtone_silent_toggle=0x7f070033; public static final int ringtone_info=0x7f070030;
public static final int ringtone_volume=0x7f070036; public static final int ringtone_silent_toggle=0x7f070027;
public static final int save_ringer_button=0x7f07002b; public static final int ringtone_volume=0x7f07002a;
public static final int scrollview=0x7f07001b; public static final int save_ringer_button=0x7f07001e;
public static final int search=0x7f07002f; public static final int scrollview=0x7f07000e;
public static final int search=0x7f070022;
public static final int search_progress=0x7f070000; public static final int search_progress=0x7f070000;
public static final int send=0x7f070005; public static final int send=0x7f070005;
public static final int skyhook_img=0x7f070017; public static final int skyhook_img=0x7f07001a;
public static final int tc_img=0x7f070019; public static final int tc_img=0x7f07001c;
public static final int text=0x7f070018; public static final int text=0x7f07001b;
public static final int update_interval=0x7f070037; public static final int update_interval=0x7f07002b;
public static final int update_interval_info=0x7f070027; public static final int update_interval_info=0x7f070037;
public static final int widget_get_location_button=0x7f07000c; public static final int widget_get_location_button=0x7f07000c;
public static final int wifi_toggle=0x7f070025; public static final int wifi_toggle=0x7f070035;
} }
public static final class layout { public static final class layout {
public static final int address_dialog=0x7f030000; public static final int address_dialog=0x7f030000;
@@ -97,18 +101,20 @@ public final class R {
public static final int exception_list_item=0x7f030003; public static final int exception_list_item=0x7f030003;
public static final int first_boot_dialog=0x7f030004; public static final int first_boot_dialog=0x7f030004;
public static final int get_location_widget=0x7f030005; public static final int get_location_widget=0x7f030005;
public static final int list_item=0x7f030006; public static final int how=0x7f030006;
public static final int map_info=0x7f030007; public static final int list_item=0x7f030007;
public static final int music_volume=0x7f030008; public static final int map_info=0x7f030008;
public static final int notification_ringtone=0x7f030009; public static final int music_volume=0x7f030009;
public static final int powered_by_skyhook=0x7f03000a; public static final int notification_ringtone=0x7f03000a;
public static final int report_list_activity=0x7f03000b; public static final int powered_by_skyhook=0x7f03000b;
public static final int ringer_info=0x7f03000c; public static final int report_list_activity=0x7f03000c;
public static final int ringer_info_button_bar=0x7f03000d; public static final int ringer_info_button_bar=0x7f03000d;
public static final int ringer_list=0x7f03000e; public static final int ringer_information=0x7f03000e;
public static final int ringtone=0x7f03000f; public static final int ringer_list=0x7f03000f;
public static final int simple_list_item=0x7f030010; public static final int ringtone=0x7f030010;
public static final int update_interval=0x7f030011; public static final int simple_list_item=0x7f030011;
public static final int update_interval=0x7f030012;
public static final int what=0x7f030013;
} }
public static final class string { public static final class string {
public static final int about=0x7f050020; public static final int about=0x7f050020;

View File

@@ -32,7 +32,7 @@
android:hint="@string/address" android:hint="@string/address"
android:id="@+id/address" android:id="@+id/address"
android:layout_toLeftOf="@id/ok" android:layout_toLeftOf="@id/ok"
/> android:inputType="textPostalAddress"/>
</RelativeLayout> </RelativeLayout>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- buttons -->
<include
android:id="@+id/buttons"
layout="@layout/ringer_info_button_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"/>
<com.TwentyCodes.android.LocationRinger.ui.ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:id="@+id/scrollview"
android:layout_above="@id/buttons"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<!-- Location Options -->
<include android:id="@+id/map_info"
layout="@layout/map_info"
android:layout_width="match_parent"
android:layout_height="350dip"
android:layout_alignParentBottom="true"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"/>
</RelativeLayout>
</com.TwentyCodes.android.LocationRinger.ui.ScrollView>
</RelativeLayout>

View File

@@ -51,7 +51,7 @@
android:id="@+id/mapview" android:id="@+id/mapview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:apiKey="0rKmsWMM0D-K15bEM_kwabPbNhsn4dp4rcq2q5Q" android:apiKey="0rKmsWMM0D-KC9KXr1WbA5aEb-2ozQ0SHTvV46g"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_below="@id/map_controls" android:layout_below="@id/map_controls"
/> />

View File

@@ -40,7 +40,7 @@
android:id="@+id/notification_ringtone" android:id="@+id/notification_ringtone"
android:editable="false" android:editable="false"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content"/> android:layout_height="wrap_content" android:cursorVisible="false"/>
<TextView <TextView
android:text="@string/volume" android:text="@string/volume"

View File

@@ -0,0 +1,17 @@
<?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">
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/ringerinfpager">
</android.support.v4.view.ViewPager>
</LinearLayout>

View File

@@ -42,7 +42,7 @@
android:id="@+id/ringtone" android:id="@+id/ringtone"
android:editable="false" android:editable="false"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content"/> android:layout_height="wrap_content" android:cursorVisible="false"/>
<TextView <TextView
android:text="@string/volume" android:text="@string/volume"

View File

@@ -25,11 +25,12 @@
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:id="@+id/scrollview" android:id="@+id/scrollview"
> >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_alignParentTop="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout <LinearLayout
android:id="@+id/ringer_options" android:id="@+id/ringer_options"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
@@ -142,18 +143,8 @@
android:visibility="gone" android:visibility="gone"
/> />
</LinearLayout> </LinearLayout>
</LinearLayout>
<!-- Location Options -->
<include android:id="@+id/map_info"
layout="@layout/map_info"
android:layout_width="match_parent"
android:layout_height="350dip"
android:layout_alignParentBottom="true"
android:layout_below="@id/info"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"/>
</RelativeLayout>
</com.TwentyCodes.android.LocationRinger.ui.ScrollView> </com.TwentyCodes.android.LocationRinger.ui.ScrollView>
</RelativeLayout> </RelativeLayout>

View File

@@ -8,14 +8,14 @@ package com.TwentyCodes.android.LocationRinger;
import android.os.Bundle; import android.os.Bundle;
import com.TwentyCodes.android.LocationRinger.ui.RingerListActivity; import com.TwentyCodes.android.LocationRinger.ui.ListActivity;
import com.TwentyCodes.android.exception.ExceptionHandler; import com.TwentyCodes.android.exception.ExceptionHandler;
/** /**
* This is the main Activity for Location Ringer * This is the main Activity for Location Ringer
* @author ricky barrette * @author ricky barrette
*/ */
public class LocationRinger extends RingerListActivity { public class LocationRinger extends ListActivity {
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {

View File

@@ -47,7 +47,7 @@ public class RingerDatabase {
/* /*
* database information values * database information values
*/ */
private final int DATABASE_VERSION = 3; private final int DATABASE_VERSION = 4;
/* /*
* the following is for the table that holds the other table names * the following is for the table that holds the other table names
@@ -58,15 +58,15 @@ public class RingerDatabase {
/* /*
* Database keys * Database keys
*/ */
public final static String KEY_RADIUS = "radius";
public final static String KEY_LOCATION_LAT = "location_lat";
public final static String KEY_LOCATION_LON = "location_lon";
public final static String KEY_RINGER_NAME = "ringer_name"; public final static String KEY_RINGER_NAME = "ringer_name";
public final static String KEY_RINGTONE = "home_ringtone"; public final static String KEY_RINGTONE = "home_ringtone";
public final static String KEY_NOTIFICATION_RINGTONE = "notification_ringtone"; public final static String KEY_NOTIFICATION_RINGTONE = "notification_ringtone";
public final static String KEY_RINGTONE_IS_SILENT = "ringtone_is_silent"; public final static String KEY_RINGTONE_IS_SILENT = "ringtone_is_silent";
public final static String KEY_NOTIFICATION_IS_SILENT = "notification_is_silent"; public final static String KEY_NOTIFICATION_IS_SILENT = "notification_is_silent";
public final static String KEY_IS_ENABLED = "is_enabled"; public final static String KEY_IS_ENABLED = "is_enabled";
public final static String KEY_RADIUS = "radius";
public final static String KEY_LOCATION_LAT = "location_lat";
public final static String KEY_LOCATION_LON = "location_lon";
public final static String KEY_RINGTONE_URI = "ringtone_uri"; public final static String KEY_RINGTONE_URI = "ringtone_uri";
public final static String KEY_NOTIFICATION_RINGTONE_URI = "away_notification_uri"; public final static String KEY_NOTIFICATION_RINGTONE_URI = "away_notification_uri";
public final static String KEY_RINGTONE_VOLUME = "ringtone_volume"; public final static String KEY_RINGTONE_VOLUME = "ringtone_volume";
@@ -165,10 +165,7 @@ private class OpenHelper extends SQLiteOpenHelper {
db.execSQL("CREATE TABLE " + RINGER_TABLE + db.execSQL("CREATE TABLE " + RINGER_TABLE +
"(id INTEGER PRIMARY KEY, " + "(id INTEGER PRIMARY KEY, " +
KEY_RINGER_NAME+" TEXT, " + KEY_RINGER_NAME+" TEXT, " +
KEY_IS_ENABLED+" TEXT, " + KEY_IS_ENABLED+" TEXT)");
KEY_RADIUS+" INTEGER, " +
KEY_LOCATION_LAT+" INTEGER, " +
KEY_LOCATION_LON+" INTEGER)");
db.execSQL("CREATE TABLE " + RINGER_INFO_TABLE + db.execSQL("CREATE TABLE " + RINGER_INFO_TABLE +
"(id INTEGER PRIMARY KEY, " + "(id INTEGER PRIMARY KEY, " +
KEY_RINGER_NAME+" TEXT, " + KEY_RINGER_NAME+" TEXT, " +
@@ -232,6 +229,31 @@ private class OpenHelper extends SQLiteOpenHelper {
convert2to3(db); convert2to3(db);
//remove old tables //remove old tables
db.execSQL("DROP TABLE IF EXISTS two"); db.execSQL("DROP TABLE IF EXISTS two");
case 3:
Cursor c = db.query(RINGER_TABLE, new String[] { "id", KEY_RINGER_NAME, KEY_LOCATION_LAT, KEY_LOCATION_LON, KEY_RADIUS }, null, null, null, null, null);;
c.moveToFirst();
if (c.moveToFirst()) {
do {
if(Debug.DEBUG)
Log.d(TAG, "Moving: "+c.getInt(0)+" "+c.getString(1)+" "+c.getInt(2)+", "+c.getInt(3)+" @ "+ c.getInt(4) +"m");
ContentValues ringer = new ContentValues();
ContentValues info = new ContentValues();
ringer.put(KEY_RINGER_NAME, c.getString(1));
info.put(KEY_LOCATION_LAT, c.getInt(2));
info.put(KEY_LOCATION_LON, c.getInt(3));
info.put(KEY_RADIUS, c.getInt(4));
updateRinger(c.getInt(0), ringer, info);
} while (c.moveToNext());
}
//drop old location trigger information
db.execSQL("CREATE TABLE ringers_new (" +
"id INTEGER PRIMARY KEY, " +
KEY_RINGER_NAME+" TEXT, " +
KEY_IS_ENABLED+" TEXT)");
db.execSQL("INSERT INTO ringers_new SELECT id, "+ KEY_RINGER_NAME +", "+ KEY_IS_ENABLED +" FROM "+RINGER_TABLE);
db.execSQL("DROP TABLE "+ RINGER_TABLE);
db.execSQL("ALTER TABLE ringers_new RENAME TO "+ RINGER_TABLE);
} }
handler.sendEmptyMessage(0); handler.sendEmptyMessage(0);
RingerDatabase.this.isUpgrading = false; RingerDatabase.this.isUpgrading = false;
@@ -380,7 +402,7 @@ private class OpenHelper extends SQLiteOpenHelper {
* @author ricky barrette * @author ricky barrette
*/ */
public Cursor getAllRingers(){ public Cursor getAllRingers(){
return this.mDb.query(RINGER_TABLE, new String[] { KEY_RINGER_NAME, KEY_IS_ENABLED, KEY_RADIUS, KEY_LOCATION_LAT, KEY_LOCATION_LON }, null, null, null, null, null); return this.mDb.query(RINGER_TABLE, new String[] { KEY_RINGER_NAME, KEY_IS_ENABLED }, null, null, null, null, null);
} }
/** /**
@@ -409,7 +431,7 @@ private class OpenHelper extends SQLiteOpenHelper {
* @author ricky barrette * @author ricky barrette
*/ */
public Cursor getRingerFromId(long id) { public Cursor getRingerFromId(long id) {
return this.mDb.query(RINGER_TABLE, new String[]{ KEY_RINGER_NAME, KEY_IS_ENABLED, KEY_RADIUS, KEY_LOCATION_LAT, KEY_LOCATION_LON }, "id = "+id, null, null, null, null); return this.mDb.query(RINGER_TABLE, new String[]{ KEY_RINGER_NAME, KEY_IS_ENABLED }, "id = "+id, null, null, null, null);
} }
/** /**
@@ -418,9 +440,18 @@ private class OpenHelper extends SQLiteOpenHelper {
* @return * @return
* @author ricky barrette * @author ricky barrette
*/ */
public Cursor getRingerInfo(String ringerName){ public ContentValues getRingerInfo(String ringerName){
return this.mDb.query(RINGER_INFO_TABLE, ContentValues values = new ContentValues();
new String[]{ KEY, KEY_VALUE }, KEY_RINGER_NAME +" = "+ DatabaseUtils.sqlEscapeString(ringerName), null, null, null, null); Cursor info = this.mDb.query(RINGER_INFO_TABLE, new String[]{ KEY, KEY_VALUE }, KEY_RINGER_NAME +" = "+ DatabaseUtils.sqlEscapeString(ringerName), null, null, null, null);
if (info.moveToFirst()) {
do {
values.put(info.getString(0), info.getString(1));
} while (info.moveToNext());
}
if (info != null && !info.isClosed()) {
info.close();
}
return values;
} }
/** /**
@@ -540,7 +571,11 @@ private class OpenHelper extends SQLiteOpenHelper {
* @param info values * @param info values
* @author ricky barrette * @author ricky barrette
*/ */
public void updateRinger(long id, ContentValues ringer, ContentValues info){ public void updateRinger(long id, ContentValues ringer, ContentValues info) throws NullPointerException{
if(ringer == null || info == null)
throw new NullPointerException("ringer content was null");
String ringer_name = getRingerName(id); String ringer_name = getRingerName(id);
if(!ringer_name.equals(ringer.getAsString(RingerDatabase.KEY_RINGER_NAME))) if(!ringer_name.equals(ringer.getAsString(RingerDatabase.KEY_RINGER_NAME)))

View File

@@ -326,16 +326,19 @@ public class RingerProcessingService extends Service {
if (c.moveToFirst()) { if (c.moveToFirst()) {
do { do {
if(Debug.DEBUG) if(Debug.DEBUG)
Log.d(TAG, "Checking ringer "+c.getString(0)+" "+c.getInt(3)+", "+c.getInt(4)+" @ "+ c.getInt(2) +"m"); Log.d(TAG, "Checking ringer "+c.getString(0));
if(RingerDatabase.parseBoolean(c.getString(1))) if(RingerDatabase.parseBoolean(c.getString(1))){
if(GeoUtils.isIntersecting(point, new Float(mLocation.getAccuracy()) / 1000, new GeoPoint(c.getInt(3), c.getInt(4)), new Float(c.getInt(2)) / 1000, Debug.FUDGE_FACTOR)){ ContentValues info = this.mDb.getRingerInfo(c.getString(0));
c.close(); if(info.containsKey(RingerDatabase.KEY_LOCATION_LAT) && info.containsKey(RingerDatabase.KEY_LOCATION_LON) && info.containsKey(RingerDatabase.KEY_RADIUS))
getRinger(ringer, index); if(GeoUtils.isIntersecting(point, new Float(mLocation.getAccuracy()) / 1000, new GeoPoint(info.getAsInteger(RingerDatabase.KEY_LOCATION_LAT), info.getAsInteger(RingerDatabase.KEY_LOCATION_LON)), new Float(info.getAsInteger(RingerDatabase.KEY_RADIUS)) / 1000, Debug.FUDGE_FACTOR)){
isDeafult = false; c.close();
//break loop, we will only apply the first applicable ringer getRinger(ringer, index);
break; isDeafult = false;
} //break loop, we will only apply the first applicable ringer
break;
}
}
index++; index++;
} while (c.moveToNext()); } while (c.moveToNext());
} }
@@ -363,22 +366,13 @@ public class RingerProcessingService extends Service {
* @return * @return
*/ */
private ContentValues getRinger(ContentValues values, long id) { private ContentValues getRinger(ContentValues values, long id) {
String name = this.mDb.getRingerName(id); String name = this.mDb.getRingerName(id);
values.put(RingerDatabase.KEY_RINGER_NAME, name); values.put(RingerDatabase.KEY_RINGER_NAME, name);
/* /*
* get the ringer's info, and parse it into content values * get the ringer's info, and parse it into content values
*/ */
Cursor c = this.mDb.getRingerInfo(name); values.putAll(this.mDb.getRingerInfo(name));
if (c.moveToFirst()) {
do {
values.put(c.getString(0), c.getString(1));
} while (c.moveToNext());
}
if (c != null && !c.isClosed()) {
c.close();
}
return values; return values;
} }

View File

@@ -0,0 +1,369 @@
/**
* RingerInformationHowActivity.java
* @date Jul 29, 2011
* @author Twenty Codes, LLC
* @author ricky barrette
*/
package com.TwentyCodes.android.LocationRinger.ui;
import android.app.ProgressDialog;
import android.content.ContentValues;
import android.content.Intent;
import android.os.Bundle;
import android.os.Looper;
import android.util.Log;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.RelativeLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.Toast;
import android.widget.ToggleButton;
import com.TwentyCodes.android.LocationRinger.LocationSelectedListener;
import com.TwentyCodes.android.LocationRinger.R;
import com.TwentyCodes.android.LocationRinger.db.RingerDatabase;
import com.TwentyCodes.android.LocationRinger.debug.Debug;
import com.TwentyCodes.android.SkyHook.SkyHook;
import com.TwentyCodes.android.location.GeoPointLocationListener;
import com.TwentyCodes.android.location.MapView;
import com.google.android.maps.GeoPoint;
/**
* This activity will allow users to pick how a ringer works. Using this activity they will pick triggers for this ringer
* @author ricky
*/
public class HowActivity extends com.google.android.maps.MapActivity implements LocationSelectedListener, GeoPointLocationListener, OnClickListener, OnCheckedChangeListener, OnSeekBarChangeListener {
private static final String TAG = "RingerInformationHowActivity";
private static final int ADD_ID = 1;
private static final int WHAT_REQUEST_CODE = 467468436;
private SeekBar mRadius;
private MapView mMapView;
private ToggleButton mMapEditToggle;
private RadiusOverlay mRadiusOverlay;
private GeoPoint mPoint;
private SkyHook mSkyHook;
private ProgressDialog mGpsProgress;
private boolean isFirstFix;
private ScrollView mScrollView;
@Override
protected boolean isRouteDisplayed() {
//UNUSED
return false;
}
/**
* Called when the HOW activity finishes, this will just pass the results back to the ringer list activity
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
this.setResult(RESULT_OK, data);
this.finish();
}
//don show for default
if(this.getIntent().getBooleanExtra(ListActivity.KEY_IS_DEFAULT, false))
this.finish();
}
/**
* Called when a toggle button's state is changed
* @author ricky barrette
*/
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
switch(buttonView.getId()){
case R.id.map_edit_toggle:
this.isFirstFix = isChecked;
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
isChecked
? (this.getResources().getDisplayMetrics().heightPixels - findViewById(R.id.map_controls).getHeight())
: (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 350, getResources().getDisplayMetrics())));
if(isChecked){
this.mSkyHook.getUpdates();
params.addRule(RelativeLayout.ALIGN_PARENT_TOP );
this.mGpsProgress = ProgressDialog.show(this, "", this.getText(R.string.gps_fix), true, true);
} else {
this.mSkyHook.removeUpdates();
params.addRule(RelativeLayout.BELOW, R.id.info);
params.addRule(RelativeLayout.ALIGN_BOTTOM );
if(this.mGpsProgress != null)
this.mGpsProgress.dismiss();
}
findViewById(R.id.map_info).setLayoutParams(params );
this.mMapView.setDoubleTapZoonEnabled(isChecked);
//buttons
findViewById(R.id.mark_my_location).setVisibility(isChecked ? View.VISIBLE : View.GONE);
findViewById(R.id.my_location).setVisibility(isChecked ? View.VISIBLE : View.GONE);
findViewById(R.id.map_mode).setVisibility(isChecked ? View.VISIBLE : View.GONE);
findViewById(R.id.search).setVisibility(isChecked ? View.VISIBLE : View.GONE);
findViewById(R.id.add_feature_button).setVisibility(isChecked ? View.GONE : View.VISIBLE);
this.mScrollView.invalidate();
this.mScrollView.setScrollEnabled(! isChecked);
this.mMapView.setBuiltInZoomControls(isChecked);
this.mMapView.setClickable(isChecked);
this.mRadius.setEnabled(isChecked);
Toast.makeText(this, isChecked ? getString(R.string.map_editing_enabled) : getString(R.string.map_editiing_disabled), Toast.LENGTH_SHORT).show();
break;
}
}
/**
* Called when a view is clicked
* @author ricky barrette
*/
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.mark_my_location:
if(this.mPoint != null){
this.mRadiusOverlay.setLocation(mPoint);
this.mMapView.getController().setCenter(mPoint);
}
break;
case R.id.my_location:
if(this.mPoint != null)
this.mMapView.getController().setCenter(mPoint);
break;
case R.id.map_mode:
this.mMapView.setSatellite(mMapView.isSatellite() ? false : true);
break;
case R.id.search:
new SearchDialog(this, this).show();
break;
case R.id.add_feature_button:
Toast.makeText(this, "NO TRIGGERS YET", Toast.LENGTH_LONG).show();
break;
case R.id.save_ringer_button:
save();
break;
}
}
/**
* Called when the acivity is first created
* @author ricky barrette
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.how);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
this.mSkyHook = new SkyHook(this);
this.mSkyHook.setLocationListener(this);
this.mScrollView = (ScrollView) findViewById(R.id.scrollview);
this.mMapView = (MapView) findViewById(R.id.mapview);
this.mRadius = (SeekBar) findViewById(R.id.radius);
this.mRadius.setMax(Debug.MAX_RADIUS_IN_METERS);
this.mMapView.setClickable(false);
this.mMapEditToggle = (ToggleButton) findViewById(R.id.map_edit_toggle);
this.mMapEditToggle.setChecked(false);
this.mMapEditToggle.setOnCheckedChangeListener(this);
this.mRadiusOverlay = new RadiusOverlay();
this.mRadius.setOnSeekBarChangeListener(this);
this.mMapView.getOverlays().add(mRadiusOverlay);
this.mRadius.setEnabled(false);
findViewById(R.id.mark_my_location).setOnClickListener(this);
findViewById(R.id.my_location).setOnClickListener(this);
findViewById(R.id.map_mode).setOnClickListener(this);
findViewById(R.id.search).setOnClickListener(this);
findViewById(R.id.save_ringer_button).setOnClickListener(this);
findViewById(R.id.add_feature_button).setOnClickListener(this);
Intent data = this.getIntent();
this.setTitle(getString(R.string.editing)+" "+data.getStringExtra(RingerDatabase.KEY_RINGER_NAME));
if(data.hasExtra(ListActivity.KEY_INFO)){
/*
* We need to null check all the values
*/
ContentValues info = (ContentValues) data.getParcelableExtra(ListActivity.KEY_INFO);
if (info.get(RingerDatabase.KEY_LOCATION_LAT) != null && info.get(RingerDatabase.KEY_LOCATION_LON) != null){
this.mRadiusOverlay.setLocation(new GeoPoint(info.getAsInteger(RingerDatabase.KEY_LOCATION_LAT), info.getAsInteger(RingerDatabase.KEY_LOCATION_LON)));
}
if (info.get(RingerDatabase.KEY_RADIUS) != null){
this.mRadius.setProgress(info.getAsInteger(RingerDatabase.KEY_RADIUS));
}
if(data.getBooleanExtra(ListActivity.KEY_IS_DEFAULT, false)){
this.startActivityForResult(new Intent(this, WhatActivity.class).putExtras(this.getIntent()), WHAT_REQUEST_CODE);
}
} else
this.setTitle(R.string.new_ringer);
if(this.mRadiusOverlay.getLocation() != null){
this.mMapView.getController().setCenter(this.mRadiusOverlay.getLocation());
this.mMapView.getController().setZoom(16);
}
this.mMapView.setDoubleTapZoonEnabled(false);
}
/**
* Creates the main menu that is displayed when the menu button is clicked
* @author ricky barrette
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, ADD_ID, 0, getString(R.string.add_feature)).setIcon(android.R.drawable.ic_menu_add);
return super.onCreateOptionsMenu(menu);
}
/* (non-Javadoc)
* @see com.google.android.maps.MapActivity#onDestroy()
* @author ricky barrette
*/
@Override
protected void onDestroy() {
this.mSkyHook.removeUpdates();
super.onDestroy();
}
/**
* Called when skyhook has a location to report
* @author ricky barrette
*/
@Override
public void onLocationChanged(GeoPoint point, int accuracy) {
this.mPoint = point;
if(point != null){
/*
* if this is the first fix and the radius overlay does not have a point specified
* then pan the map, and zoom in to the users current location
*/
if(this.isFirstFix)
if(this.mRadiusOverlay.getLocation() == null){
if(this.mMapView != null){
this.mMapView.getController().setCenter(point);
this.mMapView.getController().setZoom((this.mMapView.getMaxZoomLevel() - 5));
}
this.isFirstFix = false;
}
/*
* dismiss the acquiring gps dialog
*/
if(this.mGpsProgress != null)
this.mGpsProgress.dismiss();
}
}
/*
*/
@Override
public void onLocationSelected(GeoPoint point) {
if(point != null){
if(Debug.DEBUG)
Log.d(TAG, "onLocationSelected() "+ point.toString());
if(this.mRadiusOverlay != null)
this.mRadiusOverlay.setLocation(point);
if(this.mMapView != null){
this.mMapView.getController().setCenter(point);
this.mMapView.getController().setZoom((this.mMapView.getMaxZoomLevel() - 5));
}
} else if(Debug.DEBUG)
Log.d(TAG, "onLocationSelected() Location was null");
}
/* (non-Javadoc)
* @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
* @author ricky barrette
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case ADD_ID:
//TODO display triggers
break;
}
return super.onOptionsItemSelected(item);
}
/**
* Called when a seekbar is has its progress changed
* @author ricky barrette
*/
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
switch (seekBar.getId()){
case R.id.radius:
this.mRadiusOverlay.setRadius(progress);
this.mMapView.invalidate();
break;
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
//UNUSED
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//UNUSED
}
/**
* Prepares a bundle containing all the information that needs to be saved, and returns it to the starting activity
* @author ricky barrette
*/
private void save() {
final ProgressDialog progress = ProgressDialog.show(this, "", this.getText(R.string.saving), true, true);
//Generate the intent in a thread to prevent anr's and allow for progress dialog
new Thread( new Runnable(){
@Override
public void run(){
Looper.prepare();
Intent data = new Intent(HowActivity.this, WhatActivity.class).putExtras(HowActivity.this.getIntent());
GeoPoint point = HowActivity.this.mRadiusOverlay.getLocation();
ContentValues info = data.getParcelableExtra(ListActivity.KEY_INFO);
if(info == null)
info = new ContentValues();
/*
* package the ringer table information
*/
info.put(RingerDatabase.KEY_LOCATION_LAT, point.getLatitudeE6());
info.put(RingerDatabase.KEY_LOCATION_LON, point.getLongitudeE6());
info.put(RingerDatabase.KEY_RADIUS, HowActivity.this.mRadius.getProgress());
//package the intent
data.putExtra(ListActivity.KEY_INFO, info);
progress.dismiss();
HowActivity.this.startActivityForResult(data, WHAT_REQUEST_CODE);
}
}).start();
}
}

View File

@@ -39,7 +39,7 @@ import com.skyhookwireless.wps.RegistrationCallback;
import com.skyhookwireless.wps.WPSContinuation; import com.skyhookwireless.wps.WPSContinuation;
import com.skyhookwireless.wps.WPSReturnCode; import com.skyhookwireless.wps.WPSReturnCode;
public class RingerListActivity extends Activity implements OnItemClickListener, OnClickListener, DatabaseListener, RegistrationCallback { public class ListActivity extends Activity implements OnItemClickListener, OnClickListener, DatabaseListener, RegistrationCallback {
private RingerDatabase mDb; private RingerDatabase mDb;
private ListView mListView; private ListView mListView;
@@ -48,6 +48,7 @@ public class RingerListActivity extends Activity implements OnItemClickListener,
public static final String KEY_RINGER = "key_ringer"; public static final String KEY_RINGER = "key_ringer";
public static final String KEY_INFO = "key_info"; public static final String KEY_INFO = "key_info";
public static final String KEY_IS_DEFAULT = "key_is_default";
private static final int NEW_RINGER = 0; private static final int NEW_RINGER = 0;
private static final int DELETE_ID = 1; private static final int DELETE_ID = 1;
private static final int ACTIVITY_CREATE = 3; private static final int ACTIVITY_CREATE = 3;
@@ -55,6 +56,7 @@ public class RingerListActivity extends Activity implements OnItemClickListener,
private static final int SETTINGS = 7; private static final int SETTINGS = 7;
private static final int BACKUP = 8; private static final int BACKUP = 8;
private static final int RESTORE = 9; private static final int RESTORE = 9;
private static final String KEY_ROWID = "key_row_id";
@Override @Override
public void done() { public void done() {
@@ -89,8 +91,7 @@ public class RingerListActivity extends Activity implements OnItemClickListener,
populate(); populate();
break; break;
case ACTIVITY_EDIT: case ACTIVITY_EDIT:
mDb.updateRinger(intent.getLongExtra(RingerInformationActivity.KEY_ROWID, 0), mDb.updateRinger(intent.getLongExtra(KEY_ROWID, 1), (ContentValues) intent.getParcelableExtra(KEY_RINGER), (ContentValues) intent.getParcelableExtra(KEY_INFO));
(ContentValues) intent.getParcelableExtra(KEY_RINGER), (ContentValues) intent.getParcelableExtra(KEY_INFO));
populate(); populate();
break; break;
} }
@@ -99,7 +100,7 @@ public class RingerListActivity extends Activity implements OnItemClickListener,
@Override @Override
public void onClick(View v) { public void onClick(View v) {
Intent i = new Intent(this, RingerInformationActivity.class); Intent i = new Intent(this, HowActivity.class);
startActivityForResult(i, ACTIVITY_CREATE ); startActivityForResult(i, ACTIVITY_CREATE );
} }
@@ -226,38 +227,28 @@ public class RingerListActivity extends Activity implements OnItemClickListener,
public void run(){ public void run(){
Looper.prepare(); Looper.prepare();
Intent i = new Intent(RingerListActivity.this, RingerInformationActivity.class); Intent i = new Intent(ListActivity.this, HowActivity.class)
.putExtra(KEY_ROWID, id+1);
/* /*
* get the ringer * get the ringer
*/ */
Cursor ringer = mDb.getRingerFromId(id+1); Cursor ringer = mDb.getRingerFromId(id+1);
if (ringer.moveToFirst()) { if (ringer.moveToFirst())
i.putExtra(RingerInformationActivity.KEY_ROWID, id+1) i.putExtra(RingerDatabase.KEY_RINGER_NAME, ringer.getString(0))
.putExtra(RingerDatabase.KEY_RINGER_NAME, ringer.getString(0)) .putExtra(RingerDatabase.KEY_IS_ENABLED, RingerDatabase.parseBoolean(ringer.getString(1)));
.putExtra(RingerDatabase.KEY_IS_ENABLED, ringer.getString(1)== null ? true :(Integer.parseInt(ringer.getString(1)) == 1 ? true : false))//5
.putExtra(RingerDatabase.KEY_RADIUS, ringer.getInt(2))
.putExtra(RingerDatabase.KEY_LOCATION_LAT, ringer.getInt(3))
.putExtra(RingerDatabase.KEY_LOCATION_LON, ringer.getInt(4));
}
if (ringer != null && !ringer.isClosed()) { if (ringer != null && !ringer.isClosed()) {
ringer.close(); ringer.close();
} }
if(id == 0)
i.putExtra(KEY_IS_DEFAULT, true);
/* /*
* get the ringer's info, and parse it into content values * get the ringer's info, and parse it into content values
*/ */
ContentValues values = new ContentValues(); i.putExtra(KEY_INFO, mDb.getRingerInfo(i.getStringExtra(RingerDatabase.KEY_RINGER_NAME)));
Cursor info = mDb.getRingerInfo(i.getStringExtra(RingerDatabase.KEY_RINGER_NAME));
if (info.moveToFirst()) {
do {
values.put(info.getString(0), info.getString(1));
} while (info.moveToNext());
}
if (info != null && !info.isClosed()) {
info.close();
}
i.putExtra(KEY_INFO, values);
progress.dismiss(); progress.dismiss();
@@ -278,7 +269,7 @@ public class RingerListActivity extends Activity implements OnItemClickListener,
public boolean onOptionsItemSelected (MenuItem item) { public boolean onOptionsItemSelected (MenuItem item) {
switch (item.getItemId()){ switch (item.getItemId()){
case NEW_RINGER: case NEW_RINGER:
Intent i = new Intent(this, RingerInformationActivity.class); Intent i = new Intent(this, WhatActivity.class);
startActivityForResult(i, ACTIVITY_CREATE ); startActivityForResult(i, ACTIVITY_CREATE );
return true; return true;

View File

@@ -7,6 +7,7 @@
*/ */
package com.TwentyCodes.android.LocationRinger.ui; package com.TwentyCodes.android.LocationRinger.ui;
import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.ContentValues; import android.content.ContentValues;
@@ -19,68 +20,45 @@ import android.media.RingtoneManager;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Looper; import android.os.Looper;
import android.util.Log;
import android.util.TypedValue;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.SeekBar; import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.Toast;
import android.widget.ToggleButton; import android.widget.ToggleButton;
import com.TwentyCodes.android.LocationRinger.LocationSelectedListener;
import com.TwentyCodes.android.LocationRinger.R; import com.TwentyCodes.android.LocationRinger.R;
import com.TwentyCodes.android.LocationRinger.db.RingerDatabase; import com.TwentyCodes.android.LocationRinger.db.RingerDatabase;
import com.TwentyCodes.android.LocationRinger.debug.Debug;
import com.TwentyCodes.android.SkyHook.SkyHook;
import com.TwentyCodes.android.location.GeoPointLocationListener;
import com.TwentyCodes.android.location.MapView;
import com.google.android.maps.GeoPoint;
/** /**
* This activity will be used to display all the ringers information, and handle modification to that information * This activity will be used to display what this ringer controls. here the user will be able to add or modify features they wish to control
* @author ricky barrette * @author ricky barrette
*/ */
public class RingerInformationActivity extends com.google.android.maps.MapActivity implements OnCheckedChangeListener, OnClickListener, OnSeekBarChangeListener, GeoPointLocationListener, LocationSelectedListener { public class WhatActivity extends Activity implements OnCheckedChangeListener, OnClickListener {
public static final String KEY_ROWID = "row_id";
private static final int SAVE_ID = 0; private static final int SAVE_ID = 0;
private static final String TAG = "RingerInformationActivity"; //private static final String TAG = "RingerInformationWhatActivity";
private static final int ADD_ID = 1; private static final int ADD_ID = 1;
private SeekBar mRingtonVolume; private SeekBar mRingtonVolume;
private SeekBar mRadius;
private SeekBar mNotificationRingtoneVolume; private SeekBar mNotificationRingtoneVolume;
private MapView mMapView;
private EditText mNotificationRingtone; private EditText mNotificationRingtone;
private EditText mRingerName; private EditText mRingerName;
private EditText mRingtone; private EditText mRingtone;
private ToggleButton mNotificationRingtoneToggle; private ToggleButton mNotificationRingtoneToggle;
private ToggleButton mRingerToggle; private ToggleButton mRingerToggle;
private ToggleButton mRingtoneToggle; private ToggleButton mRingtoneToggle;
private ScrollView mScrollView;
private String mRingtoneURI; private String mRingtoneURI;
private String mNotificationRingtoneURI; private String mNotificationRingtoneURI;
private ToggleButton mMapEditToggle;
private RadiusOverlay mRadiusOverlay;
private long mRowID;
private ToggleButton mWifiToggle; private ToggleButton mWifiToggle;
private ToggleButton mBTToggle; private ToggleButton mBTToggle;
private GeoPoint mPoint;
private SeekBar mAlarmVolume; private SeekBar mAlarmVolume;
private ProgressBar mMusicVolume; private ProgressBar mMusicVolume;
private SkyHook mSkyHook;
private ProgressDialog mGpsProgress;
private boolean isFirstFix;
private void addFeature(int item) { private void addFeature(int item) {
String feature = this.getResources().getStringArray(R.array.features)[item]; String feature = this.getResources().getStringArray(R.array.features)[item];
@@ -122,6 +100,14 @@ public class RingerInformationActivity extends com.google.android.maps.MapActivi
* @author ricky * @author ricky
*/ */
private void displayFeaturesDialog() { private void displayFeaturesDialog() {
/*
* TODO
* Check to see if wifi is available
* check to see if bluetooth is available,
* remove unavailable options
*/
AlertDialog.Builder builder = new AlertDialog.Builder(this); AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(this.getText(R.string.add_feature)); builder.setTitle(this.getText(R.string.add_feature));
builder.setItems(R.array.features, new DialogInterface.OnClickListener() { builder.setItems(R.array.features, new DialogInterface.OnClickListener() {
@@ -154,12 +140,6 @@ public class RingerInformationActivity extends com.google.android.maps.MapActivi
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, uri == null ? null : Uri.parse(uri)); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, uri == null ? null : Uri.parse(uri));
startActivityForResult( intent, ringtoneCode); startActivityForResult( intent, ringtoneCode);
} }
@Override
protected boolean isRouteDisplayed() {
//UNUSED
return false;
}
/** /**
* Called when the rintone picker activity returns it's result * Called when the rintone picker activity returns it's result
@@ -191,65 +171,28 @@ public class RingerInformationActivity extends com.google.android.maps.MapActivi
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
switch(buttonView.getId()){ switch(buttonView.getId()){
case R.id.ringer_toggle: case R.id.ringer_toggle:
this.mRadius.setEnabled(isChecked); //TODO disable all the child views, or find xml tag to allow setting of child view enabled via parent
this.mRingtone.setEnabled(isChecked); findViewById(R.id.ringtone_info).setEnabled(isChecked);
this.mRingtonVolume.setEnabled(isChecked); findViewById(R.id.notification_ringtone_info).setEnabled(isChecked);
this.mNotificationRingtone.setEnabled(isChecked); findViewById(R.id.alarm_volume_info).setEnabled(isChecked);
this.mNotificationRingtoneVolume.setEnabled(isChecked); findViewById(R.id.music_volume_info).setEnabled(isChecked);
this.mNotificationRingtoneToggle.setEnabled(isChecked); findViewById(R.id.bluetooth_toggle).setEnabled(isChecked);
this.mMapView.setEnabled(isChecked); findViewById(R.id.wifi_toggle).setEnabled(isChecked);
this.mNotificationRingtoneToggle.setEnabled(isChecked); findViewById(R.id.update_interval_info).setEnabled(isChecked);
this.mRingtoneToggle.setEnabled(isChecked); findViewById(R.id.data_label).setEnabled(isChecked);
this.mMapEditToggle.setEnabled(isChecked);
break; break;
case R.id.notification_silent_toggle: case R.id.notification_silent_toggle:
findViewById(R.id.notification_ringtone_button).setEnabled(!isChecked);
this.mNotificationRingtone.setEnabled(!isChecked); this.mNotificationRingtone.setEnabled(!isChecked);
this.mNotificationRingtoneVolume.setEnabled(!isChecked); this.mNotificationRingtoneVolume.setEnabled(!isChecked);
break; break;
case R.id.ringtone_silent_toggle: case R.id.ringtone_silent_toggle:
this.mRingtone.setEnabled(!isChecked); this.mRingtone.setEnabled(!isChecked);
findViewById(R.id.ringtone_button).setEnabled(!isChecked);
this.mRingtonVolume.setEnabled(!isChecked); this.mRingtonVolume.setEnabled(!isChecked);
break; break;
case R.id.map_edit_toggle:
this.isFirstFix = isChecked;
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
isChecked
? (this.getResources().getDisplayMetrics().heightPixels - findViewById(R.id.map_controls).getHeight())
: (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 350, getResources().getDisplayMetrics())));
if(isChecked){
this.mSkyHook.getUpdates();
params.addRule(RelativeLayout.ALIGN_PARENT_TOP );
this.mGpsProgress = ProgressDialog.show(this, "", this.getText(R.string.gps_fix), true, true);
} else {
this.mSkyHook.removeUpdates();
params.addRule(RelativeLayout.BELOW, R.id.info);
params.addRule(RelativeLayout.ALIGN_BOTTOM );
if(this.mGpsProgress != null)
this.mGpsProgress.dismiss();
}
findViewById(R.id.map_info).setLayoutParams(params );
this.mMapView.setDoubleTapZoonEnabled(isChecked);
//views
findViewById(R.id.info).setVisibility(isChecked ? View.GONE : View.VISIBLE);
findViewById(R.id.ringer_options).setVisibility(isChecked ? View.GONE : View.VISIBLE);
//buttons
findViewById(R.id.mark_my_location).setVisibility(isChecked ? View.VISIBLE : View.GONE);
findViewById(R.id.my_location).setVisibility(isChecked ? View.VISIBLE : View.GONE);
findViewById(R.id.map_mode).setVisibility(isChecked ? View.VISIBLE : View.GONE);
findViewById(R.id.search).setVisibility(isChecked ? View.VISIBLE : View.GONE);
findViewById(R.id.add_feature_button).setVisibility(isChecked ? View.GONE : View.VISIBLE);
this.mScrollView.invalidate();
this.mScrollView.setScrollEnabled(! isChecked);
this.mMapView.setBuiltInZoomControls(isChecked);
this.mMapView.setClickable(isChecked);
this.mRadius.setEnabled(isChecked);
Toast.makeText(this, isChecked ? getString(R.string.map_editing_enabled) : getString(R.string.map_editiing_disabled), Toast.LENGTH_SHORT).show();
break;
} }
} }
@@ -269,22 +212,6 @@ public class RingerInformationActivity extends com.google.android.maps.MapActivi
case R.id.save_ringer_button: case R.id.save_ringer_button:
save(); save();
break; break;
case R.id.mark_my_location:
if(this.mPoint != null){
this.mRadiusOverlay.setLocation(mPoint);
this.mMapView.getController().setCenter(mPoint);
}
break;
case R.id.my_location:
if(this.mPoint != null)
this.mMapView.getController().setCenter(mPoint);
break;
case R.id.map_mode:
this.mMapView.setSatellite(mMapView.isSatellite() ? false : true);
break;
case R.id.search:
new SearchDialog(this, this).show();
break;
case R.id.add_feature_button: case R.id.add_feature_button:
findViewById(R.id.add_a_feature_label).setVisibility(View.GONE); findViewById(R.id.add_a_feature_label).setVisibility(View.GONE);
displayFeaturesDialog(); displayFeaturesDialog();
@@ -300,42 +227,18 @@ public class RingerInformationActivity extends com.google.android.maps.MapActivi
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
/*
* TODO
* Check to see if wifi is available
* check to see if bluetooth is available,
* remove unavailable options
*/
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
this.setContentView(R.layout.ringer_info); this.setContentView(R.layout.what);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
this.mSkyHook = new SkyHook(this);
this.mSkyHook.setLocationListener(this);
this.mScrollView = (ScrollView) findViewById(R.id.scrollview);
this.mRingerName = (EditText) findViewById(R.id.ringer_name); this.mRingerName = (EditText) findViewById(R.id.ringer_name);
this.mRingerToggle = (ToggleButton) findViewById(R.id.ringer_toggle); this.mRingerToggle = (ToggleButton) findViewById(R.id.ringer_toggle);
this.mRingerToggle.setChecked(true); this.mRingerToggle.setChecked(true);
this.mRingerToggle.setOnCheckedChangeListener(this); this.mRingerToggle.setOnCheckedChangeListener(this);
this.mMapView = (MapView) findViewById(R.id.mapview);
this.mRadius = (SeekBar) findViewById(R.id.radius);
this.mRadius.setMax(Debug.MAX_RADIUS_IN_METERS);
this.mMapView.setClickable(false);
this.mMapEditToggle = (ToggleButton) findViewById(R.id.map_edit_toggle);
this.mMapEditToggle.setChecked(false);
this.mMapEditToggle.setOnCheckedChangeListener(this);
this.mRadiusOverlay = new RadiusOverlay();
this.mRadius.setOnSeekBarChangeListener(this);
this.mMapView.getOverlays().add(mRadiusOverlay);
this.mRadius.setEnabled(false);
this.mRingtone = (EditText) findViewById(R.id.ringtone); this.mRingtone = (EditText) findViewById(R.id.ringtone);
this.mRingtoneToggle = (ToggleButton) findViewById(R.id.ringtone_silent_toggle); this.mRingtoneToggle = (ToggleButton) findViewById(R.id.ringtone_silent_toggle);
this.mRingtonVolume = (SeekBar) findViewById(R.id.ringtone_volume); this.mRingtonVolume = (SeekBar) findViewById(R.id.ringtone_volume);
@@ -396,20 +299,32 @@ public class RingerInformationActivity extends com.google.android.maps.MapActivi
Intent data = this.getIntent(); Intent data = this.getIntent();
if(data.hasExtra(KEY_ROWID)){ if(data.hasExtra(ListActivity.KEY_INFO)){
this.mRowID = data.getLongExtra(KEY_ROWID, 0);
this.mRingerToggle.setChecked(data.getBooleanExtra(RingerDatabase.KEY_IS_ENABLED, true)); this.mRingerToggle.setChecked(data.getBooleanExtra(RingerDatabase.KEY_IS_ENABLED, true));
this.mRadiusOverlay.setLocation(new GeoPoint(data.getIntExtra(RingerDatabase.KEY_LOCATION_LAT, 0), data.getIntExtra(RingerDatabase.KEY_LOCATION_LON, 0)));
this.mRadius.setProgress(data.getIntExtra(RingerDatabase.KEY_RADIUS, 0));
this.mRingerName.setText(data.getStringExtra(RingerDatabase.KEY_RINGER_NAME)); this.mRingerName.setText(data.getStringExtra(RingerDatabase.KEY_RINGER_NAME));
this.setTitle(getString(R.string.editing)+" "+mRingerName.getText().toString()); this.setTitle(getString(R.string.editing)+" "+mRingerName.getText().toString());
/*
* if this is the default ringer, then we will display everything
*/
if(data.getBooleanExtra(ListActivity.KEY_IS_DEFAULT, false)){
findViewById(R.id.ringer_options).setVisibility(View.GONE);
findViewById(R.id.notification_ringtone_info).setVisibility(View.VISIBLE);
findViewById(R.id.ringtone_info).setVisibility(View.VISIBLE);
findViewById(R.id.wifi_toggle).setVisibility(View.VISIBLE);
findViewById(R.id.data_label).setVisibility(View.VISIBLE);
findViewById(R.id.bluetooth_toggle).setVisibility(View.VISIBLE);
findViewById(R.id.music_volume_info).setVisibility(View.VISIBLE);
findViewById(R.id.alarm_volume_info).setVisibility(View.VISIBLE);
findViewById(R.id.update_interval_info).setVisibility(View.VISIBLE);
findViewById(R.id.add_feature_button).setVisibility(View.GONE);
}
/* /*
* We need to null check all the values * We need to null check all the values
*/ */
ContentValues info = (ContentValues) data.getParcelableExtra(RingerListActivity.KEY_INFO); ContentValues info = (ContentValues) data.getParcelableExtra(ListActivity.KEY_INFO);
if(RingerDatabase.parseBoolean(info.getAsString(RingerDatabase.KEY_PLUS_BUTTON_HINT))); if(RingerDatabase.parseBoolean(info.getAsString(RingerDatabase.KEY_PLUS_BUTTON_HINT)));
findViewById(R.id.add_a_feature_label).setVisibility(View.GONE); findViewById(R.id.add_a_feature_label).setVisibility(View.GONE);
@@ -482,29 +397,6 @@ public class RingerInformationActivity extends com.google.android.maps.MapActivi
} else } else
this.setTitle(R.string.new_ringer); this.setTitle(R.string.new_ringer);
if(this.mRadiusOverlay.getLocation() != null){
this.mMapView.getController().setCenter(this.mRadiusOverlay.getLocation());
this.mMapView.getController().setZoom(16);
}
if(this.mRingerName.getText().toString().equals(getString(R.string.default_ringer))){
this.mMapView.setEnabled(false);
this.mMapEditToggle.setEnabled(false);
this.mRingerName.setEnabled(false);
this.mRingerToggle.setEnabled(false);
findViewById(R.id.ringer_options).setVisibility(View.GONE);
findViewById(R.id.map_info).setVisibility(View.GONE);
findViewById(R.id.notification_ringtone_info).setVisibility(View.VISIBLE);
findViewById(R.id.ringtone_info).setVisibility(View.VISIBLE);
findViewById(R.id.wifi_toggle).setVisibility(View.VISIBLE);
findViewById(R.id.data_label).setVisibility(View.VISIBLE);
findViewById(R.id.bluetooth_toggle).setVisibility(View.VISIBLE);
findViewById(R.id.music_volume_info).setVisibility(View.VISIBLE);
findViewById(R.id.alarm_volume_info).setVisibility(View.VISIBLE);
findViewById(R.id.update_interval_info).setVisibility(View.VISIBLE);
}
this.mMapView.setDoubleTapZoonEnabled(false);
} }
/** /**
@@ -518,66 +410,6 @@ public class RingerInformationActivity extends com.google.android.maps.MapActivi
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }
/* (non-Javadoc)
* @see com.google.android.maps.MapActivity#onDestroy()
* @author ricky barrette
*/
@Override
protected void onDestroy() {
this.mSkyHook.removeUpdates();
super.onDestroy();
}
/**
* Called when skyhook has a location to report
* @author ricky barrette
*/
@Override
public void onLocationChanged(GeoPoint point, int accuracy) {
this.mPoint = point;
if(point != null){
/*
* if this is the first fix and the radius overlay does not have a point specified
* then pan the map, and zoom in to the users current location
*/
if(this.isFirstFix)
if(this.mRadiusOverlay.getLocation() == null){
if(this.mMapView != null){
this.mMapView.getController().setCenter(point);
this.mMapView.getController().setZoom((this.mMapView.getMaxZoomLevel() - 5));
}
this.isFirstFix = false;
}
/*
* dismiss the acquiring gps dialog
*/
if(this.mGpsProgress != null)
this.mGpsProgress.dismiss();
}
}
/*
*/
@Override
public void onLocationSelected(GeoPoint point) {
if(point != null){
if(Debug.DEBUG)
Log.d(TAG, "onLocationSelected() "+ point.toString());
if(this.mRadiusOverlay != null)
this.mRadiusOverlay.setLocation(point);
if(this.mMapView != null){
this.mMapView.getController().setCenter(point);
this.mMapView.getController().setZoom((this.mMapView.getMaxZoomLevel() - 5));
}
} else if(Debug.DEBUG)
Log.d(TAG, "onLocationSelected() Location was null");
}
/* (non-Javadoc) /* (non-Javadoc)
* @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem) * @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
* @author ricky barrette * @author ricky barrette
@@ -595,30 +427,6 @@ public class RingerInformationActivity extends com.google.android.maps.MapActivi
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
/**
* Called when a seekbar is has its progress changed
* @author ricky barrette
*/
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
switch (seekBar.getId()){
case R.id.radius:
this.mRadiusOverlay.setRadius(progress);
this.mMapView.invalidate();
break;
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
//UNUSED
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//UNUSED
}
/** /**
* Prepares a bundle containing all the information that needs to be saved, and returns it to the starting activity * Prepares a bundle containing all the information that needs to be saved, and returns it to the starting activity
* @author ricky barrette * @author ricky barrette
@@ -632,68 +440,64 @@ public class RingerInformationActivity extends com.google.android.maps.MapActivi
public void run(){ public void run(){
Looper.prepare(); Looper.prepare();
Intent data = new Intent(); Intent data = new Intent().putExtras(WhatActivity.this.getIntent());
GeoPoint point = RingerInformationActivity.this.mRadiusOverlay.getLocation();
//to prevent null pointers ContentValues ringer = WhatActivity.this.getIntent().getParcelableExtra(ListActivity.KEY_RINGER);
if(point == null) ContentValues info = WhatActivity.this.getIntent().getParcelableExtra(ListActivity.KEY_INFO);
point = new GeoPoint(0,0);
if(RingerInformationActivity.this.mRowID > 0) if(ringer == null)
data.putExtra(KEY_ROWID, mRowID); ringer = new ContentValues();
ContentValues ringer = new ContentValues(); if(info == null)
ContentValues info = new ContentValues(); info = new ContentValues();
/* /*
* package the ringer table information * package the ringer table information
*/ */
ringer.put(RingerDatabase.KEY_RINGER_NAME, RingerInformationActivity.this.mRingerName.getText().toString()); ringer.put(RingerDatabase.KEY_RINGER_NAME, WhatActivity.this.mRingerName.getText().toString());
ringer.put(RingerDatabase.KEY_IS_ENABLED, RingerInformationActivity.this.mRingerToggle.isChecked()); ringer.put(RingerDatabase.KEY_IS_ENABLED, WhatActivity.this.mRingerToggle.isChecked());
ringer.put(RingerDatabase.KEY_LOCATION_LAT, point.getLatitudeE6());
ringer.put(RingerDatabase.KEY_LOCATION_LON, point.getLongitudeE6());
ringer.put(RingerDatabase.KEY_RADIUS, RingerInformationActivity.this.mRadius.getProgress());
/* /*
* package the ringer_info table information * package the ringer_info table information
*/ */
if(findViewById(R.id.notification_ringtone_info).isShown()){ if(findViewById(R.id.notification_ringtone_info).isShown()){
info.put(RingerDatabase.KEY_NOTIFICATION_IS_SILENT, RingerInformationActivity.this.mNotificationRingtoneToggle.isChecked()); info.put(RingerDatabase.KEY_NOTIFICATION_IS_SILENT, WhatActivity.this.mNotificationRingtoneToggle.isChecked());
info.put(RingerDatabase.KEY_NOTIFICATION_RINGTONE, RingerInformationActivity.this.mNotificationRingtone.getText().toString()); info.put(RingerDatabase.KEY_NOTIFICATION_RINGTONE, WhatActivity.this.mNotificationRingtone.getText().toString());
info.put(RingerDatabase.KEY_NOTIFICATION_RINGTONE_URI, RingerInformationActivity.this.mNotificationRingtoneURI); info.put(RingerDatabase.KEY_NOTIFICATION_RINGTONE_URI, WhatActivity.this.mNotificationRingtoneURI);
info.put(RingerDatabase.KEY_NOTIFICATION_RINGTONE_VOLUME, RingerInformationActivity.this.mNotificationRingtoneVolume.getProgress()); info.put(RingerDatabase.KEY_NOTIFICATION_RINGTONE_VOLUME, WhatActivity.this.mNotificationRingtoneVolume.getProgress());
} }
if(findViewById(R.id.ringtone_info).isShown()){ if(findViewById(R.id.ringtone_info).isShown()){
info.put(RingerDatabase.KEY_RINGTONE, RingerInformationActivity.this.mRingtone.getText().toString()); info.put(RingerDatabase.KEY_RINGTONE, WhatActivity.this.mRingtone.getText().toString());
info.put(RingerDatabase.KEY_RINGTONE_IS_SILENT, RingerInformationActivity.this.mRingtoneToggle.isChecked()); info.put(RingerDatabase.KEY_RINGTONE_IS_SILENT, WhatActivity.this.mRingtoneToggle.isChecked());
info.put(RingerDatabase.KEY_RINGTONE_URI, RingerInformationActivity.this.mRingtoneURI); info.put(RingerDatabase.KEY_RINGTONE_URI, WhatActivity.this.mRingtoneURI);
info.put(RingerDatabase.KEY_RINGTONE_VOLUME, RingerInformationActivity.this.mRingtonVolume.getProgress()); info.put(RingerDatabase.KEY_RINGTONE_VOLUME, WhatActivity.this.mRingtonVolume.getProgress());
} }
if(findViewById(R.id.wifi_toggle).isShown()) if(findViewById(R.id.wifi_toggle).isShown())
info.put(RingerDatabase.KEY_WIFI, RingerInformationActivity.this.mWifiToggle.isChecked()); info.put(RingerDatabase.KEY_WIFI, WhatActivity.this.mWifiToggle.isChecked());
if(findViewById(R.id.bluetooth_toggle).isShown()) if(findViewById(R.id.bluetooth_toggle).isShown())
info.put(RingerDatabase.KEY_BT, RingerInformationActivity.this.mBTToggle.isChecked()); info.put(RingerDatabase.KEY_BT, WhatActivity.this.mBTToggle.isChecked());
if(findViewById(R.id.music_volume_info).isShown()) if(findViewById(R.id.music_volume_info).isShown())
info.put(RingerDatabase.KEY_MUSIC_VOLUME, RingerInformationActivity.this.mMusicVolume.getProgress()); info.put(RingerDatabase.KEY_MUSIC_VOLUME, WhatActivity.this.mMusicVolume.getProgress());
if(findViewById(R.id.alarm_volume_info).isShown()) if(findViewById(R.id.alarm_volume_info).isShown())
info.put(RingerDatabase.KEY_ALARM_VOLUME, RingerInformationActivity.this.mAlarmVolume.getProgress()); info.put(RingerDatabase.KEY_ALARM_VOLUME, WhatActivity.this.mAlarmVolume.getProgress());
if(findViewById(R.id.update_interval_info).isShown()) if(findViewById(R.id.update_interval_info).isShown())
info.put(RingerDatabase.KEY_UPDATE_INTERVAL, info.put(RingerDatabase.KEY_UPDATE_INTERVAL,
RingerInformationActivity.this.getResources().getStringArray(R.array.runtimes)[((Spinner) findViewById(R.id.update_interval)).getSelectedItemPosition()]); WhatActivity.this.getResources().getStringArray(R.array.runtimes)[((Spinner) findViewById(R.id.update_interval)).getSelectedItemPosition()]);
info.put(RingerDatabase.KEY_PLUS_BUTTON_HINT, true); info.put(RingerDatabase.KEY_PLUS_BUTTON_HINT, true);
//package the intent //package the intent
data.putExtra(RingerListActivity.KEY_RINGER, ringer).putExtra(RingerListActivity.KEY_INFO, info); data.putExtra(ListActivity.KEY_RINGER, ringer).putExtra(ListActivity.KEY_INFO, info);
RingerInformationActivity.this.setResult(RESULT_OK, data);
WhatActivity.this.setResult(RESULT_OK, data);
progress.dismiss(); progress.dismiss();
RingerInformationActivity.this.finish(); WhatActivity.this.finish();
} }
}).start(); }).start();
} }