allow to disable presence and account indicators
This commit is contained in:
parent
c64e0925f4
commit
c32809b963
|
@ -96,7 +96,8 @@ public class AccountAdapter extends ArrayAdapter<Account> {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (this.showColorSelector && activity.xmppConnectionService.getAccounts().size() > 1) {
|
if (this.showColorSelector && activity.xmppConnectionService.getAccounts().size() > 1 &&
|
||||||
|
activity.xmppConnectionService.getPreferences().getBoolean("show_account_indicator", activity.getResources().getBoolean(R.bool.show_account_indicator))) {
|
||||||
int color = UIHelper.getAccountColor(activity, account.getJid());
|
int color = UIHelper.getAccountColor(activity, account.getJid());
|
||||||
viewHolder.binding.colorView.setVisibility(View.VISIBLE);
|
viewHolder.binding.colorView.setVisibility(View.VISIBLE);
|
||||||
ColorUtils.setColorViewValue(viewHolder.binding.colorView, color, false, ColorShape.CIRCLE);
|
ColorUtils.setColorViewValue(viewHolder.binding.colorView, color, false, ColorShape.CIRCLE);
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
package eu.siacs.conversations.ui.widget
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.util.AttributeSet
|
||||||
|
import android.view.View
|
||||||
|
import eu.siacs.conversations.R
|
||||||
|
import eu.siacs.conversations.ui.XmppActivity
|
||||||
|
|
||||||
|
class AccountIndicator : View {
|
||||||
|
constructor(context: Context?) : super(context)
|
||||||
|
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
|
||||||
|
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(
|
||||||
|
context,
|
||||||
|
attrs,
|
||||||
|
defStyleAttr
|
||||||
|
)
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
context: Context?,
|
||||||
|
attrs: AttributeSet?,
|
||||||
|
defStyleAttr: Int,
|
||||||
|
defStyleRes: Int
|
||||||
|
) : super(context, attrs, defStyleAttr, defStyleRes)
|
||||||
|
|
||||||
|
override fun onAttachedToWindow() {
|
||||||
|
super.onAttachedToWindow()
|
||||||
|
val enabled = (context as? XmppActivity)
|
||||||
|
?.xmppConnectionService?.preferences
|
||||||
|
?.getBoolean("show_account_indicator", context.resources.getBoolean(R.bool.show_account_indicator)) ?: false
|
||||||
|
|
||||||
|
visibility = if (enabled) {
|
||||||
|
VISIBLE
|
||||||
|
} else {
|
||||||
|
INVISIBLE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,8 +8,10 @@ import android.graphics.Paint
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewOutlineProvider
|
import android.view.ViewOutlineProvider
|
||||||
|
import eu.siacs.conversations.R
|
||||||
import eu.siacs.conversations.entities.Contact
|
import eu.siacs.conversations.entities.Contact
|
||||||
import eu.siacs.conversations.entities.Presence
|
import eu.siacs.conversations.entities.Presence
|
||||||
|
import eu.siacs.conversations.ui.XmppActivity
|
||||||
import eu.siacs.conversations.ui.util.StyledAttributes
|
import eu.siacs.conversations.ui.util.StyledAttributes
|
||||||
import eu.siacs.conversations.utils.UIHelper
|
import eu.siacs.conversations.utils.UIHelper
|
||||||
import eu.siacs.conversations.xml.Namespace
|
import eu.siacs.conversations.xml.Namespace
|
||||||
|
@ -23,6 +25,8 @@ class PresenceIndicator : View {
|
||||||
|
|
||||||
private var status: Presence.Status? = null
|
private var status: Presence.Status? = null
|
||||||
|
|
||||||
|
private var enabled = false
|
||||||
|
|
||||||
constructor(context: Context?) : super(context)
|
constructor(context: Context?) : super(context)
|
||||||
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
|
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
|
||||||
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(
|
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(
|
||||||
|
@ -55,7 +59,18 @@ class PresenceIndicator : View {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onAttachedToWindow() {
|
||||||
|
super.onAttachedToWindow()
|
||||||
|
enabled = (context as? XmppActivity)
|
||||||
|
?.xmppConnectionService?.preferences
|
||||||
|
?.getBoolean("show_contact_status", context.resources.getBoolean(R.bool.show_contact_status)) ?: false
|
||||||
|
}
|
||||||
|
|
||||||
override fun onDraw(canvas: Canvas) {
|
override fun onDraw(canvas: Canvas) {
|
||||||
|
if (!enabled) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
super.onDraw(canvas)
|
super.onDraw(canvas)
|
||||||
|
|
||||||
val color: Int? = UIHelper.getColorForStatus(status);
|
val color: Int? = UIHelper.getColorForStatus(status);
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
android:padding="@dimen/list_padding">
|
android:padding="@dimen/list_padding">
|
||||||
|
|
||||||
<View
|
<eu.siacs.conversations.ui.widget.AccountIndicator
|
||||||
android:id="@+id/account_indicator"
|
android:id="@+id/account_indicator"
|
||||||
android:layout_width="@dimen/account_indicator_width"
|
android:layout_width="@dimen/account_indicator_width"
|
||||||
android:layout_marginStart="-4dp"
|
android:layout_marginStart="-4dp"
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
android:padding="8dp">
|
android:padding="8dp">
|
||||||
|
|
||||||
<View
|
<eu.siacs.conversations.ui.widget.AccountIndicator
|
||||||
android:id="@+id/account_indicator"
|
android:id="@+id/account_indicator"
|
||||||
android:layout_width="@dimen/account_indicator_width"
|
android:layout_width="@dimen/account_indicator_width"
|
||||||
android:layout_marginStart="-4dp"
|
android:layout_marginStart="-4dp"
|
||||||
|
|
|
@ -55,4 +55,6 @@
|
||||||
<bool name="always_full_timestamps">false</bool>
|
<bool name="always_full_timestamps">false</bool>
|
||||||
<bool name="skip_image_editor_screen">false</bool>
|
<bool name="skip_image_editor_screen">false</bool>
|
||||||
<string name="avatar_shape">rounded_square</string>
|
<string name="avatar_shape">rounded_square</string>
|
||||||
|
<bool name="show_contact_status">true</bool>
|
||||||
|
<bool name="show_account_indicator">true</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -612,6 +612,10 @@
|
||||||
<string name="pref_skip_image_editor_screen_summary">Don’t open image editor screen automatically for single image attachments</string>
|
<string name="pref_skip_image_editor_screen_summary">Don’t open image editor screen automatically for single image attachments</string>
|
||||||
<string name="unable_to_connect_to_keychain">Could not connect to OpenKeychain</string>
|
<string name="unable_to_connect_to_keychain">Could not connect to OpenKeychain</string>
|
||||||
<string name="this_device_is_no_longer_in_use">This device is no longer in use</string>
|
<string name="this_device_is_no_longer_in_use">This device is no longer in use</string>
|
||||||
|
<string name="pref_show_contact_presence">Contact presence</string>
|
||||||
|
<string name="pref_show_contact_presence_details">Show contact presence nearby contact avatar</string>
|
||||||
|
<string name="pref_show_account_indicator">Account indicator</string>
|
||||||
|
<string name="pref_show_account_indicator_details">Mark conversations with different colors in case of several account</string>
|
||||||
<string name="type_pc">Computer</string>
|
<string name="type_pc">Computer</string>
|
||||||
<string name="type_phone">Mobile phone</string>
|
<string name="type_phone">Mobile phone</string>
|
||||||
<string name="type_tablet">Tablet</string>
|
<string name="type_tablet">Tablet</string>
|
||||||
|
|
|
@ -64,6 +64,16 @@
|
||||||
android:key="always_full_timestamps"
|
android:key="always_full_timestamps"
|
||||||
android:summary="@string/pref_always_show_full_timestamps_summary"
|
android:summary="@string/pref_always_show_full_timestamps_summary"
|
||||||
android:title="@string/pref_always_show_full_timestamps" />
|
android:title="@string/pref_always_show_full_timestamps" />
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="@bool/use_green_background"
|
||||||
|
android:key="show_contact_status"
|
||||||
|
android:summary="@string/pref_show_contact_presence_details"
|
||||||
|
android:title="@string/pref_show_contact_presence" />
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="@bool/use_green_background"
|
||||||
|
android:key="show_account_indicator"
|
||||||
|
android:summary="@string/pref_show_account_indicator_details"
|
||||||
|
android:title="@string/pref_show_account_indicator" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory android:title="@string/pref_navigation">
|
<PreferenceCategory android:title="@string/pref_navigation">
|
||||||
|
|
Loading…
Reference in a new issue