Give conversation a standard navigate up button.

* Prevent a failing IDE preview.
fork-5.53.8
Alan Evans 2019-05-24 14:31:48 -03:00
rodzic 2ae42cb095
commit 350d1f47d3
5 zmienionych plików z 127 dodań i 122 usunięć

Wyświetl plik

@ -1,108 +1,130 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<org.thoughtcrime.securesms.components.InputAwareLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<LinearLayout <android.support.v7.widget.Toolbar
android:id="@+id/conversation_container" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="?attr/actionBarSize"
android:clipChildren="false" android:theme="@style/TextSecure.LightActionBar"
android:clipToPadding="false" app:contentInsetStartWithNavigation="0dp"
android:gravity="bottom" app:layout_constraintEnd_toEndOf="parent"
android:orientation="vertical" app:layout_constraintStart_toStartOf="parent"
android:paddingTop="?attr/actionBarSize"> app:layout_constraintTop_toTopOf="parent"
app:navigationIcon="?homeAsUpIndicator"
tools:background="#ff007f00">
<ViewStub <include layout="@layout/conversation_title_view" />
android:id="@+id/group_share_profile_view_stub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/group_share_profile_view"
android:layout="@layout/conversation_activity_group_share_profile_stub" />
<ViewStub </android.support.v7.widget.Toolbar>
android:id="@+id/unverified_banner_stub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/unverified_banner"
android:layout="@layout/conversation_activity_unverified_banner_stub" />
<ViewStub <org.thoughtcrime.securesms.components.InputAwareLayout
android:id="@+id/reminder_stub" android:id="@+id/layout_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent">
android:inflatedId="@+id/reminder"
android:layout="@layout/conversation_activity_reminderview_stub" />
<FrameLayout <LinearLayout
android:id="@+id/fragment_content" android:id="@+id/conversation_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="match_parent"
android:layout_weight="1" />
<ViewStub
android:id="@+id/attachment_editor_stub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/attachment_editor"
android:layout="@layout/conversation_activity_attachment_editor_stub" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false" android:clipChildren="false"
android:clipToPadding="false"> android:clipToPadding="false"
android:gravity="bottom"
android:orientation="vertical"
android:paddingTop="?attr/actionBarSize">
<include layout="@layout/conversation_input_panel" /> <ViewStub
android:id="@+id/group_share_profile_view_stub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/group_share_profile_view"
android:layout="@layout/conversation_activity_group_share_profile_stub" />
<include layout="@layout/conversation_search_nav" /> <ViewStub
android:id="@+id/unverified_banner_stub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/unverified_banner"
android:layout="@layout/conversation_activity_unverified_banner_stub" />
</FrameLayout> <ViewStub
android:id="@+id/reminder_stub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/reminder"
android:layout="@layout/conversation_activity_reminderview_stub" />
<Button <FrameLayout
android:id="@+id/register_button" android:id="@+id/fragment_content"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="0dp"
android:padding="20dp" android:layout_weight="1" />
android:text="@string/conversation_activity__enable_signal_messages"
android:visibility="gone" />
<Button <ViewStub
android:id="@+id/unblock_button" android:id="@+id/attachment_editor_stub"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="20dp" android:inflatedId="@+id/attachment_editor"
android:text="@string/ConversationActivity_unblock" android:layout="@layout/conversation_activity_attachment_editor_stub" />
android:visibility="gone" />
<Button <FrameLayout
android:id="@+id/make_default_sms_button" android:layout_width="match_parent"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:clipChildren="false"
android:padding="20dp" android:clipToPadding="false">
android:text="@string/conversation_activity__enable_signal_for_sms"
android:visibility="gone" />
<TextView <include layout="@layout/conversation_input_panel" />
android:id="@+id/space_left"
android:layout_width="fill_parent" <include layout="@layout/conversation_search_nav" />
android:layout_height="wrap_content"
android:background="?android:windowBackground" </FrameLayout>
android:paddingStart="5dip"
android:text="160/160 (1)" <Button
android:visibility="gone" /> android:id="@+id/register_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="@string/conversation_activity__enable_signal_messages"
android:visibility="gone" />
<Button
android:id="@+id/unblock_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="@string/ConversationActivity_unblock"
android:visibility="gone" />
<Button
android:id="@+id/make_default_sms_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="@string/conversation_activity__enable_signal_for_sms"
android:visibility="gone" />
<TextView
android:id="@+id/space_left"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="?android:windowBackground"
android:paddingStart="5dip"
android:text="160/160 (1)"
android:visibility="gone" />
<ViewStub <ViewStub
android:id="@+id/emoji_drawer_stub" android:id="@+id/emoji_drawer_stub"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:inflatedId="@+id/emoji_drawer" android:inflatedId="@+id/emoji_drawer"
android:layout="@layout/conversation_activity_emojidrawer_stub" /> android:layout="@layout/conversation_activity_emojidrawer_stub" />
</LinearLayout> </LinearLayout>
</org.thoughtcrime.securesms.components.InputAwareLayout> </org.thoughtcrime.securesms.components.InputAwareLayout>
</FrameLayout>

