Skip to content
Snippets Groups Projects
Commit c59685a3 authored by Alexandre Lision's avatar Alexandre Lision
Browse files

* #31230: link to contact app

parent b62c4bee
No related branches found
No related tags found
No related merge requests found
......@@ -33,45 +33,44 @@ as that of the covered work.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
android:layout_height="match_parent"
android:background="@color/sfl_another_blue" >
<LinearLayout
android:id="@+id/contact_underview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_centerVertical="true"
android:orientation="horizontal"
android:background="@color/sfl_another_blue"
android:weightSum="6" >
<ImageButton
android:id="@+id/quick_starred"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@null"
android:contentDescription="@string/contact_quick_call_description"
android:contentDescription="@string/contact_quick_starred_description"
android:src="@drawable/ic_action_not_important" />
<ImageButton
android:id="@+id/quick_edit"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@null"
android:contentDescription="@string/contact_quick_msg_description"
android:contentDescription="@string/contact_quick_edit_description"
android:src="@drawable/ic_action_edit" />
<ImageButton
android:id="@+id/quick_discard"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@null"
android:contentDescription="@string/contact_quick_msg_description"
android:contentDescription="@string/contact_quick_discard_description"
android:src="@drawable/ic_action_discard" />
<Space
......
......@@ -3,6 +3,9 @@
<!-- Strings for xml content description of images -->
<string name="contact_quick_call_description">Quick Call</string>
<string name="contact_quick_msg_description">Quick Message</string>
<string name="contact_quick_starred_description">Quick Starred</string>
<string name="contact_quick_edit_description">Quick Edit</string>
<string name="contact_quick_discard_description">Quick Discard</string>
<string name="contact_picture_description">Contact Picture</string>
<string name="dial_numeric_pad">Numeric dialpad</string>
<string name="dial_alphabetic_pad">Alphabetic dialpad</string>
......
......@@ -50,6 +50,9 @@ import android.graphics.RectF;
import android.graphics.Shader;
import android.net.Uri;
import android.provider.ContactsContract;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
public class ContactPictureTask implements Runnable {
......@@ -82,7 +85,7 @@ public class ContactPictureTask implements Runnable {
} catch (IllegalArgumentException e) {
photo_bmp = null;
}
if (photo_bmp == null) {
photo_bmp = decodeSampledBitmapFromResource(view.getResources(), R.drawable.ic_contact_picture, view.getWidth(), view.getHeight());
}
......@@ -95,10 +98,10 @@ public class ContactPictureTask implements Runnable {
}
final Bitmap externalBMP = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
BitmapShader shader;
shader = new BitmapShader(photo_bmp, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(shader);
......@@ -113,9 +116,8 @@ public class ContactPictureTask implements Runnable {
}
});
}
public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
int reqWidth, int reqHeight) {
public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) {
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
......
......@@ -25,6 +25,7 @@ import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.SectionIndexer;
import android.widget.TextView;
import android.widget.Toast;
public class ContactsAdapter extends BaseAdapter implements SectionIndexer {
......@@ -95,6 +96,34 @@ public class ContactsAdapter extends BaseAdapter implements SectionIndexer {
}
});
convertView.findViewById(R.id.quick_starred).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mContext, "Coming soon", Toast.LENGTH_SHORT).show();
}
});
convertView.findViewById(R.id.quick_edit).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
parent.get().mCallbacks.onEditContact(item);
}
});
convertView.findViewById(R.id.quick_discard).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mContext, "Coming soon", Toast.LENGTH_SHORT).show();
}
});
convertView.findViewById(R.id.quick_message).setOnClickListener(new OnClickListener() {
......
......@@ -63,9 +63,11 @@ import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.res.Configuration;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.SipAddress;
import android.support.v4.app.ActionBarDrawerToggle;
......@@ -340,6 +342,7 @@ public class SFLPhoneHomeActivity extends Activity implements DialingFragment.Ca
}
public void launchCallActivity(SipCall infos) {
Log.i(TAG, "Launch Call Activity");
Bundle bundle = new Bundle();
Conference tmp = new Conference("-1");
......@@ -465,10 +468,19 @@ public class SFLPhoneHomeActivity extends Activity implements DialingFragment.Ca
public void onTextContact(final CallContact c) {
// TODO
}
@Override
public void onEditContact(final CallContact c) {
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(c.getId()));
intent.setData(uri);
startActivity(intent);
}
@Override
public void onCallContact(final CallContact c) {
getActionBar().show(); // in case the contact drawer is open
if (fMenu.getSelectedAccount() == null) {
// Toast.makeText(this, "No Account Selected", Toast.LENGTH_SHORT).show();
createAccountDialog().show();
......
......@@ -39,7 +39,6 @@ import org.sflphone.adapters.StarredContactsAdapter;
import org.sflphone.loaders.ContactsLoader;
import org.sflphone.loaders.LoaderConstants;
import org.sflphone.model.CallContact;
import org.sflphone.model.Conference;
import org.sflphone.service.ISipService;
import org.sflphone.views.SwipeListViewTouchListener;
import org.sflphone.views.TACGridView;
......@@ -48,10 +47,11 @@ 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;
import android.os.RemoteException;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
import android.util.Log;
import android.view.DragEvent;
......@@ -71,7 +71,6 @@ import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.SearchView;
import android.widget.Toast;
import android.widget.SearchView.OnQueryTextListener;
public class ContactListFragment extends Fragment implements OnQueryTextListener, LoaderManager.LoaderCallbacks<Bundle> {
......@@ -100,6 +99,10 @@ public class ContactListFragment extends Fragment implements OnQueryTextListener
@Override
public void onTextContact(CallContact c) {
}
@Override
public void onEditContact(CallContact c) {
}
@Override
public ISipService getService() {
......@@ -127,6 +130,8 @@ public class ContactListFragment extends Fragment implements OnQueryTextListener
void openDrawer();
void onEditContact(CallContact item);
}
@Override
......@@ -182,12 +187,10 @@ public class ContactListFragment extends Fragment implements OnQueryTextListener
}
@Override
public void onSwipeRight(ListView listView, int[] reverseSortedPositions) {
public void onSwipeRight(ListView listView, final int[] reverseSortedPositions) {
// Log.i(ProfileMenuActivity.class.getClass().getName(), "swipe right : pos="+reverseSortedPositions[0]);
// TODO : YOUR CODE HERE FOR RIGHT ACTION
CallContact tmp = mListAdapter.getItem(reverseSortedPositions[0]);
}
}, true, false));
list.setOnItemLongClickListener(mItemLongClickListener);
......
......@@ -10,6 +10,7 @@ import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.graphics.Rect;
import android.util.Log;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
......@@ -24,6 +25,8 @@ public class SwipeListViewTouchListener implements View.OnTouchListener {
private int mMinFlingVelocity;
private int mMaxFlingVelocity;
private long mAnimationTime;
private static final String TAG = SwipeListViewTouchListener.class.getSimpleName();
// Fixed properties
private ListView mListView;
......@@ -130,10 +133,12 @@ public class SwipeListViewTouchListener implements View.OnTouchListener {
}
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
public boolean onTouch(View item, MotionEvent motionEvent) {
if (mViewWidth < 2) {
mViewWidth = mListView.getWidth();
}
Log.i(TAG,"->onTouch");
switch (motionEvent.getActionMasked()) {
case MotionEvent.ACTION_DOWN: {
......@@ -169,7 +174,7 @@ public class SwipeListViewTouchListener implements View.OnTouchListener {
mVelocityTracker.addMovement(motionEvent);
mVelocityTracker.recycle();
}
view.onTouchEvent(motionEvent);
item.onTouchEvent(motionEvent);
return true;
}
......@@ -206,7 +211,8 @@ public class SwipeListViewTouchListener implements View.OnTouchListener {
@Override
public void onAnimationEnd(Animator animation) {
mListView.requestDisallowInterceptTouchEvent(false);
// performSwipeAction(downView, downPosition, toTheRight,dismissRight);
// mCallback.onSwipeRight(mListView, swipePositions);
// performSwipeAction(downView, downPosition, toTheRight,dismissRight);
}
});
} else {
......@@ -234,7 +240,7 @@ public class SwipeListViewTouchListener implements View.OnTouchListener {
float deltaX = motionEvent.getRawX() - mDownX;
float deltaY = motionEvent.getRawY() - mDownY;
if ((deltaX > 0 && deltaY - deltaX > mSlop) || (deltaX < 0 && deltaY - deltaX > mSlop)) {
if ((deltaX > 0 && deltaY - deltaX > mSlop) || (deltaX < 0 && deltaY - deltaX > mSlop)) {
mListView.requestDisallowInterceptTouchEvent(false);
return false;
}
......@@ -249,8 +255,7 @@ public class SwipeListViewTouchListener implements View.OnTouchListener {
mListView.onTouchEvent(cancelEvent);
cancelEvent.recycle();
}
if (deltaX < 0 || view.getX() > view.getWidth() / 2)
if (deltaX < 0)
return true;
if (mSwiping) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment