Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c54c1cc2 authored by Moez Bhatti's avatar Moez Bhatti Committed by GitHub
Browse files

Merge pull request #660 from Rexee/master

Fix bug with empty avatars and app crashes
parents 6d9532ad e1394f53
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -7,8 +7,10 @@ import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.preference.Preference;
import android.text.TextUtils;
import android.view.ViewGroup;
import android.widget.LinearLayout;

import com.moez.QKSMS.R;
import com.moez.QKSMS.common.ConversationPrefsHelper;
import com.moez.QKSMS.common.utils.Units;
@@ -117,8 +119,7 @@ public class ConversationSettingsDialog extends QKDialog implements Preference.O

            case SettingsFragment.NOTIFICATION_TONE:
                Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
                Uri uri = Uri.parse(mConversationPrefs.getString(SettingsFragment.NOTIFICATION_TONE, "content://settings/system/notification_sound"));
                intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, uri);
                intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, getRingtoneUri());
                intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
                intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
                intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true);
@@ -133,4 +134,9 @@ public class ConversationSettingsDialog extends QKDialog implements Preference.O
        return true;
    }

    private Uri getRingtoneUri() {
        final String uriString = mConversationPrefs.getString(SettingsFragment.NOTIFICATION_TONE, "content://settings/system/notification_sound");
        return !TextUtils.isEmpty(uriString) ? Uri.parse(uriString) : null;
    }

}
+3 −1
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ import android.text.Html;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;

import com.moez.QKSMS.R;
import com.moez.QKSMS.common.AnalyticsManager;
import com.moez.QKSMS.common.ConversationPrefsHelper;
@@ -146,7 +147,8 @@ public class MessageListActivity extends QKSwipeBackActivity {
                if (mWaitingForThreadId > 0) {
                    ConversationPrefsHelper conversationPrefs = new ConversationPrefsHelper(this, mWaitingForThreadId);
                    Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
                    conversationPrefs.putString(SettingsFragment.NOTIFICATION_TONE, uri.toString());
                    conversationPrefs.putString(SettingsFragment.NOTIFICATION_TONE, (uri == null) ? "" : uri.toString());

                    mWaitingForThreadId = -1;
                }
            }
+6 −2
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.ImageView;

import com.moez.QKSMS.R;
import com.moez.QKSMS.common.LiveViewManager;
import com.moez.QKSMS.common.TypefaceManager;
@@ -53,6 +54,7 @@ public class AvatarView extends ImageView implements View.OnClickListener {
    private String mInitial = "#";
    private Paint mPaint;
    private Drawable mDefaultDrawable;
    private int mYOffset;

    /**
     * When setImageDrawable is called with a drawable, we circle crop to size of this view and use
@@ -89,6 +91,8 @@ public class AvatarView extends ImageView implements View.OnClickListener {
            }
            a.recycle();

            mYOffset = (int) ((mPaint.descent() + mPaint.ascent()) / 2);

            setOnClickListener(this);

            LiveViewManager.registerView(QKPreference.THEME, this, key -> {
@@ -175,7 +179,7 @@ public class AvatarView extends ImageView implements View.OnClickListener {
            if (mOriginalDrawable == null) super.setImageDrawable(null);
        } else if (isPhoneNumberFormat(name)) {
            mInitial = "";
            super.setImageDrawable(mDefaultDrawable);
            if (mOriginalDrawable == null) super.setImageDrawable(mDefaultDrawable);
        } else {
            mInitial = "" + name.toUpperCase().charAt(0);
            if (mOriginalDrawable == null) super.setImageDrawable(null);
@@ -276,7 +280,7 @@ public class AvatarView extends ImageView implements View.OnClickListener {

        if (getDrawable() == null && !isInEditMode()) {
            int xPos = (getWidth() / 2);
            int yPos = (int) ((getHeight() / 2) - ((mPaint.descent() + mPaint.ascent()) / 2));
            int yPos = (getHeight() / 2) - mYOffset;
            canvas.drawText("" + mInitial, xPos, yPos, mPaint);
        }
    }