package org.wikipedia.useroption.ui; import android.annotation.TargetApi; import android.content.Context; import android.os.Build; import android.util.AttributeSet; import android.view.Gravity; import android.widget.LinearLayout; import android.widget.TextView; import org.wikipedia.R; import org.wikipedia.database.async.AsyncConstant; import org.wikipedia.useroption.database.UserOptionRow; import java.util.concurrent.TimeUnit; import butterknife.BindView; import butterknife.ButterKnife; public class UserOptionRowView extends LinearLayout { @BindView(R.id.view_user_option_id) TextView id; @BindView(R.id.view_user_option_key) TextView key; @BindView(R.id.view_user_option_value) TextView value; @BindView(R.id.view_user_option_status) TextView status; @BindView(R.id.view_user_option_timestamp) TextView timestamp; @BindView(R.id.view_user_option_transaction_id) TextView transactionId; public UserOptionRowView(Context context) { super(context); init(); } public UserOptionRowView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public UserOptionRowView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public UserOptionRowView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); init(); } public void set(long id, UserOptionRow row) { this.id.setText(String.valueOf(id)); key.setText(row.key()); value.setText(row.dat() == null ? "DEL" : row.dat().val()); status.setText(row.status().toString()); status.setVisibility(row.status().synced() ? GONE : VISIBLE); long age = TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis() - row.timestamp()); timestamp.setText(String.valueOf(age)); timestamp.setVisibility(row.timestamp() == 0 ? GONE : VISIBLE); transactionId.setText(String.valueOf(row.transactionId())); transactionId.setVisibility(row.transactionId() == AsyncConstant.NO_TRANSACTION_ID ? GONE : VISIBLE); } private void init() { setGravity(Gravity.CENTER_VERTICAL); inflate(getContext(), R.layout.view_user_option_row, this); ButterKnife.bind(this); } }