* #25268 changed animation, moved searchview
* #26000 working, call process slightly modified
diff --git a/src/com/savoirfairelinux/sflphone/fragments/ContactListFragment.java b/src/com/savoirfairelinux/sflphone/fragments/ContactListFragment.java
index 3fd80fa..d50fbdd 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/ContactListFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/ContactListFragment.java
@@ -33,10 +33,10 @@
import java.util.ArrayList;
+import android.animation.LayoutTransition;
import android.app.Activity;
import android.app.Fragment;
import android.app.LoaderManager;
-import android.content.Intent;
import android.content.Loader;
import android.net.Uri;
import android.os.Bundle;
@@ -47,30 +47,28 @@
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
-import android.view.MenuItem;
import android.view.View;
import android.view.View.DragShadowBuilder;
import android.view.View.OnClickListener;
import android.view.View.OnDragListener;
import android.view.ViewGroup;
+import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ImageButton;
+import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.SearchView;
+import android.widget.SearchView.OnCloseListener;
import android.widget.SearchView.OnQueryTextListener;
-import android.widget.ViewSwitcher;
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.adapters.ContactsAdapter;
import com.savoirfairelinux.sflphone.adapters.StarredContactsAdapter;
-import com.savoirfairelinux.sflphone.client.CallActivity;
-import com.savoirfairelinux.sflphone.fragments.HistoryFragment.Callbacks;
import com.savoirfairelinux.sflphone.loaders.ContactsLoader;
import com.savoirfairelinux.sflphone.model.CallContact;
-import com.savoirfairelinux.sflphone.model.SipCall;
import com.savoirfairelinux.sflphone.service.ISipService;
import com.savoirfairelinux.sflphone.views.TACGridView;
@@ -81,6 +79,8 @@
String mCurFilter;
+ private RelativeLayout mHandle;
+
public static final int CONTACT_LOADER = 555;
@Override
@@ -135,7 +135,7 @@
mCallbacks = (Callbacks) activity;
}
-
+
@Override
public void onDetach() {
super.onDetach();
@@ -159,23 +159,14 @@
public boolean onItemLongClick(AdapterView<?> av, View view, int pos, long id) {
DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view.findViewById(R.id.photo));
view.startDrag(null, shadowBuilder, view, 0);
-// view.setVisibility(View.INVISIBLE);
+ // view.setVisibility(View.INVISIBLE);
mCallbacks.onContactDragged();
+// ((SearchView) mHandle.findViewById(R.id.contact_search_text)).setIconified(true);
return true;
}
};
-// private void launchCallActivity(CallContact c) {
-// Log.i(TAG, "Launch Call Activity");
-// Bundle bundle = new Bundle();
-// bundle.putString("action", "call");
-// bundle.putParcelable("CallContact", c);
-// Intent intent = new Intent().setClass(getActivity(), CallActivity.class);
-// intent.putExtras(bundle);
-// getActivity().startActivity(intent);
-// }
-
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflatedView = inflater.inflate(R.layout.frag_contact_list, container, false);
@@ -187,7 +178,8 @@
@Override
public void onItemClick(AdapterView<?> arg0, View v, int pos, long arg3) {
mCallbacks.onContactSelected(mListAdapter.getItem(pos));
-
+// ((SearchView) mHandle.findViewById(R.id.contact_search_text)).setIconified(true);
+
}
});
list.setOnItemLongClickListener(mItemLongClickListener);
@@ -199,15 +191,15 @@
list.setAdapter(mListAdapter);
grid.setAdapter(mGridAdapter);
grid.setExpanded(true);
-
-
+
grid.setOnDragListener(dragListener);
grid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int pos, long arg3) {
-// launchCallActivity(mGridAdapter.getItem(pos));
+ // launchCallActivity(mGridAdapter.getItem(pos));
mCallbacks.onContactSelected(mGridAdapter.getItem(pos));
+// ((SearchView) mHandle.findViewById(R.id.contact_search_text)).setIconified(true);
}
});
grid.setOnItemLongClickListener(mItemLongClickListener);
@@ -226,10 +218,9 @@
case DragEvent.ACTION_DRAG_ENTERED:
break;
case DragEvent.ACTION_DRAG_EXITED:
-// v.setBackgroundDrawable(null);
+ // v.setBackgroundDrawable(null);
break;
case DragEvent.ACTION_DROP:
- View view = (View) event.getLocalState();
break;
case DragEvent.ACTION_DRAG_ENDED:
View view1 = (View) event.getLocalState();
@@ -241,22 +232,20 @@
}
};
- private RelativeLayout mHandle;
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// Place an action bar item for searching
-// inflater.inflate(R.menu.contact_list_menu, menu);
-// MenuItem item = menu.findItem(R.id.menu_search);
-// SearchView sv = new SearchView(getActivity());
-// sv.setOnQueryTextListener(this);
-// item.setActionView(sv);
+ // inflater.inflate(R.menu.contact_list_menu, menu);
+ // MenuItem item = menu.findItem(R.id.menu_search);
+ // SearchView sv = new SearchView(getActivity());
+ // sv.setOnQueryTextListener(this);
+ // item.setActionView(sv);
}
@Override
public boolean onQueryTextChange(String newText) {
-
- Log.i(TAG,"onQueryTextChangeonQueryTextChangeonQueryTextChangeonQueryTextChangeonQueryTextChangeonQueryTextChangeonQueryTextChangeonQueryTextChangeonQueryTextChangeonQueryTextChangeonQueryTextChange");
+
// Called when the action bar search text has changed. Update
// the search filter, and restart the loader to do a new query
// with this filter.
@@ -276,7 +265,6 @@
@Override
public boolean onQueryTextSubmit(String query) {
- Log.i(TAG,"onQueryTextSubmitonQueryTextSubmitonQueryTextSubmitonQueryTextSubmitonQueryTextSubmitonQueryTextSubmitonQueryTextSubmit");
// Return false to let the SearchView perform the default action
return false;
}
@@ -318,29 +306,34 @@
public void setHandleView(RelativeLayout handle) {
mHandle = handle;
-// ((ImageButton) handle.findViewById(R.id.contact_search)).setTag(R.id.contact_search, false);
+
+
+ // ((ImageButton) handle.findViewById(R.id.contact_search)).setTag(R.id.contact_search, false);
+
- ((SearchView)mHandle.findViewById(R.id.contact_search_text)).setOnQueryTextListener(this);
- ((SearchView)mHandle.findViewById(R.id.contact_search_text)).setOnSearchClickListener(new OnClickListener() {
+ ((ImageButton)handle.findViewById(R.id.contact_search_button)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
+ SearchView search = new SearchView(getActivity());
+ //Get the ID for the search bar LinearLayout
+ int searchBarId = search.getContext().getResources().getIdentifier("android:id/search_bar", null, null);
+ //Get the search bar Linearlayout
+ LinearLayout searchBar = (LinearLayout) search.findViewById(searchBarId);
+ searchBar.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
+ //Give the Linearlayout a transition animation.
+ searchBar.setLayoutTransition(new LayoutTransition());
+ search.setOnQueryTextListener(ContactListFragment.this);
+ search.setIconified(false);
+ getActivity().getActionBar().setDisplayShowCustomEnabled(true);
+ getActivity().getActionBar().setCustomView(search);
mCallbacks.openDrawer();
}
});
-// ((ImageButton) mHandle.findViewById(R.id.contact_search)).setOnClickListener(new OnClickListener() {
-//
-// @Override
-// public void onClick(View v) {
-// Log.i(TAG, "Click on serach");
-//// ((ViewSwitcher)mHandle.findViewById(R.id.view_switcher)).showNext();
-//// ((SearchView)mHandle.findViewById(R.id.contact_search_text)).
-//
-//
-// }
-// });
+
}
+
}
diff --git a/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java b/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java
index 853d0ff..8711384 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java
@@ -75,8 +75,8 @@
AccountSelectionAdapter mAdapter;
private Callbacks mCallbacks = sDummyCallbacks;
private Spinner spinnerAccounts;
-
- private static final int ACCOUNTS_LOADER = 555;
+
+ private static final int ACCOUNTS_LOADER = 555;
/**
* A dummy implementation of the {@link Callbacks} interface that does nothing. Used only when this fragment is not attached to an activity.
@@ -254,7 +254,8 @@
}
public void updateAllAccounts() {
- getActivity().getLoaderManager().restartLoader(ACCOUNTS_LOADER, null, this);
+ if (getActivity() != null)
+ getActivity().getLoaderManager().restartLoader(ACCOUNTS_LOADER, null, this);
}
diff --git a/src/com/savoirfairelinux/sflphone/fragments/CallElementListFragment.java b/src/com/savoirfairelinux/sflphone/fragments/HomeFragment.java
similarity index 94%
rename from src/com/savoirfairelinux/sflphone/fragments/CallElementListFragment.java
rename to src/com/savoirfairelinux/sflphone/fragments/HomeFragment.java
index 3d24cb4..a3dcdd7 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/CallElementListFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/HomeFragment.java
@@ -66,8 +66,8 @@
/**
* Main list of Call Elements. We don't manage contacts ourself so they are
*/
-public class CallElementListFragment extends ListFragment {
- private static final String TAG = CallElementListFragment.class.getSimpleName();
+public class HomeFragment extends ListFragment {
+ private static final String TAG = HomeFragment.class.getSimpleName();
private CallElementAdapter mAdapter;
@@ -254,20 +254,20 @@
}
- private static final int REQUEST_CODE_PREFERENCES = 1;
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- Log.i(TAG, "onOptionsItemSelected " + item.getItemId());
- switch (item.getItemId()) {
- case R.id.menu_settings:
- Intent launchPreferencesIntent = new Intent().setClass(getActivity(), SFLPhonePreferenceActivity.class);
- startActivityForResult(launchPreferencesIntent, SFLPhoneHomeActivity.REQUEST_CODE_PREFERENCES);
- break;
- }
-
- return super.onOptionsItemSelected(item);
- }
+// private static final int REQUEST_CODE_PREFERENCES = 1;
+//
+// @Override
+// public boolean onOptionsItemSelected(MenuItem item) {
+// Log.i(TAG, "onOptionsItemSelected " + item.getItemId());
+// switch (item.getItemId()) {
+// case R.id.menu_settings:
+// Intent launchPreferencesIntent = new Intent().setClass(getActivity(), SFLPhonePreferenceActivity.class);
+// startActivityForResult(launchPreferencesIntent, SFLPhoneHomeActivity.REQUEST_CODE_PREFERENCES);
+// break;
+// }
+//
+// return super.onOptionsItemSelected(item);
+// }
public void updateCall(String iD, String newState) {
if (mAdapter == null) {
diff --git a/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java b/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
index 095b135..3cac94e 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
@@ -1,14 +1,11 @@
package com.savoirfairelinux.sflphone.fragments;
-import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import android.app.Activity;
import android.app.Fragment;
-import android.app.LoaderManager.LoaderCallbacks;
import android.content.Intent;
-import android.content.Loader;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
@@ -24,7 +21,6 @@
import android.widget.TextView;
import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.adapters.ContactPictureLoader;
import com.savoirfairelinux.sflphone.adapters.MenuAdapter;
import com.savoirfairelinux.sflphone.client.SFLPhoneHomeActivity;
import com.savoirfairelinux.sflphone.client.SFLPhonePreferenceActivity;
@@ -85,13 +81,17 @@
});
Cursor mProfileCursor = getActivity().getContentResolver().query(Profile.CONTENT_URI, mProjection, null, null, null);
- mProfileCursor.moveToFirst();
- ((ImageView) inflatedView.findViewById(R.id.user_photo)).setImageURI(Uri.parse(mProfileCursor.getString(mProfileCursor
- .getColumnIndex(Profile.PHOTO_THUMBNAIL_URI))));
- ((TextView) inflatedView.findViewById(R.id.user_name)).setText(mProfileCursor.getString(mProfileCursor
- .getColumnIndex(Profile.DISPLAY_NAME_PRIMARY)));
-
+ if (mProfileCursor.getCount() > 0) {
+ mProfileCursor.moveToFirst();
+ String photo_uri = mProfileCursor.getString(mProfileCursor.getColumnIndex(Profile.PHOTO_THUMBNAIL_URI));
+ if (photo_uri != null) {
+ ((ImageView) inflatedView.findViewById(R.id.user_photo)).setImageURI(Uri.parse(photo_uri));
+ }
+ ((TextView) inflatedView.findViewById(R.id.user_name)).setText(mProfileCursor.getString(mProfileCursor
+ .getColumnIndex(Profile.DISPLAY_NAME_PRIMARY)));
+ mProfileCursor.close();
+ }
return inflatedView;
}