From 3e9f8b1dc065f9acb19ef45fd085e094e2dffb1d Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 30 Jul 2015 15:42:40 +0200 Subject: [PATCH] Update assets --- res/drawable-xhdpi/avatar.png | Bin 27559 -> 27507 bytes ...tton.png => resizable_cancel_button.9.png} | Bin ...g => resizable_chat_bubble_incoming.9.png} | Bin ...g => resizable_chat_bubble_outgoing.9.png} | Bin res/drawable/alert.xml | 7 - res/drawable/button.xml | 7 - res/drawable/call_answer.xml | 7 - res/drawable/chat_back.xml | 8 - res/drawable/chat_edit.xml | 8 - res/drawable/chat_new.xml | 8 - res/drawable/chat_ok.xml | 8 - res/drawable/chat_stop_upload.xml | 8 - res/drawable/contact_add_contact.xml | 8 - res/drawable/contact_cancel.xml | 8 - res/drawable/contact_delete.xml | 8 - res/drawable/contact_edit.xml | 8 - res/drawable/contact_ok.xml | 10 - res/drawable/contacts_add_contact.xml | 9 - res/drawable/history_delete.xml | 8 - res/drawable/history_edit.xml | 8 - res/drawable/history_ok.xml | 8 - res/drawable/list_add.xml | 7 - res/drawable/ok.xml | 8 - res/drawable/play.xml | 8 - res/drawable/remove.xml | 8 - res/drawable/route_bluetooth_off.xml | 9 - res/drawable/route_bluetooth_on.xml | 9 - res/drawable/route_receiver_off.xml | 9 - res/drawable/route_receiver_on.xml | 9 - res/drawable/route_speaker_off.xml | 9 - res/drawable/route_speaker_on.xml | 9 - res/drawable/routes.xml | 12 - res/drawable/toolbar_button.xml | 9 + res/drawable/transfer_call.xml | 9 - res/layout-small/history_detail.xml | 172 ------- res/layout-small/incall.xml | 264 ----------- res/layout-sw533dp-land/contact.xml | 82 ---- res/layout/avatar.xml | 29 -- res/layout/history_cell_simple.xml | 75 --- res/layout/history_simple.xml | 120 ----- src/org/linphone/HistorySimpleFragment.java | 436 ------------------ src/org/linphone/ui/AvatarWithShadow.java | 60 --- 42 files changed, 9 insertions(+), 1480 deletions(-) rename res/drawable-xhdpi/{resizable_cancel_button.png => resizable_cancel_button.9.png} (100%) rename res/drawable-xhdpi/{resizable_chat_bubble_incoming.png => resizable_chat_bubble_incoming.9.png} (100%) rename res/drawable-xhdpi/{resizable_chat_bubble_outgoing.png => resizable_chat_bubble_outgoing.9.png} (100%) delete mode 100644 res/drawable/alert.xml delete mode 100644 res/drawable/button.xml delete mode 100644 res/drawable/call_answer.xml delete mode 100644 res/drawable/chat_back.xml delete mode 100644 res/drawable/chat_edit.xml delete mode 100644 res/drawable/chat_new.xml delete mode 100644 res/drawable/chat_ok.xml delete mode 100644 res/drawable/chat_stop_upload.xml delete mode 100644 res/drawable/contact_add_contact.xml delete mode 100644 res/drawable/contact_cancel.xml delete mode 100644 res/drawable/contact_delete.xml delete mode 100644 res/drawable/contact_edit.xml delete mode 100644 res/drawable/contact_ok.xml delete mode 100644 res/drawable/contacts_add_contact.xml delete mode 100644 res/drawable/history_delete.xml delete mode 100644 res/drawable/history_edit.xml delete mode 100644 res/drawable/history_ok.xml delete mode 100644 res/drawable/list_add.xml delete mode 100644 res/drawable/ok.xml delete mode 100644 res/drawable/play.xml delete mode 100644 res/drawable/remove.xml delete mode 100644 res/drawable/route_bluetooth_off.xml delete mode 100644 res/drawable/route_bluetooth_on.xml delete mode 100644 res/drawable/route_receiver_off.xml delete mode 100644 res/drawable/route_receiver_on.xml delete mode 100644 res/drawable/route_speaker_off.xml delete mode 100644 res/drawable/route_speaker_on.xml delete mode 100644 res/drawable/routes.xml create mode 100644 res/drawable/toolbar_button.xml delete mode 100644 res/drawable/transfer_call.xml delete mode 100644 res/layout-small/history_detail.xml delete mode 100644 res/layout-small/incall.xml delete mode 100644 res/layout-sw533dp-land/contact.xml delete mode 100644 res/layout/avatar.xml delete mode 100644 res/layout/history_cell_simple.xml delete mode 100644 res/layout/history_simple.xml delete mode 100644 src/org/linphone/HistorySimpleFragment.java delete mode 100644 src/org/linphone/ui/AvatarWithShadow.java diff --git a/res/drawable-xhdpi/avatar.png b/res/drawable-xhdpi/avatar.png index d3a0bf331dd93f6919ceb43b2413c94290d124cd..19d79f738c5f064214df9b026c9cbc19d40dfc1e 100644 GIT binary patch literal 27507 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 diff --git a/res/drawable-xhdpi/resizable_cancel_button.png b/res/drawable-xhdpi/resizable_cancel_button.9.png similarity index 100% rename from res/drawable-xhdpi/resizable_cancel_button.png rename to res/drawable-xhdpi/resizable_cancel_button.9.png diff --git a/res/drawable-xhdpi/resizable_chat_bubble_incoming.png b/res/drawable-xhdpi/resizable_chat_bubble_incoming.9.png similarity index 100% rename from res/drawable-xhdpi/resizable_chat_bubble_incoming.png rename to res/drawable-xhdpi/resizable_chat_bubble_incoming.9.png diff --git a/res/drawable-xhdpi/resizable_chat_bubble_outgoing.png b/res/drawable-xhdpi/resizable_chat_bubble_outgoing.9.png similarity index 100% rename from res/drawable-xhdpi/resizable_chat_bubble_outgoing.png rename to res/drawable-xhdpi/resizable_chat_bubble_outgoing.9.png diff --git a/res/drawable/alert.xml b/res/drawable/alert.xml deleted file mode 100644 index 125848d4c..000000000 --- a/res/drawable/alert.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/res/drawable/button.xml b/res/drawable/button.xml deleted file mode 100644 index ab6a95baa..000000000 --- a/res/drawable/button.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/res/drawable/call_answer.xml b/res/drawable/call_answer.xml deleted file mode 100644 index a81d47745..000000000 --- a/res/drawable/call_answer.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/res/drawable/chat_back.xml b/res/drawable/chat_back.xml deleted file mode 100644 index 80e8f379b..000000000 --- a/res/drawable/chat_back.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/chat_edit.xml b/res/drawable/chat_edit.xml deleted file mode 100644 index 8722d6690..000000000 --- a/res/drawable/chat_edit.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/chat_new.xml b/res/drawable/chat_new.xml deleted file mode 100644 index e42e5819c..000000000 --- a/res/drawable/chat_new.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/chat_ok.xml b/res/drawable/chat_ok.xml deleted file mode 100644 index 3b5a53732..000000000 --- a/res/drawable/chat_ok.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/chat_stop_upload.xml b/res/drawable/chat_stop_upload.xml deleted file mode 100644 index 623c4ee55..000000000 --- a/res/drawable/chat_stop_upload.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/contact_add_contact.xml b/res/drawable/contact_add_contact.xml deleted file mode 100644 index bdfe8f4d9..000000000 --- a/res/drawable/contact_add_contact.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/contact_cancel.xml b/res/drawable/contact_cancel.xml deleted file mode 100644 index c69e447ed..000000000 --- a/res/drawable/contact_cancel.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/contact_delete.xml b/res/drawable/contact_delete.xml deleted file mode 100644 index 32694f1e5..000000000 --- a/res/drawable/contact_delete.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/contact_edit.xml b/res/drawable/contact_edit.xml deleted file mode 100644 index 52e3aa964..000000000 --- a/res/drawable/contact_edit.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/contact_ok.xml b/res/drawable/contact_ok.xml deleted file mode 100644 index 5c3b8eebb..000000000 --- a/res/drawable/contact_ok.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/res/drawable/contacts_add_contact.xml b/res/drawable/contacts_add_contact.xml deleted file mode 100644 index f5f16757a..000000000 --- a/res/drawable/contacts_add_contact.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/res/drawable/history_delete.xml b/res/drawable/history_delete.xml deleted file mode 100644 index e284ffd1f..000000000 --- a/res/drawable/history_delete.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/history_edit.xml b/res/drawable/history_edit.xml deleted file mode 100644 index a2108f74b..000000000 --- a/res/drawable/history_edit.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/history_ok.xml b/res/drawable/history_ok.xml deleted file mode 100644 index ae9b0b5b1..000000000 --- a/res/drawable/history_ok.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/list_add.xml b/res/drawable/list_add.xml deleted file mode 100644 index 6424c7cad..000000000 --- a/res/drawable/list_add.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/res/drawable/ok.xml b/res/drawable/ok.xml deleted file mode 100644 index b50da4366..000000000 --- a/res/drawable/ok.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/play.xml b/res/drawable/play.xml deleted file mode 100644 index 7835c3562..000000000 --- a/res/drawable/play.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/remove.xml b/res/drawable/remove.xml deleted file mode 100644 index 4a288620c..000000000 --- a/res/drawable/remove.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/res/drawable/route_bluetooth_off.xml b/res/drawable/route_bluetooth_off.xml deleted file mode 100644 index 50964a542..000000000 --- a/res/drawable/route_bluetooth_off.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/res/drawable/route_bluetooth_on.xml b/res/drawable/route_bluetooth_on.xml deleted file mode 100644 index 257dbd2c6..000000000 --- a/res/drawable/route_bluetooth_on.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/res/drawable/route_receiver_off.xml b/res/drawable/route_receiver_off.xml deleted file mode 100644 index c850ff48e..000000000 --- a/res/drawable/route_receiver_off.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/res/drawable/route_receiver_on.xml b/res/drawable/route_receiver_on.xml deleted file mode 100644 index 7b6d830f9..000000000 --- a/res/drawable/route_receiver_on.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/res/drawable/route_speaker_off.xml b/res/drawable/route_speaker_off.xml deleted file mode 100644 index 699fad44f..000000000 --- a/res/drawable/route_speaker_off.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/res/drawable/route_speaker_on.xml b/res/drawable/route_speaker_on.xml deleted file mode 100644 index 59f0124fb..000000000 --- a/res/drawable/route_speaker_on.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/res/drawable/routes.xml b/res/drawable/routes.xml deleted file mode 100644 index 227067f91..000000000 --- a/res/drawable/routes.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/res/drawable/toolbar_button.xml b/res/drawable/toolbar_button.xml new file mode 100644 index 000000000..bda78c65b --- /dev/null +++ b/res/drawable/toolbar_button.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/res/drawable/transfer_call.xml b/res/drawable/transfer_call.xml deleted file mode 100644 index 68248239d..000000000 --- a/res/drawable/transfer_call.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/res/layout-small/history_detail.xml b/res/layout-small/history_detail.xml deleted file mode 100644 index a0f4d0e37..000000000 --- a/res/layout-small/history_detail.xml +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/res/layout-small/incall.xml b/res/layout-small/incall.xml deleted file mode 100644 index c8b9322d5..000000000 --- a/res/layout-small/incall.xml +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/layout-sw533dp-land/contact.xml b/res/layout-sw533dp-land/contact.xml deleted file mode 100644 index 206bf91f5..000000000 --- a/res/layout-sw533dp-land/contact.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/layout/avatar.xml b/res/layout/avatar.xml deleted file mode 100644 index d28185d34..000000000 --- a/res/layout/avatar.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/res/layout/history_cell_simple.xml b/res/layout/history_cell_simple.xml deleted file mode 100644 index e961d8a7d..000000000 --- a/res/layout/history_cell_simple.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/res/layout/history_simple.xml b/res/layout/history_simple.xml deleted file mode 100644 index f2569307d..000000000 --- a/res/layout/history_simple.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/org/linphone/HistorySimpleFragment.java b/src/org/linphone/HistorySimpleFragment.java deleted file mode 100644 index b72d908e6..000000000 --- a/src/org/linphone/HistorySimpleFragment.java +++ /dev/null @@ -1,436 +0,0 @@ -package org.linphone; -/* -HistoryFragment.java -Copyright (C) 2012 Belledonne Communications, Grenoble, France - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Calendar; -import java.util.List; - -import org.linphone.core.CallDirection; -import org.linphone.core.LinphoneAddress; -import org.linphone.core.LinphoneCallLog; -import org.linphone.core.LinphoneCallLog.CallStatus; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.os.Bundle; -import android.app.Fragment; -import android.view.ContextMenu; -import android.view.ContextMenu.ContextMenuInfo; -import android.view.LayoutInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.view.animation.Animation; -import android.view.animation.Animation.AnimationListener; -import android.view.animation.AnimationUtils; -import android.widget.AdapterView; -import android.widget.AdapterView.AdapterContextMenuInfo; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.BaseAdapter; -import android.widget.ImageView; -import android.widget.ListView; -import android.widget.TextView; - -/** - * @author Sylvain Berfini - */ -public class HistorySimpleFragment extends Fragment implements OnClickListener, OnItemClickListener { - private ListView historyList; - private LayoutInflater mInflater; - private TextView allCalls, missedCalls, edit, ok, deleteAll, noCallHistory, noMissedCallHistory; - private boolean onlyDisplayMissedCalls, isEditMode; - private List mLogs; - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - mInflater = inflater; - View view = inflater.inflate(R.layout.history_simple, container, false); - - noCallHistory = (TextView) view.findViewById(R.id.noCallHistory); - noMissedCallHistory = (TextView) view.findViewById(R.id.noMissedCallHistory); - - historyList = (ListView) view.findViewById(R.id.historyList); - historyList.setOnItemClickListener(this); - registerForContextMenu(historyList); - - deleteAll = (TextView) view.findViewById(R.id.deleteAll); - deleteAll.setOnClickListener(this); - deleteAll.setVisibility(View.INVISIBLE); - - allCalls = (TextView) view.findViewById(R.id.allCalls); - allCalls.setOnClickListener(this); - - missedCalls = (TextView) view.findViewById(R.id.missedCalls); - missedCalls.setOnClickListener(this); - - allCalls.setEnabled(false); - onlyDisplayMissedCalls = false; - - edit = (TextView) view.findViewById(R.id.edit); - edit.setOnClickListener(this); - - ok = (TextView) view.findViewById(R.id.ok); - ok.setOnClickListener(this); - - return view; - } - - private void removeNotMissedCallsFromLogs() { - if (onlyDisplayMissedCalls) { - List missedCalls = new ArrayList(); - for (LinphoneCallLog log : mLogs) { - if (log.getStatus() == CallStatus.Missed) { - missedCalls.add(log); - } - } - mLogs = missedCalls; - } - } - - private boolean hideHistoryListAndDisplayMessageIfEmpty() { - removeNotMissedCallsFromLogs(); - if (mLogs.isEmpty()) { - if (onlyDisplayMissedCalls) { - noMissedCallHistory.setVisibility(View.VISIBLE); - } else { - noCallHistory.setVisibility(View.VISIBLE); - } - historyList.setVisibility(View.GONE); - return true; - } else { - noCallHistory.setVisibility(View.GONE); - noMissedCallHistory.setVisibility(View.GONE); - historyList.setVisibility(View.VISIBLE); - return false; - } - } - - @Override - public void onResume() { - super.onResume(); - - if (LinphoneActivity.isInstanciated()) { - LinphoneActivity.instance().selectMenu(FragmentsAvailable.HISTORY); - - if (getResources().getBoolean(R.bool.show_statusbar_only_on_dialer)) { - LinphoneActivity.instance().hideStatusBar(); - } - } - - mLogs = Arrays.asList(LinphoneManager.getLc().getCallLogs()); - if (!hideHistoryListAndDisplayMessageIfEmpty()) { - historyList.setAdapter(new CallHistoryAdapter(getActivity())); - } - } - - @Override - public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { - super.onCreateContextMenu(menu, v, menuInfo); - menu.add(0, v.getId(), 0, getString(R.string.delete)); - } - - @Override - public boolean onContextItemSelected(MenuItem item) { - AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); - LinphoneCallLog log = mLogs.get(info.position); - LinphoneManager.getLc().removeCallLog(log); - mLogs = Arrays.asList(LinphoneManager.getLc().getCallLogs()); - if (!hideHistoryListAndDisplayMessageIfEmpty()) { - historyList.setAdapter(new CallHistoryAdapter(getActivity())); - } - return true; - } - - @Override - public void onClick(View v) { - int id = v.getId(); - - if (id == R.id.allCalls) { - allCalls.setEnabled(false); - missedCalls.setEnabled(true); - onlyDisplayMissedCalls = false; - - mLogs = Arrays.asList(LinphoneManager.getLc().getCallLogs()); - } - else if (id == R.id.missedCalls) { - allCalls.setEnabled(true); - missedCalls.setEnabled(false); - onlyDisplayMissedCalls = true; - } - else if (id == R.id.ok) { - edit.setVisibility(View.VISIBLE); - ok.setVisibility(View.GONE); - hideDeleteAllButton(); - isEditMode = false; - } - else if (id == R.id.edit) { - edit.setVisibility(View.GONE); - ok.setVisibility(View.VISIBLE); - showDeleteAllButton(); - isEditMode = true; - } - else if (id == R.id.deleteAll) { - LinphoneManager.getLc().clearCallLogs(); - mLogs = new ArrayList(); - } - - if (!hideHistoryListAndDisplayMessageIfEmpty()) { - historyList.setAdapter(new CallHistoryAdapter(getActivity().getApplicationContext())); - } - } - - @Override - public void onItemClick(AdapterView adapter, View view, int position, long id) { - if (isEditMode) { - LinphoneCallLog log = mLogs.get(position); - LinphoneManager.getLc().removeCallLog(log); - mLogs = Arrays.asList(LinphoneManager.getLc().getCallLogs()); - if (!hideHistoryListAndDisplayMessageIfEmpty()) { - historyList.setAdapter(new CallHistoryAdapter(getActivity().getApplicationContext())); - } - } else { - if (LinphoneActivity.isInstanciated()) { - LinphoneCallLog log = mLogs.get(position); - LinphoneAddress address; - if (log.getDirection() == CallDirection.Incoming) { - address = log.getFrom(); - } else { - address = log.getTo(); - } - LinphoneActivity.instance().setAddresGoToDialerAndCall(address.asStringUriOnly(), address.getDisplayName(), null); - } - } - } - - private void hideDeleteAllButton() { - if (deleteAll == null || deleteAll.getVisibility() != View.VISIBLE) { - return; - } - - if (LinphoneActivity.instance().isAnimationDisabled()) { - deleteAll.setVisibility(View.INVISIBLE); - } else { - Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_out_right_to_left); - animation.setAnimationListener(new AnimationListener() { - @Override - public void onAnimationStart(Animation animation) { - - } - - @Override - public void onAnimationRepeat(Animation animation) { - - } - - @Override - public void onAnimationEnd(Animation animation) { - deleteAll.setVisibility(View.INVISIBLE); - animation.setAnimationListener(null); - } - }); - deleteAll.startAnimation(animation); - } - } - - private void showDeleteAllButton() { - if (deleteAll == null || deleteAll.getVisibility() == View.VISIBLE) { - return; - } - - if (LinphoneActivity.instance().isAnimationDisabled()) { - deleteAll.setVisibility(View.VISIBLE); - } else { - Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_in_left_to_right); - animation.setAnimationListener(new AnimationListener() { - @Override - public void onAnimationStart(Animation animation) { - - } - - @Override - public void onAnimationRepeat(Animation animation) { - - } - - @Override - public void onAnimationEnd(Animation animation) { - deleteAll.setVisibility(View.VISIBLE); - animation.setAnimationListener(null); - } - }); - deleteAll.startAnimation(animation); - } - } - - class CallHistoryAdapter extends BaseAdapter { - private Bitmap missedCall, outgoingCall, incomingCall; - - CallHistoryAdapter(Context aContext) { - missedCall = BitmapFactory.decodeResource(getResources(), R.drawable.call_status_missed); - - if (!onlyDisplayMissedCalls) { - outgoingCall = BitmapFactory.decodeResource(getResources(), R.drawable.call_status_outgoing); - incomingCall = BitmapFactory.decodeResource(getResources(), R.drawable.call_status_incoming); - } - } - public int getCount() { - return mLogs.size(); - } - - public Object getItem(int position) { - return mLogs.get(position); - } - - public long getItemId(int position) { - return position; - } - - @SuppressLint("SimpleDateFormat") - private String timestampToHumanDate(Calendar cal) { - SimpleDateFormat dateFormat; - if (isToday(cal)) { - return getString(R.string.today); - } else if (isYesterday(cal)) { - return getString(R.string.yesterday); - } else { - dateFormat = new SimpleDateFormat(getResources().getString(R.string.history_date_format)); - } - - return dateFormat.format(cal.getTime()); - } - - private boolean isSameDay(Calendar cal1, Calendar cal2) { - if (cal1 == null || cal2 == null) { - return false; - } - - return (cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA) && - cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && - cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR)); - } - - private boolean isToday(Calendar cal) { - return isSameDay(cal, Calendar.getInstance()); - } - - private boolean isYesterday(Calendar cal) { - Calendar yesterday = Calendar.getInstance(); - yesterday.roll(Calendar.DAY_OF_MONTH, -1); - return isSameDay(cal, yesterday); - } - - public View getView(int position, View convertView, ViewGroup parent) { - View view = null; - if (convertView != null) { - view = convertView; - } else { - view = mInflater.inflate(R.layout.history_cell_simple, parent,false); - } - - final LinphoneCallLog log = mLogs.get(position); - long timestamp = log.getTimestamp(); - final LinphoneAddress address; - - TextView contact = (TextView) view.findViewById(R.id.sipUri); - contact.setSelected(true); // For automated horizontal scrolling of long texts - - ImageView detail = (ImageView) view.findViewById(R.id.detail); - ImageView delete = (ImageView) view.findViewById(R.id.delete); - ImageView callDirection = (ImageView) view.findViewById(R.id.icon); - - TextView separator = (TextView) view.findViewById(R.id.separator); - Calendar logTime = Calendar.getInstance(); - logTime.setTimeInMillis(timestamp); - separator.setText(timestampToHumanDate(logTime)); - - if (position > 0) { - LinphoneCallLog previousLog = mLogs.get(position-1); - long previousTimestamp = previousLog.getTimestamp(); - Calendar previousLogTime = Calendar.getInstance(); - previousLogTime.setTimeInMillis(previousTimestamp); - - if (isSameDay(previousLogTime, logTime)) { - separator.setVisibility(View.GONE); - } else { - separator.setVisibility(View.VISIBLE); - } - } else { - separator.setVisibility(View.VISIBLE); - } - - if (log.getDirection() == CallDirection.Incoming) { - address = log.getFrom(); - if (log.getStatus() == CallStatus.Missed) { - callDirection.setImageBitmap(missedCall); - } else { - callDirection.setImageBitmap(incomingCall); - } - } else { - address = log.getTo(); - callDirection.setImageBitmap(outgoingCall); - } - - Contact c = ContactsManager.getInstance().findContactWithAddress(getActivity().getContentResolver(), address); - String displayName = null; - final String sipUri = address.asStringUriOnly(); - if(c != null){ - displayName = c.getName(); - } - - if (displayName == null) { - if (getResources().getBoolean(R.bool.only_display_username_if_unknown) && LinphoneUtils.isSipAddress(sipUri)) { - contact.setText(address.getUserName()); - } else { - contact.setText(sipUri); - } - } else { - if (getResources().getBoolean(R.bool.only_display_username_if_unknown) && LinphoneUtils.isSipAddress(address.getDisplayName())) { - contact.setText(displayName); - } else { - contact.setText(sipUri); - } - } - view.setTag(sipUri); - - if (isEditMode) { - delete.setVisibility(View.VISIBLE); - detail.setVisibility(View.GONE); - } else { - delete.setVisibility(View.GONE); - detail.setVisibility(View.VISIBLE); - detail.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - if (LinphoneActivity.isInstanciated()) { - LinphoneActivity.instance().displayHistoryDetail(sipUri, log); - } - } - }); - } - - return view; - } - } -} \ No newline at end of file diff --git a/src/org/linphone/ui/AvatarWithShadow.java b/src/org/linphone/ui/AvatarWithShadow.java deleted file mode 100644 index 98e0787e0..000000000 --- a/src/org/linphone/ui/AvatarWithShadow.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.linphone.ui; -/* -AvatarWithShadow.java -Copyright (C) 2012 Belledonne Communications, Grenoble, France - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ -import org.linphone.R; - -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Bitmap; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ImageView; -import android.widget.LinearLayout; - -/** - * @author Sylvain Berfini - */ -public class AvatarWithShadow extends LinearLayout { - private ImageView contactPicture; - - public AvatarWithShadow(Context context, AttributeSet attrs) { - super(context, attrs); - - TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.AvatarWithShadow); - int pictureResId = array.getResourceId(R.styleable.AvatarWithShadow_picture, 0); - array.recycle(); - - View view = LayoutInflater.from(context).inflate(R.layout.avatar, this); - contactPicture = (ImageView) view.findViewById(R.id.picture); - contactPicture.setImageResource(pictureResId); - } - - public ImageView getView() { - return contactPicture; - } - - public void setImageBitmap(Bitmap bitmap) { - contactPicture.setImageBitmap(bitmap); - } - - public void setImageResource(int res) { - contactPicture.setImageResource(res); - } -}