diff --git a/app/src/main/java/org/linphone/activities/MainActivity.java b/app/src/main/java/org/linphone/activities/MainActivity.java index cae5ee1a6..4cfdbd973 100644 --- a/app/src/main/java/org/linphone/activities/MainActivity.java +++ b/app/src/main/java/org/linphone/activities/MainActivity.java @@ -760,4 +760,10 @@ public abstract class MainActivity extends LinphoneGenericActivity Log.e(ex); } } + + // Others + + public SideMenuFragment getSideMenuFragment() { + return mSideMenuFragment; + } } diff --git a/app/src/main/java/org/linphone/settings/AccountSettingsFragment.java b/app/src/main/java/org/linphone/settings/AccountSettingsFragment.java index 4291fd3cc..2783c3824 100644 --- a/app/src/main/java/org/linphone/settings/AccountSettingsFragment.java +++ b/app/src/main/java/org/linphone/settings/AccountSettingsFragment.java @@ -419,8 +419,9 @@ public class AccountSettingsFragment extends SettingsFragment { core.setDefaultProxyConfig(mProxyConfig); mUseAsDefault.setEnabled(false); } - // FIXME TODO - // LinphoneActivity.instance().refreshAccounts(); + ((SettingsActivity) getActivity()) + .getSideMenuFragment() + .displayAccountsInSideMenu(); } else { Log.e("[Account Settings] No proxy config !"); } @@ -536,9 +537,10 @@ public class AccountSettingsFragment extends SettingsFragment { core.removeAuthInfo(mAuthInfo); } } - // FIXME TODO - /*LinphoneActivity.instance().displaySettings(); - LinphoneActivity.instance().refreshAccounts();*/ + ((SettingsActivity) getActivity()).popBackStack(); + ((SettingsActivity) getActivity()) + .getSideMenuFragment() + .displayAccountsInSideMenu(); } }); diff --git a/app/src/main/java/org/linphone/settings/AdvancedSettingsFragment.java b/app/src/main/java/org/linphone/settings/AdvancedSettingsFragment.java index 9be6935ac..2ee244c0c 100644 --- a/app/src/main/java/org/linphone/settings/AdvancedSettingsFragment.java +++ b/app/src/main/java/org/linphone/settings/AdvancedSettingsFragment.java @@ -187,12 +187,7 @@ public class AdvancedSettingsFragment extends SettingsFragment { i.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); i.addCategory(Intent.CATEGORY_DEFAULT); i.setData(Uri.parse("package:" + context.getPackageName())); - i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); - i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); - // FIXME TODO - // startActivityForResult(i, - // LinphoneActivity.ANDROID_APP_SETTINGS_ACTIVITY); startActivity(i); } }); diff --git a/app/src/main/java/org/linphone/utils/ImageUtils.java b/app/src/main/java/org/linphone/utils/ImageUtils.java index fa2b7a459..92e9cb339 100644 --- a/app/src/main/java/org/linphone/utils/ImageUtils.java +++ b/app/src/main/java/org/linphone/utils/ImageUtils.java @@ -21,7 +21,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import android.content.Context; import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PorterDuff; @@ -31,12 +30,11 @@ import android.net.Uri; import android.provider.MediaStore; import android.util.DisplayMetrics; import android.util.TypedValue; -import org.linphone.R; public class ImageUtils { public static Bitmap getRoundBitmapFromUri(Context context, Uri fromPictureUri) { - Bitmap bm; + Bitmap bm = null; Bitmap roundBm; if (fromPictureUri != null) { try { @@ -44,10 +42,8 @@ public class ImageUtils { MediaStore.Images.Media.getBitmap( context.getContentResolver(), fromPictureUri); } catch (Exception e) { - bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.topbar_avatar); + return null; } - } else { - bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.topbar_avatar); } if (bm != null) { roundBm = getRoundBitmap(bm); diff --git a/app/src/main/java/org/linphone/utils/LinphoneShortcutManager.java b/app/src/main/java/org/linphone/utils/LinphoneShortcutManager.java index 8583a3c29..1243f41c4 100644 --- a/app/src/main/java/org/linphone/utils/LinphoneShortcutManager.java +++ b/app/src/main/java/org/linphone/utils/LinphoneShortcutManager.java @@ -27,7 +27,6 @@ import android.graphics.Bitmap; import android.graphics.drawable.Icon; import android.util.ArraySet; import java.util.Set; -import org.linphone.LinphoneService; import org.linphone.R; import org.linphone.chat.ChatActivity; import org.linphone.contacts.ContactsManager; @@ -59,9 +58,7 @@ public class LinphoneShortcutManager { Bitmap bm = null; if (contact != null && contact.getThumbnailUri() != null) { - bm = - ImageUtils.getRoundBitmapFromUri( - LinphoneService.instance(), contact.getThumbnailUri()); + bm = ImageUtils.getRoundBitmapFromUri(mContext, contact.getThumbnailUri()); } Icon icon = bm == null @@ -101,9 +98,7 @@ public class LinphoneShortcutManager { if (contact != null) { Bitmap bm = null; if (contact != null && contact.getThumbnailUri() != null) { - bm = - ImageUtils.getRoundBitmapFromUri( - LinphoneService.instance(), contact.getThumbnailUri()); + bm = ImageUtils.getRoundBitmapFromUri(mContext, contact.getThumbnailUri()); } Icon icon = bm == null diff --git a/app/src/main/java/org/linphone/views/ContactAvatar.java b/app/src/main/java/org/linphone/views/ContactAvatar.java index 705b6b10a..1b1ffe767 100644 --- a/app/src/main/java/org/linphone/views/ContactAvatar.java +++ b/app/src/main/java/org/linphone/views/ContactAvatar.java @@ -20,35 +20,33 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import android.graphics.Bitmap; -import android.provider.MediaStore; import android.view.View; import android.widget.ImageView; import android.widget.TextView; -import java.io.IOException; -import org.linphone.LinphoneService; import org.linphone.R; import org.linphone.contacts.LinphoneContact; import org.linphone.core.ChatRoomSecurityLevel; -import org.linphone.core.tools.Log; +import org.linphone.utils.ImageUtils; class ContactAvatarHolder { public final ImageView contactPicture; - public final ImageView avatarMask; public final ImageView avatarBorder; public final ImageView securityLevel; public final TextView generatedAvatar; + public final ImageView generatedAvatarBackground; public ContactAvatarHolder(View v) { contactPicture = v.findViewById(R.id.contact_picture); - avatarMask = v.findViewById(R.id.mask); securityLevel = v.findViewById(R.id.security_level); generatedAvatar = v.findViewById(R.id.generated_avatar); + generatedAvatarBackground = v.findViewById(R.id.generated_avatar_background); avatarBorder = v.findViewById(R.id.border); } public void init() { contactPicture.setVisibility(View.VISIBLE); generatedAvatar.setVisibility(View.VISIBLE); + generatedAvatarBackground.setVisibility(View.VISIBLE); securityLevel.setVisibility(View.GONE); avatarBorder.setVisibility(View.GONE); } @@ -99,8 +97,7 @@ public class ContactAvatar { } } - private static void displayAvatar( - String displayName, View v, boolean showBorder, int maskResource) { + public static void displayAvatar(String displayName, View v, boolean showBorder) { if (displayName == null || v == null) return; ContactAvatarHolder holder = new ContactAvatarHolder(v); @@ -112,31 +109,27 @@ public class ContactAvatar { // If display name is a phone number, use default avatar because generated one will be // +... holder.generatedAvatar.setVisibility(View.GONE); + holder.generatedAvatarBackground.setVisibility(View.GONE); } else { String generatedAvatar = generateAvatar(displayName); if (generatedAvatar != null && generatedAvatar.length() > 0) { holder.generatedAvatar.setText(generatedAvatar); holder.generatedAvatar.setVisibility(View.VISIBLE); + holder.generatedAvatarBackground.setVisibility(View.VISIBLE); } else { holder.generatedAvatar.setVisibility(View.GONE); + holder.generatedAvatarBackground.setVisibility(View.GONE); } } holder.securityLevel.setVisibility(View.GONE); - if (maskResource != 0) { - holder.avatarMask.setImageResource(maskResource); - } if (showBorder) { holder.avatarBorder.setVisibility(View.VISIBLE); } } - public static void displayAvatar(String displayName, View v, boolean showBorder) { - displayAvatar(displayName, v, showBorder, 0); - } - public static void displayAvatar(String displayName, View v) { - displayAvatar(displayName, v, false, 0); + displayAvatar(displayName, v, false); } public static void displayAvatar( @@ -145,8 +138,7 @@ public class ContactAvatar { setSecurityLevel(securityLevel, v); } - private static void displayAvatar( - LinphoneContact contact, View v, boolean showBorder, int maskResource) { + public static void displayAvatar(LinphoneContact contact, View v, boolean showBorder) { if (contact == null || v == null) return; ContactAvatarHolder holder = new ContactAvatarHolder(v); @@ -163,47 +155,28 @@ public class ContactAvatar { : contact.getFullName())); holder.generatedAvatar.setVisibility(View.GONE); + holder.generatedAvatarBackground.setVisibility(View.GONE); holder.contactPicture.setVisibility(View.VISIBLE); holder.securityLevel.setVisibility(View.GONE); - Bitmap bm = null; - try { - if (contact.getThumbnailUri() != null) { - bm = - MediaStore.Images.Media.getBitmap( - LinphoneService.instance().getContentResolver(), - contact.getThumbnailUri()); - } - } catch (IOException e) { - Log.e(e); - } + Bitmap bm = ImageUtils.getRoundBitmapFromUri(v.getContext(), contact.getThumbnailUri()); if (bm != null) { holder.contactPicture.setImageBitmap(bm); holder.contactPicture.setVisibility(View.VISIBLE); holder.generatedAvatar.setVisibility(View.GONE); + holder.generatedAvatarBackground.setVisibility(View.GONE); } else if (generated_avatars) { - holder.generatedAvatar.setText( - generateAvatar( - contact.getFullName() == null - ? contact.getFirstName() + " " + contact.getLastName() - : contact.getFullName())); holder.generatedAvatar.setVisibility(View.VISIBLE); + holder.generatedAvatarBackground.setVisibility(View.VISIBLE); } - if (maskResource != 0) { - holder.avatarMask.setImageResource(maskResource); - } if (showBorder) { holder.avatarBorder.setVisibility(View.VISIBLE); } } - public static void displayAvatar(LinphoneContact contact, View v, boolean showBorder) { - displayAvatar(contact, v, showBorder, 0); - } - public static void displayAvatar(LinphoneContact contact, View v) { - displayAvatar(contact, v, false, 0); + displayAvatar(contact, v, false); } public static void displayAvatar( @@ -224,6 +197,7 @@ public class ContactAvatar { ContactAvatarHolder holder = new ContactAvatarHolder(v); holder.contactPicture.setImageResource(R.drawable.chat_group_avatar); holder.generatedAvatar.setVisibility(View.GONE); + holder.generatedAvatarBackground.setVisibility(View.GONE); holder.securityLevel.setVisibility(View.GONE); holder.avatarBorder.setVisibility(View.GONE); } diff --git a/app/src/main/res/drawable-xhdpi/avatar_border.png b/app/src/main/res/drawable-xhdpi/avatar_border.png deleted file mode 100644 index 612e9b10c..000000000 Binary files a/app/src/main/res/drawable-xhdpi/avatar_border.png and /dev/null differ diff --git a/app/src/main/res/drawable/avatar_border.xml b/app/src/main/res/drawable/avatar_border.xml new file mode 100644 index 000000000..045c7bfcb --- /dev/null +++ b/app/src/main/res/drawable/avatar_border.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/generated_avatar_bg.xml b/app/src/main/res/drawable/generated_avatar_bg.xml index 52d05a405..87e6684b1 100644 --- a/app/src/main/res/drawable/generated_avatar_bg.xml +++ b/app/src/main/res/drawable/generated_avatar_bg.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/layout-land/call.xml b/app/src/main/res/layout-land/call.xml index c66924c6f..6913e6731 100644 --- a/app/src/main/res/layout-land/call.xml +++ b/app/src/main/res/layout-land/call.xml @@ -50,7 +50,7 @@ android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:alpha="0.8" - android:background="@color/white_color" + android:background="?attr/backgroundColor" android:orientation="vertical"> - + remote_pause diff --git a/app/src/main/res/layout/contact_avatar.xml b/app/src/main/res/layout/contact_avatar.xml index 3800162f0..96eae8a8d 100644 --- a/app/src/main/res/layout/contact_avatar.xml +++ b/app/src/main/res/layout/contact_avatar.xml @@ -12,33 +12,30 @@ android:adjustViewBounds="true" android:src="@drawable/avatar" /> + + - - + android:src="@drawable/avatar_border" /> + + - - + android:src="@drawable/avatar_border" /> + + - - + android:src="@drawable/avatar_border" /> + + - - + android:src="@drawable/avatar_border" />