diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 73c98a4..3a4814e 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2,11 +2,14 @@ + android:versionName="0.1.8"> - + + @@ -14,6 +17,11 @@ + + + + + + diff --git a/bin/classes.dex b/bin/classes.dex index c04e6ef..349fc2f 100644 Binary files a/bin/classes.dex and b/bin/classes.dex differ diff --git a/bin/com/architects/findme/Conversation.class b/bin/com/architects/findme/Conversation.class index 08d519f..d1b5f72 100644 Binary files a/bin/com/architects/findme/Conversation.class and b/bin/com/architects/findme/Conversation.class differ diff --git a/bin/com/architects/findme/FindMe.class b/bin/com/architects/findme/FindMe.class index 00a6726..8c4dc7e 100644 Binary files a/bin/com/architects/findme/FindMe.class and b/bin/com/architects/findme/FindMe.class differ diff --git a/bin/com/architects/findme/FindMeMenu$1.class b/bin/com/architects/findme/FindMeMenu$1.class index e5ae174..956194c 100644 Binary files a/bin/com/architects/findme/FindMeMenu$1.class and b/bin/com/architects/findme/FindMeMenu$1.class differ diff --git a/bin/com/architects/findme/FindMeMenu.class b/bin/com/architects/findme/FindMeMenu.class index 5f5220a..4a85f59 100644 Binary files a/bin/com/architects/findme/FindMeMenu.class and b/bin/com/architects/findme/FindMeMenu.class differ diff --git a/bin/com/architects/findme/Friends$1$1.class b/bin/com/architects/findme/Friends$1$1.class new file mode 100644 index 0000000..d20cab8 Binary files /dev/null and b/bin/com/architects/findme/Friends$1$1.class differ diff --git a/bin/com/architects/findme/Friends$1$2.class b/bin/com/architects/findme/Friends$1$2.class new file mode 100644 index 0000000..a0393f9 Binary files /dev/null and b/bin/com/architects/findme/Friends$1$2.class differ diff --git a/bin/com/architects/findme/Friends$1.class b/bin/com/architects/findme/Friends$1.class index 0ddf7c8..147ef7e 100644 Binary files a/bin/com/architects/findme/Friends$1.class and b/bin/com/architects/findme/Friends$1.class differ diff --git a/bin/com/architects/findme/Friends$2.class b/bin/com/architects/findme/Friends$2.class new file mode 100644 index 0000000..e4e9383 Binary files /dev/null and b/bin/com/architects/findme/Friends$2.class differ diff --git a/bin/com/architects/findme/Friends.class b/bin/com/architects/findme/Friends.class index b92a780..c66ea7f 100644 Binary files a/bin/com/architects/findme/Friends.class and b/bin/com/architects/findme/Friends.class differ diff --git a/bin/com/architects/findme/Login.class b/bin/com/architects/findme/Login.class index 1e1dd6c..31fa23a 100644 Binary files a/bin/com/architects/findme/Login.class and b/bin/com/architects/findme/Login.class differ diff --git a/bin/com/architects/findme/Main.class b/bin/com/architects/findme/Main.class new file mode 100644 index 0000000..7060842 Binary files /dev/null and b/bin/com/architects/findme/Main.class differ diff --git a/bin/com/architects/findme/MapNearby$MyLocationListener.class b/bin/com/architects/findme/MapNearby$MyLocationListener.class new file mode 100644 index 0000000..ec84cd3 Binary files /dev/null and b/bin/com/architects/findme/MapNearby$MyLocationListener.class differ diff --git a/bin/com/architects/findme/MapNearby.class b/bin/com/architects/findme/MapNearby.class new file mode 100644 index 0000000..c49a364 Binary files /dev/null and b/bin/com/architects/findme/MapNearby.class differ diff --git a/bin/com/architects/findme/Messages.class b/bin/com/architects/findme/Messages.class index 00b57bd..6e92210 100644 Binary files a/bin/com/architects/findme/Messages.class and b/bin/com/architects/findme/Messages.class differ diff --git a/bin/com/architects/findme/Nearby$1.class b/bin/com/architects/findme/Nearby$1.class index d6a106f..4b24d92 100644 Binary files a/bin/com/architects/findme/Nearby$1.class and b/bin/com/architects/findme/Nearby$1.class differ diff --git a/bin/com/architects/findme/Nearby$MyLocationListener.class b/bin/com/architects/findme/Nearby$MyLocationListener.class index 57e42b0..823ee18 100644 Binary files a/bin/com/architects/findme/Nearby$MyLocationListener.class and b/bin/com/architects/findme/Nearby$MyLocationListener.class differ diff --git a/bin/com/architects/findme/Nearby.class b/bin/com/architects/findme/Nearby.class index d89f88a..355d03e 100644 Binary files a/bin/com/architects/findme/Nearby.class and b/bin/com/architects/findme/Nearby.class differ diff --git a/bin/com/architects/findme/PeopleItemizedOverlay.class b/bin/com/architects/findme/PeopleItemizedOverlay.class new file mode 100644 index 0000000..416525b Binary files /dev/null and b/bin/com/architects/findme/PeopleItemizedOverlay.class differ diff --git a/bin/com/architects/findme/Profile.class b/bin/com/architects/findme/Profile.class index 0869e5d..2440170 100644 Binary files a/bin/com/architects/findme/Profile.class and b/bin/com/architects/findme/Profile.class differ diff --git a/bin/com/architects/findme/R$drawable.class b/bin/com/architects/findme/R$drawable.class index 398a3ea..32934b3 100644 Binary files a/bin/com/architects/findme/R$drawable.class and b/bin/com/architects/findme/R$drawable.class differ diff --git a/bin/com/architects/findme/R$id.class b/bin/com/architects/findme/R$id.class index 52b2d48..98bdeac 100644 Binary files a/bin/com/architects/findme/R$id.class and b/bin/com/architects/findme/R$id.class differ diff --git a/bin/com/architects/findme/R$layout.class b/bin/com/architects/findme/R$layout.class index 40c94b7..bf0686e 100644 Binary files a/bin/com/architects/findme/R$layout.class and b/bin/com/architects/findme/R$layout.class differ diff --git a/bin/com/architects/findme/R$menu.class b/bin/com/architects/findme/R$menu.class index 699d4c5..2cb9651 100644 Binary files a/bin/com/architects/findme/R$menu.class and b/bin/com/architects/findme/R$menu.class differ diff --git a/bin/com/architects/findme/R$string.class b/bin/com/architects/findme/R$string.class index 40971ac..bb37eb0 100644 Binary files a/bin/com/architects/findme/R$string.class and b/bin/com/architects/findme/R$string.class differ diff --git a/bin/com/architects/findme/Registration.class b/bin/com/architects/findme/Registration.class index f1f6851..9c36963 100644 Binary files a/bin/com/architects/findme/Registration.class and b/bin/com/architects/findme/Registration.class differ diff --git a/bin/com/architects/findme/Search$1.class b/bin/com/architects/findme/Search$1.class index bc62498..a3d8cad 100644 Binary files a/bin/com/architects/findme/Search$1.class and b/bin/com/architects/findme/Search$1.class differ diff --git a/bin/com/architects/findme/Search.class b/bin/com/architects/findme/Search.class index 5de7ecc..f35baf0 100644 Binary files a/bin/com/architects/findme/Search.class and b/bin/com/architects/findme/Search.class differ diff --git a/bin/com/architects/helper/AccountHelper.class b/bin/com/architects/helper/AccountHelper.class index 8e3f6c0..107d9e3 100644 Binary files a/bin/com/architects/helper/AccountHelper.class and b/bin/com/architects/helper/AccountHelper.class differ diff --git a/bin/com/architects/helper/FriendsHelper.class b/bin/com/architects/helper/FriendsHelper.class index c305f2a..ade8acb 100644 Binary files a/bin/com/architects/helper/FriendsHelper.class and b/bin/com/architects/helper/FriendsHelper.class differ diff --git a/bin/com/architects/helper/LocationHelper$MyLocationListener.class b/bin/com/architects/helper/LocationHelper$MyLocationListener.class index 1cd1567..9e12261 100644 Binary files a/bin/com/architects/helper/LocationHelper$MyLocationListener.class and b/bin/com/architects/helper/LocationHelper$MyLocationListener.class differ diff --git a/bin/com/architects/helper/LocationHelper.class b/bin/com/architects/helper/LocationHelper.class index 223d152..aee1591 100644 Binary files a/bin/com/architects/helper/LocationHelper.class and b/bin/com/architects/helper/LocationHelper.class differ diff --git a/bin/findMe.apk b/bin/findMe.apk index 8bf4a2d..7e78c32 100644 Binary files a/bin/findMe.apk and b/bin/findMe.apk differ diff --git a/bin/resources.ap_ b/bin/resources.ap_ index ba878f9..4cd7aaa 100644 Binary files a/bin/resources.ap_ and b/bin/resources.ap_ differ diff --git a/default.properties b/default.properties index e2e8061..420db56 100644 --- a/default.properties +++ b/default.properties @@ -8,4 +8,4 @@ # project structure. # Project target. -target=android-8 +target=Google Inc.:Google APIs:8 diff --git a/gen/com/architects/findme/R.java b/gen/com/architects/findme/R.java index fcf16e1..132d37d 100644 --- a/gen/com/architects/findme/R.java +++ b/gen/com/architects/findme/R.java @@ -37,30 +37,34 @@ public final class R { public static final int icon=0x7f02000c; public static final int logo=0x7f02000d; public static final int logout=0x7f02000e; - public static final int me=0x7f02000f; - public static final int messages=0x7f020010; - public static final int nearby=0x7f020011; - public static final int search=0x7f020012; - public static final int tab_bg_selected=0x7f020013; - public static final int tab_bg_selector=0x7f020014; - public static final int tab_bg_unselected=0x7f020015; - public static final int tab_divider=0x7f020016; - public static final int tab_text_selector=0x7f020017; - public static final int top_bg=0x7f020018; - public static final int user=0x7f020019; + public static final int marker=0x7f02000f; + public static final int markerme=0x7f020010; + public static final int me=0x7f020011; + public static final int messages=0x7f020012; + public static final int nearby=0x7f020013; + public static final int search=0x7f020014; + public static final int tab_bg_selected=0x7f020015; + public static final int tab_bg_selector=0x7f020016; + public static final int tab_bg_unselected=0x7f020017; + public static final int tab_divider=0x7f020018; + public static final int tab_text_selector=0x7f020019; + public static final int top_bg=0x7f02001a; + public static final int user=0x7f02001b; + public static final int user_big=0x7f02001c; } public static final class id { public static final int ButtonLoginUser=0x7f080015; - public static final int ButtonRegisterUser=0x7f080028; + public static final int ButtonRegisterUser=0x7f08002c; public static final int ButtonUserRegistration=0x7f080017; public static final int EditTextLoginMail=0x7f080011; public static final int EditTextLoginPassword=0x7f080012; - public static final int EditTextRegistrationMail=0x7f080026; - public static final int EditTextRegistrationName=0x7f080025; - public static final int EditTextRegistrationPassword=0x7f080027; - public static final int SearchInput=0x7f08002b; + public static final int EditTextRegistrationMail=0x7f08002a; + public static final int EditTextRegistrationName=0x7f080029; + public static final int EditTextRegistrationPassword=0x7f08002b; + public static final int SearchInput=0x7f080030; public static final int SpinnerLoginUserStatus=0x7f080014; public static final int TextViewTitle=0x7f080013; + public static final int add=0x7f080036; public static final int circlecc=0x7f080000; public static final int circlecc_image=0x7f080001; public static final int conversation=0x7f080002; @@ -68,11 +72,11 @@ public final class R { public static final int findmemenuItems=0x7f080006; public static final int friends=0x7f080008; public static final int friendslist=0x7f08000f; - public static final int homebutton=0x7f080030; - public static final int icon=0x7f080031; - public static final int icontext=0x7f080033; + public static final int homebutton=0x7f080035; public static final int logout=0x7f08000c; + public static final int mapView=0x7f080025; public static final int me=0x7f08000b; + public static final int message=0x7f080037; public static final int messageOverview=0x7f08001a; public static final int messageOverviewList=0x7f080003; public static final int message_item=0x7f080020; @@ -86,18 +90,21 @@ public final class R { public static final int nearby=0x7f080007; public static final int nearby_list_text=0x7f080024; public static final int nearbylist=0x7f080023; + public static final int profile=0x7f080026; + public static final int profilemail=0x7f080028; + public static final int profilename=0x7f080027; + public static final int request_dialog=0x7f08002d; public static final int requests=0x7f080010; public static final int search=0x7f08000a; - public static final int searchList=0x7f080029; - public static final int search_dialog=0x7f08002a; + public static final int searchList=0x7f08002e; + public static final int search_dialog=0x7f08002f; public static final int tabhost=0x7f08000e; - public static final int tabsLayout=0x7f08002c; - public static final int tabsText=0x7f08002d; + public static final int tabsLayout=0x7f080031; + public static final int tabsText=0x7f080032; public static final int test_image=0x7f080016; - public static final int text=0x7f080032; - public static final int title=0x7f08002e; + public static final int title=0x7f080033; public static final int title2138=0x7f08001c; - public static final int titleText=0x7f08002f; + public static final int titleText=0x7f080034; public static final int topbb=0x7f080022; public static final int topbb2=0x7f08000d; public static final int topbb9864=0x7f08001b; @@ -117,15 +124,19 @@ public final class R { public static final int messsage_item=0x7f03000a; public static final int nearby=0x7f03000b; public static final int nearby_list_item=0x7f03000c; - public static final int registration=0x7f03000d; - public static final int search=0x7f03000e; - public static final int search_dialog=0x7f03000f; - public static final int tabs_bg=0x7f030010; - public static final int title=0x7f030011; - public static final int topbar=0x7f030012; + public static final int nearby_map=0x7f03000d; + public static final int profile=0x7f03000e; + public static final int registration=0x7f03000f; + public static final int request_dialog=0x7f030010; + public static final int search=0x7f030011; + public static final int search_dialog=0x7f030012; + public static final int tabs_bg=0x7f030013; + public static final int title=0x7f030014; + public static final int topbar=0x7f030015; } public static final class menu { - public static final int menu=0x7f070000; + public static final int map=0x7f070000; + public static final int menu=0x7f070001; } public static final class string { public static final int app_name=0x7f060000; diff --git a/res/drawable-hdpi/marker.png b/res/drawable-hdpi/marker.png new file mode 100644 index 0000000..2123499 Binary files /dev/null and b/res/drawable-hdpi/marker.png differ diff --git a/res/drawable-hdpi/markerme.png b/res/drawable-hdpi/markerme.png new file mode 100644 index 0000000..8cd3d24 Binary files /dev/null and b/res/drawable-hdpi/markerme.png differ diff --git a/res/drawable-hdpi/user_big.png b/res/drawable-hdpi/user_big.png new file mode 100644 index 0000000..5d36cf5 Binary files /dev/null and b/res/drawable-hdpi/user_big.png differ diff --git a/res/layout/conversation.xml b/res/layout/conversation.xml index 29d12d9..a585c57 100644 --- a/res/layout/conversation.xml +++ b/res/layout/conversation.xml @@ -16,6 +16,7 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="@color/white" + android:fadingEdge="none" android:divider="@color/lightdiv" android:dividerHeight="1dip"> diff --git a/res/layout/nearby_map.xml b/res/layout/nearby_map.xml new file mode 100644 index 0000000..83b02e3 --- /dev/null +++ b/res/layout/nearby_map.xml @@ -0,0 +1,20 @@ + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/profile.xml b/res/layout/profile.xml new file mode 100644 index 0000000..5be4171 --- /dev/null +++ b/res/layout/profile.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/request_dialog.xml b/res/layout/request_dialog.xml new file mode 100644 index 0000000..4be973a --- /dev/null +++ b/res/layout/request_dialog.xml @@ -0,0 +1,8 @@ + + + \ No newline at end of file diff --git a/res/menu/map.xml b/res/menu/map.xml new file mode 100644 index 0000000..b8e893d --- /dev/null +++ b/res/menu/map.xml @@ -0,0 +1,6 @@ + + + + diff --git a/res/menu/menu.xml b/res/menu/menu.xml index 4079cbb..b44cea8 100644 --- a/res/menu/menu.xml +++ b/res/menu/menu.xml @@ -1,10 +1,9 @@ - - - + + diff --git a/src/com/architects/findme/Conversation.java b/src/com/architects/findme/Conversation.java index 51da93c..00cbf95 100644 --- a/src/com/architects/findme/Conversation.java +++ b/src/com/architects/findme/Conversation.java @@ -119,8 +119,9 @@ public class Conversation extends Activity { else { Spanned mys = Html.fromHtml("Ich:
" + text); - list.add(mys); + list.add(0, mys); adapter.notifyDataSetChanged(); + Toast.makeText(getApplicationContext(), "Successfully sent!", Toast.LENGTH_SHORT).show(); } } diff --git a/src/com/architects/findme/FindMe.java b/src/com/architects/findme/FindMe.java index 3a5fafd..3531076 100644 --- a/src/com/architects/findme/FindMe.java +++ b/src/com/architects/findme/FindMe.java @@ -30,47 +30,7 @@ public class FindMe extends Activity super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); - FindMe.this.setContentView(R.layout.main); - - String loginData[] = new String[3]; - - // save login credentials to storage - SharedPreferences preferences = this.getSharedPreferences(PREFS_NAME, MODE_WORLD_READABLE); - loginData[0] = preferences.getString("mail", ""); - loginData[1] = preferences.getString("password", ""); - loginData[2] = preferences.getString("status", ""); - - if (loginData[0].compareTo("") != 0) - { - String response = Login.login(loginData).trim(); - // check if login was successful - Log.v(TAG, response); - if(response.compareTo("01") == 0) - { - Intent myIntent = new Intent(this, FindMeMenu.class); - startActivity(myIntent); - } - } - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.menu, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.icon: Toast.makeText(this, "You pressed the icon!", Toast.LENGTH_LONG).show(); - break; - case R.id.text: Toast.makeText(this, "You pressed the text!", Toast.LENGTH_LONG).show(); - break; - case R.id.icontext: Toast.makeText(this, "You pressed the icon and text!", Toast.LENGTH_LONG).show(); - break; - } - return true; + setContentView(R.layout.main); } // VIEWS diff --git a/src/com/architects/findme/FindMeMenu.java b/src/com/architects/findme/FindMeMenu.java index 2c78f99..96404c7 100644 --- a/src/com/architects/findme/FindMeMenu.java +++ b/src/com/architects/findme/FindMeMenu.java @@ -1,25 +1,18 @@ package com.architects.findme; -import com.architects.resources.*; +import com.architects.helper.*; -import android.R.drawable; import android.app.Activity; import android.app.AlertDialog; -import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; -import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.Window; -import android.widget.Button; import android.widget.EditText; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.Toast; public class FindMeMenu extends Activity @@ -54,8 +47,15 @@ public class FindMeMenu extends Activity } public void meMenuHandler(View button) { - Intent myIntent = new Intent(button.getContext(), Search.class); - startActivity(myIntent); + String[] loginCredentials = AccountHelper.getLoginPreferences(this); + + Bundle bundle = new Bundle(); + bundle.putString("mail", loginCredentials[0]); + bundle.putString("name", "Tobias Klika"); + + Intent newIntent = new Intent(getApplicationContext(), Profile.class); + newIntent.putExtras(bundle); + startActivity(newIntent); } public void searchMenuHandler(View button) { @@ -103,15 +103,13 @@ public class FindMeMenu extends Activity Log.v(TAG, response); if(response.compareTo("06") == 0) { - // remove login credentials - SharedPreferences.Editor prefsEditor = preferences.edit(); - prefsEditor.clear(); - prefsEditor.commit(); - - Toast.makeText(button.getContext(), "Logout successful", Toast.LENGTH_LONG).show(); - Intent myIntent = new Intent(button.getContext(), FindMe.class); - startActivity(myIntent); - + if(AccountHelper.clearLoginPreferences(this)) + { + Toast.makeText(button.getContext(), "Logout successful", Toast.LENGTH_LONG).show(); + Intent myIntent = new Intent(button.getContext(), Main.class); + startActivity(myIntent); + finish(); + } } else Toast.makeText(this, "Logout failed. Try again!", Toast.LENGTH_LONG).show(); } diff --git a/src/com/architects/findme/Friends.java b/src/com/architects/findme/Friends.java index 2780785..0c6f475 100644 --- a/src/com/architects/findme/Friends.java +++ b/src/com/architects/findme/Friends.java @@ -4,19 +4,25 @@ import com.architects.findme.R; import com.architects.helper.*; import android.app.Activity; +import android.app.AlertDialog; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.Window; +import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.EditText; import android.widget.ListView; import android.widget.TabHost; import android.widget.TextView; +import android.widget.AdapterView.OnItemClickListener; import android.widget.TabHost.TabContentFactory; import android.widget.TabHost.TabSpec; +import android.widget.Toast; public class Friends extends Activity { private TabHost mTabHost; @@ -24,6 +30,8 @@ public class Friends extends Activity { private ListView friends; private ListView requests; public static final String PREFS_NAME = "LoginCredentials"; + + public String mymail; //private static final String TAG = "findme"; private void setupTabHost() { @@ -31,7 +39,6 @@ public class Friends extends Activity { mTabHost.setup(); } - /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -47,6 +54,7 @@ public class Friends extends Activity { // get mail SharedPreferences preferences = this.getSharedPreferences(PREFS_NAME, MODE_WORLD_READABLE); String mail = preferences.getString("mail", ""); + mymail = mail; String[] friendslist = FriendsHelper.getFriendsList(mail); String[] requestslist = FriendsHelper.getRequestsList(mail); @@ -58,6 +66,40 @@ public class Friends extends Activity { setupTab(friends, "Friends"); setupTab(requests, "Requests"); + + + requests.setOnItemClickListener(new OnItemClickListener() { + public void onItemClick(AdapterView parent, View view, int position, long id) { + TextView me = (TextView) view.findViewById(R.id.nearby_list_text); + final String mail = (String) me.getText(); + + final AlertDialog.Builder alertbox = new AlertDialog.Builder(Friends.this); + LayoutInflater factory = LayoutInflater.from(Friends.this); + final View input = factory.inflate(R.layout.request_dialog, null); + + alertbox.setTitle("Friend Request"); + alertbox.setView(input); + + alertbox.setPositiveButton("Accept", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int whichButton) { + FriendsHelper.request("add", mail, mymail); + FriendsHelper.request("decline", mail, mymail); + + Toast.makeText(Friends.this, "Friend successfully added!", Toast.LENGTH_LONG).show(); + } + }); + + alertbox.setNegativeButton("Decline", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int whichButton) { + FriendsHelper.request("decline", mail, mymail); + + Toast.makeText(Friends.this, "Friend request declined!", Toast.LENGTH_LONG).show(); + } + }); + alertbox.show(); + } + }); } private void setupTab(final View view, final String tag) { diff --git a/src/com/architects/findme/Login.java b/src/com/architects/findme/Login.java index 85bc6c8..babdf77 100644 --- a/src/com/architects/findme/Login.java +++ b/src/com/architects/findme/Login.java @@ -7,6 +7,7 @@ import com.architects.findme.R; import com.architects.helper.AccountHelper; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; diff --git a/src/com/architects/findme/Main.java b/src/com/architects/findme/Main.java new file mode 100644 index 0000000..250d1e8 --- /dev/null +++ b/src/com/architects/findme/Main.java @@ -0,0 +1,72 @@ +package com.architects.findme; + +import com.architects.helper.*; +import com.architects.findme.R; +import com.architects.helper.StateHelper; +import com.architects.findme.Login; +import com.architects.findme.FindMeMenu; + +import android.app.Activity; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.util.Log; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.Window; +import android.widget.Toast; + +public class Main extends Activity +{ + public static final String PREFS_NAME = "LoginCredentials"; + public StateHelper phoneState = new StateHelper(); + private static final String TAG = "test"; + private boolean showEntry = false; + + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + boolean isLogged = AccountHelper.isLogged(this); + + if(isLogged) + { + String[] loginCredentials = AccountHelper.getLoginPreferences(this); + /* + String response = Login.login(loginCredentials).trim(); + // check if login was successful + Log.v(TAG, response); + if(response.compareTo("01") == 0) + { + Intent myIntent = new Intent(this, FindMeMenu.class); + startActivity(myIntent); + }*/ + Intent myIntent = new Intent(this, FindMeMenu.class); + startActivity(myIntent); + } + else + { + Intent myIntent = new Intent(this, FindMe.class); + startActivity(myIntent); + } + finish(); + } + + // VIEWS + public void drawRegistrationHandler(View button) + { + Intent myIntent = new Intent(button.getContext(), Registration.class); + startActivity(myIntent); + } + + public void drawLoginHandler(View button) + { + Intent myIntent = new Intent(button.getContext(), Login.class); + startActivity(myIntent); + } + + +} \ No newline at end of file diff --git a/src/com/architects/findme/MapNearby.java b/src/com/architects/findme/MapNearby.java new file mode 100644 index 0000000..3ee59ec --- /dev/null +++ b/src/com/architects/findme/MapNearby.java @@ -0,0 +1,217 @@ +package com.architects.findme; + +import java.util.List; + +import org.json.JSONException; +import org.json.JSONObject; + +import com.google.android.maps.GeoPoint; +import com.google.android.maps.MapActivity; +import com.google.android.maps.MapController; +import com.google.android.maps.MapView; +import com.google.android.maps.Overlay; +import com.google.android.maps.OverlayItem; + +import com.architects.helper.*; + +import android.content.Context; +import android.content.Intent; +import android.graphics.drawable.Drawable; +import android.location.Location; +import android.location.LocationListener; +import android.location.LocationManager; +import android.os.Bundle; +import android.text.Html; +import android.util.Log; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.widget.TextView; +import android.widget.Toast; + +public class MapNearby extends MapActivity +{ + public int standardZoom = 12; + private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 0; // in Meters + private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000; // in Milliseconds + private static final String TAG = "test"; + + private MapController mapController; + private List mapOverlays; + private MapView mapView; + private GeoPoint geoPoint; + private PeopleItemizedOverlay itemizedoverlay; + protected LocationManager locationManager; + + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.nearby_map); + + + // set title bar + TextView title = (TextView) findViewById(R.id.titleText); + title.setText(Html.fromHtml("Map")); + + // initialize map view + mapView = (MapView) findViewById(R.id.mapView); + mapView.setBuiltInZoomControls(true); + mapView.setStreetView(true); + + // get map mod vars + mapOverlays = mapView.getOverlays(); + mapController = mapView.getController(); + + + + // go to my location + String coordinates[] = new String[2]; + coordinates[0] = String.valueOf("30"); + coordinates[1] = String.valueOf("-122"); + geoPoint = LocationHelper.toGeoPoint(coordinates); + mapController.animateTo(geoPoint); + mapController.setZoom(standardZoom); + mapView.invalidate(); + + // show my marker + Drawable marker = MapNearby.this.getResources().getDrawable(R.drawable.marker); + addMe(mapOverlays); + + + // show people marker + itemizedoverlay = new PeopleItemizedOverlay(marker, MapNearby.this); + + JSONObject json = AccountHelper.doHttpGet("get_online_user.php"); + //String[] onlineUser = new String[json.length()]; + + + + + + String cood[] = new String[2]; + + try { + JSONObject json_data = null; + String x; + + for(int i=0;i mapOverlays) { + Drawable markerme = this.getResources().getDrawable(R.drawable.markerme); + + // add my position + PeopleItemizedOverlay meitemizedoverlay = new PeopleItemizedOverlay(markerme, this); + OverlayItem meoverlayitem = new OverlayItem(geoPoint, "Me", "This is me!"); + meitemizedoverlay.addOverlay(meoverlayitem); + mapOverlays.add(meitemizedoverlay); + } + + + private void addPerson(List mapOverlays, String[] coord) { + GeoPoint point = LocationHelper.toGeoPoint(coord); + + OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", "I'm in Mexico City!"); + + itemizedoverlay.addOverlay(overlayitem); + } + + public void enterMenuHandler(View button) + { + Intent myIntent = new Intent(button.getContext(), FindMeMenu.class); + startActivity(myIntent); + } + + + + public void updateLocationHandler(View button) + { + updateLocation(); + } + public void updateLocation() + { + showCurrentLocation(); + } + + protected String[] showCurrentLocation() { + + String[] loc = new String[2]; + Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + + if (location != null) { + String message = String.format( + "Current Location \n Longitude: %1$s \n Latitude: %2$s", + location.getLongitude(), location.getLatitude() + ); + loc[0] = String.valueOf(location.getLatitude()); + loc[1] = String.valueOf(location.getLongitude()); + // Toast.makeText(Nearby.this, message, Toast.LENGTH_LONG).show(); + } + return loc; + } + + + + + private class MyLocationListener implements LocationListener { + + public void onLocationChanged(Location location) { + String message = String.format( + "New Location \n Longitude: %1$s \n Latitude: %2$s", + location.getLongitude(), location.getLatitude() + ); + Log.v(TAG, message); + + + + + //Toast.makeText(Nearby.this, message, Toast.LENGTH_LONG).show(); + } + + public void onStatusChanged(String s, int i, Bundle b) { + //Toast.makeText(Nearby.this, "Provider status changed", Toast.LENGTH_LONG).show(); + } + + public void onProviderDisabled(String s) { + Toast.makeText(MapNearby.this, + "Provider disabled by the user. GPS turned off", + Toast.LENGTH_LONG).show(); + } + + public void onProviderEnabled(String s) { + Toast.makeText(MapNearby.this, + "Provider enabled by the user. GPS turned on", + Toast.LENGTH_LONG).show(); + } + + } +} \ No newline at end of file diff --git a/src/com/architects/findme/Messages.java b/src/com/architects/findme/Messages.java index b5f57a9..ce63338 100644 --- a/src/com/architects/findme/Messages.java +++ b/src/com/architects/findme/Messages.java @@ -95,29 +95,6 @@ public class Messages extends Activity { startActivityForResult(newIntent, 0); } }); - - - - - - - - - - - - - /* - resultsList.setAdapter(new ArrayAdapter(this, R.layout.nearby_list_item, R.id.nearby_list_text, results)); - - resultsList.setTextFilterEnabled(true); - - resultsList.setOnItemClickListener(new OnItemClickListener() { - public void onItemClick(AdapterView parent, View view, int position, long id) { - // When clicked, show a toast with the TextView text - Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); - } - });*/ } public void enterMenuHandler(View button) diff --git a/src/com/architects/findme/Nearby.java b/src/com/architects/findme/Nearby.java index 113422d..0f1a208 100644 --- a/src/com/architects/findme/Nearby.java +++ b/src/com/architects/findme/Nearby.java @@ -48,14 +48,18 @@ public class Nearby extends Activity { JSONObject json = AccountHelper.doHttpGet("get_online_user.php"); String[] onlineUser = new String[json.length()]; + + final String[] mails = new String[json.length()]; + final String[] names = new String[json.length()]; + try { Log.v(TAG, "Länge:"+json.length()); JSONObject json_data = null; String x; Location location = new Location(""); - location.setLatitude(30); - location.setLongitude(-122); + location.setLatitude(13.0443); + location.setLongitude(48.2557); for(int i=0;i parent, View view, int position, long id) { - // When clicked, show a toast with the TextView text - Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); + Bundle bundle = new Bundle(); + bundle.putString("mail", mails[position]); + bundle.putString("name", names[position]); + + Intent newIntent = new Intent(getApplicationContext(), Profile.class); + newIntent.putExtras(bundle); + startActivity(newIntent); } }); } diff --git a/src/com/architects/findme/PeopleItemizedOverlay.java b/src/com/architects/findme/PeopleItemizedOverlay.java new file mode 100644 index 0000000..797baec --- /dev/null +++ b/src/com/architects/findme/PeopleItemizedOverlay.java @@ -0,0 +1,101 @@ +package com.architects.findme; + +import java.util.ArrayList; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.EditText; + +import com.google.android.maps.ItemizedOverlay; +import com.google.android.maps.OverlayItem; + +@SuppressWarnings("rawtypes") +public class PeopleItemizedOverlay extends ItemizedOverlay +{ + private ArrayList mOverlays = new ArrayList(); + private Context mContext; + private static final String TAG = "findMe"; + + public PeopleItemizedOverlay(Drawable defaultMarker, Context context) { + super(boundCenterBottom(defaultMarker)); + mContext = context; + } + + @Override + protected OverlayItem createItem(int i) { + return mOverlays.get(i); + } + + @Override + public int size() { + return mOverlays.size(); + } + + + @Override + protected boolean onTap(int index) { + OverlayItem item = mOverlays.get(index); + + Bundle bundle = new Bundle(); + bundle.putString("mail", "klika@live.at"); + bundle.putString("name", "Tobias Klika"); + + Intent newIntent = new Intent(mContext.getApplicationContext(), Profile.class); + newIntent.putExtras(bundle); + mContext.startActivity(newIntent); + + return true; + + /* + AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); + dialog.setTitle(item.getTitle()); + + LayoutInflater factory = LayoutInflater.from(mContext); + final View input = factory.inflate(R.layout.map_dialog, null); + dialog.setView(input); + + + dialog.setPositiveButton("Profile", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int whichButton) { + // get the input value + EditText mText; + mText = (EditText) input.findViewById(R.id.MapInput); + String text = mText.getText().toString(); + + // redirect to search results + Bundle bundle = new Bundle(); + bundle.putString("mail", text); + + Log.v(TAG, "HI"); + Intent newIntent = new Intent(mContext.getApplicationContext(), Login.class); + newIntent.putExtras(bundle); + mContext.startActivity(newIntent); + } + }); + + dialog.setNegativeButton("Hide", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int whichButton) { + dialog.cancel(); + } + }); + + + dialog.show(); + return true; + */ + } + + + public void addOverlay(OverlayItem overlay) { + mOverlays.add(overlay); + populate(); + } + +} diff --git a/src/com/architects/findme/Profile.java b/src/com/architects/findme/Profile.java index 8b346c3..82a1b9f 100644 --- a/src/com/architects/findme/Profile.java +++ b/src/com/architects/findme/Profile.java @@ -1,7 +1,109 @@ package com.architects.findme; -import android.app.Activity; +import org.json.JSONObject; -public class Profile extends Activity { +import com.architects.helper.*; +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.text.Html; +import android.util.Log; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.Window; +import android.widget.TextView; +import android.widget.Toast; + +public class Profile extends Activity +{ + private static final String TAG = "findme"; + private String userName; + private String userMail; + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + + setContentView(R.layout.profile); + + + // get conversation partner + Bundle bundle = this.getIntent().getExtras(); + userMail = bundle.getString("mail"); + userName = bundle.getString("name"); + + Log.v(TAG, userMail+" ---"+userName); + + // JSONObject j = FriendsHelper.getUserInfo(mail); + + + // set title bar + TextView title = (TextView) findViewById(R.id.titleText); + title.setText("Profile"); + + // set name and mail + TextView name = (TextView) findViewById(R.id.profilename); + TextView mail = (TextView) findViewById(R.id.profilemail); + + name.setText(Html.fromHtml("Name:
" + + userName)); + mail.setText(Html.fromHtml("Mail:
" + + userMail)); + } + + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.menu, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + String title = item.getTitle().toString(); + switch (item.getItemId()) { + case R.id.add: + addHandler(title); + break; + case R.id.message: + messageHandler(title); + break; + } + return true; + } + + + public void addHandler(String title) + { + String[] logPref = AccountHelper.getLoginPreferences(this); + String response = FriendsHelper.request("request", logPref[0], userMail).trim(); + + if(response.compareTo("01") == 0) + response = "Request sent!"; + Toast.makeText(this, response, Toast.LENGTH_LONG).show(); + } + + public void messageHandler(String title) + { + Bundle bundle = new Bundle(); + bundle.putString("mail", userMail); + bundle.putString("name", userName); + + Intent newIntent = new Intent(getApplicationContext(), Conversation.class); + newIntent.putExtras(bundle); + startActivityForResult(newIntent, 0); + } + + + public void enterMenuHandler(View button) + { + Intent myIntent = new Intent(button.getContext(), FindMeMenu.class); + startActivity(myIntent); + } } diff --git a/src/com/architects/findme/Registration.java b/src/com/architects/findme/Registration.java index 166fca3..a13c27b 100644 --- a/src/com/architects/findme/Registration.java +++ b/src/com/architects/findme/Registration.java @@ -9,7 +9,10 @@ import com.architects.findme.R.layout; import com.architects.helper.AccountHelper; import android.app.Activity; +import android.content.Intent; +import android.content.SharedPreferences; import android.os.Bundle; +import android.util.Log; import android.view.View; import android.view.Window; import android.widget.EditText; @@ -17,6 +20,8 @@ import android.widget.Toast; public class Registration extends Activity { + public static final String PREFS_NAME = "LoginCredentials"; + @Override public void onCreate(Bundle savedInstanceState) { @@ -59,8 +64,39 @@ public class Registration extends Activity final EditText passwordField = (EditText) findViewById(R.id.EditTextRegistrationPassword); registrationData[2] = passwordField.getText().toString(); - String response = register(registrationData); - Toast.makeText(this, response, Toast.LENGTH_LONG).show(); + String loginData[] = new String[3]; + + loginData[0] = registrationData[1]; + loginData[1] = registrationData[2]; + loginData[2] = "online"; + + String response = register(registrationData).trim(); + + if(response.compareTo("01") == 0) + { + response = Login.login(loginData).trim(); + + + // check if login was successful + if(response.compareTo("01") == 0) + { + // save login credentials to storage + SharedPreferences preferences = this.getSharedPreferences(PREFS_NAME, MODE_WORLD_READABLE); + SharedPreferences.Editor prefsEditor = preferences.edit(); + prefsEditor.putString("mail", loginData[0]); + prefsEditor.putString("password", loginData[1]); + prefsEditor.putString("status", loginData[2]); + prefsEditor.commit(); + + Intent myIntent = new Intent(button.getContext(), FindMeMenu.class); + startActivity(myIntent); + finish(); + } + else + Toast.makeText(this, response, Toast.LENGTH_LONG).show(); + } + else + Toast.makeText(this, response, Toast.LENGTH_LONG).show(); } } diff --git a/src/com/architects/findme/Search.java b/src/com/architects/findme/Search.java index ec68220..3ae4fe9 100644 --- a/src/com/architects/findme/Search.java +++ b/src/com/architects/findme/Search.java @@ -1,5 +1,7 @@ package com.architects.findme; +import org.json.JSONObject; + import com.architects.helper.*; import android.app.Activity; @@ -10,6 +12,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.text.Html; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -45,7 +48,33 @@ public class Search extends Activity { resultsList = (ListView) findViewById(R.id.searchList); // search results to string - String[] results = SearchHelper.getResults(query); + JSONObject j = new JSONObject(); + String params = "?query="+query; + j = AccountHelper.doHttpGet("search.php", params); + Log.v(TAG, j.toString()); + + final String[] mails = new String[j.length()]; + final String[] names = new String[j.length()]; + + String[] results = new String[j.length()]; + + try { + JSONObject json_data = null; + String x; + + for(int i=0;i(this, R.layout.nearby_list_item, R.id.nearby_list_text, results)); @@ -53,8 +82,13 @@ public class Search extends Activity { resultsList.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position, long id) { - // When clicked, show a toast with the TextView text - Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); + Bundle bundle = new Bundle(); + bundle.putString("mail", mails[position]); + bundle.putString("name", names[position]); + + Intent newIntent = new Intent(getApplicationContext(), Profile.class); + newIntent.putExtras(bundle); + startActivity(newIntent); } }); } diff --git a/src/com/architects/helper/AccountHelper.java b/src/com/architects/helper/AccountHelper.java index ccd716d..d880e25 100644 --- a/src/com/architects/helper/AccountHelper.java +++ b/src/com/architects/helper/AccountHelper.java @@ -18,11 +18,14 @@ import org.apache.http.params.HttpConnectionParams; import org.apache.http.protocol.HTTP; import org.json.JSONObject; +import android.content.Context; +import android.content.SharedPreferences; import android.util.Log; public class AccountHelper { private static final String TAG = "findme"; + public static final String PREFS_NAME = "LoginCredentials"; public static String doHttpPost(String url_end, JSONObject j) { @@ -92,6 +95,41 @@ public class AccountHelper } + public static Boolean isLogged(Context c) + { + SharedPreferences preferences = c.getSharedPreferences(PREFS_NAME, 0); + String mail = preferences.getString("mail", ""); + + if (mail.compareTo("") != 0) return true; + else return false; + } + + public static String[] getLoginPreferences(Context c) + { + String[] loginPreferences = new String[3]; + + SharedPreferences preferences = c.getSharedPreferences(PREFS_NAME, 0); + + loginPreferences[0] = preferences.getString("mail", ""); + loginPreferences[1] = preferences.getString("password", ""); + loginPreferences[2] = preferences.getString("status", ""); + + return loginPreferences; + } + + public static Boolean clearLoginPreferences(Context c) + { + SharedPreferences preferences = c.getSharedPreferences(PREFS_NAME, 0); + SharedPreferences.Editor prefsEditor = preferences.edit(); + + prefsEditor.clear(); + prefsEditor.commit(); + + return (isLogged(c)) ? false : true; + } + + + public static String createHashMd5(String str) { try diff --git a/src/com/architects/helper/FriendsHelper.java b/src/com/architects/helper/FriendsHelper.java index ea825ea..0b37246 100644 --- a/src/com/architects/helper/FriendsHelper.java +++ b/src/com/architects/helper/FriendsHelper.java @@ -56,10 +56,34 @@ public class FriendsHelper x = (new Integer(i)).toString(); json_data = j.getJSONObject(x); - friends[i] = json_data.getString("name") + "\n" + json_data.getString("id"); + friends[i] = json_data.getString("mail"); } return friends; } catch(Exception e) { return new String[0];} } + + public static String request(String type, String sender, String receiver) + { + JSONObject j = new JSONObject(); + try + { + j.put("sender", sender); + j.put("receiver", receiver); + j.put("type", type); + + return AccountHelper.doHttpPost("friend.php", j); + } + catch (JSONException e) + { + e.printStackTrace(); + return ""; + } + } + + public static JSONObject getUserInfo(String user) + { + String params = "?user="+user; + return AccountHelper.doHttpGet("get_user_info.php", params); + } } diff --git a/src/com/architects/helper/LocationHelper.java b/src/com/architects/helper/LocationHelper.java index a0464a7..460b835 100644 --- a/src/com/architects/helper/LocationHelper.java +++ b/src/com/architects/helper/LocationHelper.java @@ -1,6 +1,8 @@ package com.architects.helper; import com.architects.findme.R; +import com.google.android.maps.GeoPoint; + import android.app.Activity; import android.content.Context; import android.content.Intent; @@ -54,7 +56,7 @@ public class LocationHelper ); //Toast.makeText(myContext, message, Toast.LENGTH_LONG).show(); } - } + } private class MyLocationListener implements LocationListener { @@ -83,4 +85,14 @@ public class LocationHelper } } + + public static GeoPoint toGeoPoint(String[] coord) + { + double lat = Double.parseDouble(coord[0]); + double lng = Double.parseDouble(coord[1]); + + return new GeoPoint( + (int) (lat * 1E6), + (int) (lng * 1E6)); + } }