package com.ubergeek42.WeechatAndroid;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
import com.ubergeek42.WeechatAndroid.adapters.BufferListAdapter;
import com.ubergeek42.WeechatAndroid.relay.Buffer;
import com.ubergeek42.WeechatAndroid.service.Events;
import com.ubergeek42.WeechatAndroid.service.RelayService;
import de.greenrobot.event.EventBus;
public class ShareTextActivity extends AppCompatActivity implements DialogInterface.OnClickListener,
DialogInterface.OnDismissListener, DialogInterface.OnShowListener {
BufferListAdapter bufferlistAdapter;
AlertDialog dialog;
@Override
protected void onStart() {
super.onStart();
if (!EventBus.getDefault().getStickyEvent(Events.StateChangedEvent.class).state.contains(RelayService.STATE.LISTED)) {
Toast.makeText(getApplicationContext(), getString(R.string.not_connected), Toast.LENGTH_SHORT).show();
finish();
return;
}
Intent intent = getIntent();
if ((Intent.ACTION_SEND.equals(intent.getAction()) && "text/plain".equals(intent.getType()))) {
bufferlistAdapter = new BufferListAdapter(this);
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setAdapter(bufferlistAdapter, this)
.setTitle(getString(R.string.share_text_title));
dialog = builder.create();
dialog.setOnShowListener(this);
dialog.setOnDismissListener(this);
dialog.show();
}
}
@Override
protected void onPause() {
super.onPause();
if (dialog != null) {
dialog.setOnDismissListener(null); // prevents closing the activity on rotate
dialog.dismiss(); // prevents window leaks
}
}
@Override
public void onClick(DialogInterface dialog, int which) {
Buffer buffer = bufferlistAdapter.getItem(which);
if (buffer != null) {
final String text = getIntent().getStringExtra(Intent.EXTRA_TEXT);
Intent intent = new Intent(getApplicationContext(), WeechatActivity.class);
intent.putExtra(WeechatActivity.EXTRA_NAME, buffer.fullName);
intent.putExtra(Intent.EXTRA_TEXT, text);
startActivity(intent);
}
}
@Override
public void onDismiss(DialogInterface dialog) {
finish();
}
@Override
public void onShow(DialogInterface dialog) {
bufferlistAdapter.onBuffersChanged();
}
}