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" />