Wyświetl plik

@ -2,30 +2,19 @@
<org.thoughtcrime.securesms.conversation.ConversationTitleView <org.thoughtcrime.securesms.conversation.ConversationTitleView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/conversation_title_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:gravity="center_vertical"> android:gravity="center_vertical">
<ImageView android:id="@+id/up_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_arrow_back_white_24dp"
android:clickable="true"
android:paddingEnd="12dp"
android:layout_marginEnd="12dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:background="?selectableItemBackgroundBorderless"
android:visibility="visible"/>
<org.thoughtcrime.securesms.components.AvatarImageView <org.thoughtcrime.securesms.components.AvatarImageView
android:id="@+id/contact_photo_image" android:id="@+id/contact_photo_image"
android:foreground="@drawable/contact_photo_background" android:foreground="@drawable/contact_photo_background"
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_toEndOf="@id/up_button" android:layout_alignParentStart="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginEnd="10dp" android:layout_marginEnd="10dp"
android:cropToPadding="true" android:cropToPadding="true"
@ -55,6 +44,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
style="@style/TextSecure.TitleTextStyle" style="@style/TextSecure.TitleTextStyle"
tools:text="Contact name"
tools:ignore="UnusedAttribute"/> tools:ignore="UnusedAttribute"/>
<LinearLayout <LinearLayout

Wyświetl plik

