package org.thoughtcrime.securesms;

import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.LinearLayout;
import android.widget.TextView;

import org.thoughtcrime.securesms.util.DateUtils;
import org.whispersystems.textsecure.api.messages.multidevice.DeviceInfo;

import java.util.Locale;

public class DeviceListItem extends LinearLayout {

  private long     deviceId;
  private TextView name;
  private TextView created;
  private TextView lastActive;

  public DeviceListItem(Context context) {
    super(context);
  }

  public DeviceListItem(Context context, AttributeSet attrs) {
    super(context, attrs);
  }

  @Override
  public void onFinishInflate() {
    super.onFinishInflate();
    this.name       = (TextView) findViewById(R.id.name);
    this.created    = (TextView) findViewById(R.id.created);
    this.lastActive = (TextView) findViewById(R.id.active);
  }

  public void set(DeviceInfo deviceInfo) {
    if (TextUtils.isEmpty(deviceInfo.getName())) this.name.setText(R.string.DeviceListItem_unnamed_device);
    else                                         this.name.setText(deviceInfo.getName());

    this.created.setText(getContext().getString(R.string.DeviceListItem_linked_s,
                                                DateUtils.getExtendedRelativeTimeSpanString(getContext(),
                                                                                            Locale.getDefault(),
                                                                                            deviceInfo.getCreated())));

    this.lastActive.setText(getContext().getString(R.string.DeviceListItem_last_active_s,
                                                   DateUtils.getExtendedRelativeTimeSpanString(getContext(),
                                                                                               Locale.getDefault(),
                                                                                               deviceInfo.getLastSeen())));

    this.deviceId = deviceInfo.getId();
  }

  public long getDeviceId() {
    return deviceId;
  }

  public String getDeviceName() {
    return name.getText().toString();
  }

}
