mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-25 11:05:25 +00:00
89 lines
2.5 KiB
Java
89 lines
2.5 KiB
Java
package org.thoughtcrime.securesms.components;
|
|
|
|
import android.content.Context;
|
|
import android.support.annotation.NonNull;
|
|
import android.support.annotation.Nullable;
|
|
import android.support.constraint.ConstraintLayout;
|
|
import android.util.AttributeSet;
|
|
import android.view.View;
|
|
import android.widget.TextView;
|
|
|
|
import network.loki.messenger.R;
|
|
|
|
/**
|
|
* Bottom navigation bar shown in the {@link org.thoughtcrime.securesms.conversation.ConversationActivity}
|
|
* when the user is searching within a conversation. Shows details about the results and allows the
|
|
* user to move between them.
|
|
*/
|
|
public class ConversationSearchBottomBar extends ConstraintLayout {
|
|
|
|
private View searchDown;
|
|
private View searchUp;
|
|
private TextView searchPositionText;
|
|
private View progressWheel;
|
|
|
|
private EventListener eventListener;
|
|
|
|
|
|
public ConversationSearchBottomBar(Context context) {
|
|
super(context);
|
|
}
|
|
|
|
public ConversationSearchBottomBar(Context context, AttributeSet attrs) {
|
|
super(context, attrs);
|
|
}
|
|
|
|
@Override
|
|
protected void onFinishInflate() {
|
|
super.onFinishInflate();
|
|
|
|
this.searchUp = findViewById(R.id.conversation_search_up);
|
|
this.searchDown = findViewById(R.id.conversation_search_down);
|
|
this.searchPositionText = findViewById(R.id.conversation_search_position);
|
|
this.progressWheel = findViewById(R.id.conversation_search_progress_wheel);
|
|
}
|
|
|
|
public void setData(int position, int count) {
|
|
progressWheel.setVisibility(GONE);
|
|
|
|
searchUp.setOnClickListener(v -> {
|
|
if (eventListener != null) {
|
|
eventListener.onSearchMoveUpPressed();
|
|
}
|
|
});
|
|
|
|
searchDown.setOnClickListener(v -> {
|
|
if (eventListener != null) {
|
|
eventListener.onSearchMoveDownPressed();
|
|
}
|
|
});
|
|
|
|
if (count > 0) {
|
|
searchPositionText.setText(getResources().getString(R.string.ConversationActivity_search_position, position + 1, count));
|
|
} else {
|
|
searchPositionText.setText(R.string.ConversationActivity_no_results);
|
|
}
|
|
|
|
setViewEnabled(searchUp, position < (count - 1));
|
|
setViewEnabled(searchDown, position > 0);
|
|
}
|
|
|
|
public void showLoading() {
|
|
progressWheel.setVisibility(VISIBLE);
|
|
}
|
|
|
|
private void setViewEnabled(@NonNull View view, boolean enabled) {
|
|
view.setEnabled(enabled);
|
|
view.setAlpha(enabled ? 1f : 0.25f);
|
|
}
|
|
|
|
public void setEventListener(@Nullable EventListener eventListener) {
|
|
this.eventListener = eventListener;
|
|
}
|
|
|
|
public interface EventListener {
|
|
void onSearchMoveUpPressed();
|
|
void onSearchMoveDownPressed();
|
|
}
|
|
}
|