@ -48,10 +48,10 @@ import android.support.v4.content.pm.ShortcutInfoCompat;
import android.support.v4.content.pm.ShortcutManagerCompat; import android.support.v4.content.pm.ShortcutManagerCompat;
import android.support.v4.graphics.drawable.IconCompat; import android.support.v4.graphics.drawable.IconCompat;
import android.support.v4.view.MenuItemCompat; import android.support.v4.view.MenuItemCompat;
import android.support.v4.view.WindowCompat;
import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AlertDialog;
import android.support.v7.widget.SearchView; import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.TextWatcher; import android.text.TextWatcher;
@ -193,7 +193,7 @@ import org.thoughtcrime.securesms.util.CommunicationActions;
import org.thoughtcrime.securesms.util.Dialogs; import org.thoughtcrime.securesms.util.Dialogs;
import org.thoughtcrime.securesms.util.DirectoryHelper; import org.thoughtcrime.securesms.util.DirectoryHelper;
import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
import org.thoughtcrime.securesms.util.ExpirationUtil; import org.thoughtcrime.securesms.util.ExpirationUtil;
import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.util.GroupUtil;
import org.thoughtcrime.securesms.util.IdentityUtil; import org.thoughtcrime.securesms.util.IdentityUtil;
@ -308,9 +308,9 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
private boolean isMmsEnabled = true; private boolean isMmsEnabled = true;
private boolean isSecurityInitialized = false; private boolean isSecurityInitialized = false;
private final IdentityRecordList identityRecords = new IdentityRecordList(); private final IdentityRecordList identityRecords = new IdentityRecordList();
private final DynamicTheme dynamicTheme = new DynamicTheme(); private final DynamicNoActionBarTheme dynamicTheme = new DynamicNoActionBarTheme();
private final DynamicLanguage dynamicLanguage = new DynamicLanguage(); private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
@Override @Override
protected void onPreCreate() { protected void onPreCreate() {
@ -322,7 +322,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
protected void onCreate(Bundle state, boolean ready) { protected void onCreate(Bundle state, boolean ready) {
Log.i(TAG, "onCreate()"); Log.i(TAG, "onCreate()");
supportRequestWindowFeature(WindowCompat.FEATURE_ACTION_BAR_OVERLAY);
setContentView(R.layout.conversation_activity); setContentView(R.layout.conversation_activity);
TypedArray typedArray = obtainStyledAttributes(new int[] {R.attr.conversation_background}); TypedArray typedArray = obtainStyledAttributes(new int[] {R.attr.conversation_background});
@ -1467,10 +1466,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
} }
private void initializeViews() { private void initializeViews() {
ActionBar supportActionBar = getSupportActionBar(); titleView = findViewById(R.id.conversation_title_view);
if (supportActionBar == null) throw new AssertionError();
titleView = (ConversationTitleView) supportActionBar.getCustomView();
buttonToggle = ViewUtil.findById(this, R.id.button_toggle); buttonToggle = ViewUtil.findById(this, R.id.button_toggle);
sendButton = ViewUtil.findById(this, R.id.send_button); sendButton = ViewUtil.findById(this, R.id.send_button);
attachButton = ViewUtil.findById(this, R.id.attach_button); attachButton = ViewUtil.findById(this, R.id.attach_button);
@ -1522,7 +1518,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
titleView.setOnClickListener(v -> handleConversationSettings()); titleView.setOnClickListener(v -> handleConversationSettings());
titleView.setOnLongClickListener(v -> handleDisplayQuickContact()); titleView.setOnLongClickListener(v -> handleDisplayQuickContact());
titleView.setOnBackClickedListener(view -> super.onBackPressed());
unblockButton.setOnClickListener(v -> handleUnblock()); unblockButton.setOnClickListener(v -> handleUnblock());
makeDefaultSmsButton.setOnClickListener(v -> handleMakeDefaultSms()); makeDefaultSmsButton.setOnClickListener(v -> handleMakeDefaultSms());
registerButton.setOnClickListener(v -> handleRegisterForSignal()); registerButton.setOnClickListener(v -> handleRegisterForSignal());
@ -1546,12 +1541,13 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
} }
protected void initializeActionBar() { protected void initializeActionBar() {
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar supportActionBar = getSupportActionBar(); ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar == null) throw new AssertionError(); if (supportActionBar == null) throw new AssertionError();
supportActionBar.setDisplayHomeAsUpEnabled(false); supportActionBar.setDisplayHomeAsUpEnabled(true);
supportActionBar.setCustomView(R.layout.conversation_title_view);
supportActionBar.setDisplayShowCustomEnabled(true);
supportActionBar.setDisplayShowTitleEnabled(false); supportActionBar.setDisplayShowTitleEnabled(false);
} }

Wyświetl plik

@ -27,7 +27,6 @@ public class ConversationTitleView extends RelativeLayout {
private static final String TAG = ConversationTitleView.class.getSimpleName(); private static final String TAG = ConversationTitleView.class.getSimpleName();
private View content; private View content;
private ImageView back;
private AvatarImageView avatar; private AvatarImageView avatar;
private TextView title; private TextView title;
private TextView subtitle; private TextView subtitle;
@ -47,7 +46,6 @@ public class ConversationTitleView extends RelativeLayout {
public void onFinishInflate() { public void onFinishInflate() {
super.onFinishInflate(); super.onFinishInflate();
this.back = ViewUtil.findById(this, R.id.up_button);
this.content = ViewUtil.findById(this, R.id.content); this.content = ViewUtil.findById(this, R.id.content);
this.title = ViewUtil.findById(this, R.id.title); this.title = ViewUtil.findById(this, R.id.title);
this.subtitle = ViewUtil.findById(this, R.id.subtitle); this.subtitle = ViewUtil.findById(this, R.id.subtitle);
@ -92,10 +90,6 @@ public class ConversationTitleView extends RelativeLayout {
this.avatar.setOnLongClickListener(listener); this.avatar.setOnLongClickListener(listener);
} }
public void setOnBackClickedListener(@Nullable OnClickListener listener) {
this.back.setOnClickListener(listener);
}
private void setComposeTitle() { private void setComposeTitle() {
this.title.setText(R.string.ConversationActivity_compose_message); this.title.setText(R.string.ConversationActivity_compose_message);
this.subtitle.setText(null); this.subtitle.setText(null);

Wyświetl plik

@ -38,9 +38,12 @@ public class ThemeUtil {
TypedValue outValue = new TypedValue(); TypedValue outValue = new TypedValue();
if (context.getTheme().resolveAttribute(attribute, outValue, true)) { if (context.getTheme().resolveAttribute(attribute, outValue, true)) {
return outValue.coerceToString().toString(); CharSequence charSequence = outValue.coerceToString();
} else { if (charSequence != null) {
return defaultValue; return charSequence.toString();
}
} }
return defaultValue;
} }
} }