package de.devland.masterpassword.ui;
import android.content.Intent;
import android.os.Bundle;
import java.util.regex.Matcher;
import de.devland.masterpassword.R;
import de.devland.masterpassword.base.ui.BaseActivity;
import de.devland.masterpassword.base.util.Constants;
import de.devland.masterpassword.base.util.SnackbarUtil;
public class EditActivity extends BaseActivity {
EditFragment fragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
if (savedInstanceState == null) {
fragment = new EditFragment();
Bundle arguments = getIntent().getExtras();
String hostname = handleShareIntent();
if (hostname != null) {
arguments.putString(EditFragment.ARG_HOSTNAME, hostname);
}
fragment.setArguments(arguments);
getSupportFragmentManager().beginTransaction()
.add(R.id.container, fragment)
.commit();
} else {
fragment = (EditFragment) getSupportFragmentManager().getFragment(
savedInstanceState, "fragment");
}
getSupportActionBar().setTitle(R.string.title_activity_edit);
if (Intent.ACTION_SEND.equals(getIntent().getAction())) {
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
}
}
private String handleShareIntent() {
// Get intent, action and MIME type
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && "text/plain".equals(type)) {
String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
if (sharedText != null) {
Matcher matcher = Constants.pattern.matcher(sharedText);
if (matcher.matches()) {
String hostname = matcher.group(2);
return hostname;
} else {
SnackbarUtil.showShort(this, R.string.msg_noUrlFound);
}
}
}
return null;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
getSupportFragmentManager().putFragment(outState, "fragment", fragment);
}
@Override
public void onBackPressed() {
fragment.onBackPressed();
super.onBackPressed();
}
}