package com.code44.finance.ui.tags; import android.content.Context; import android.database.Cursor; import android.os.Bundle; import android.support.v4.content.CursorLoader; import android.text.TextUtils; import android.widget.EditText; import com.code44.finance.R; import com.code44.finance.data.DataStore; import com.code44.finance.data.db.Tables; import com.code44.finance.data.model.Tag; import com.code44.finance.data.providers.TagsProvider; import com.code44.finance.ui.common.ModelEditActivity; import com.code44.finance.utils.analytics.Analytics; public class TagEditActivity extends ModelEditActivity<Tag> { private EditText titleEditText; public static void start(Context context, String tagId) { startActivity(context, makeIntent(context, TagEditActivity.class, tagId)); } @Override protected int getLayoutId() { return R.layout.activity_tag_edit; } @Override protected void onViewCreated(Bundle savedInstanceState) { super.onViewCreated(savedInstanceState); // Get views titleEditText = (EditText) findViewById(R.id.titleEditText); } @Override protected boolean onSave(Tag model) { boolean canSave = true; if (TextUtils.isEmpty(model.getTitle())) { canSave = false; // TODO Show error } if (canSave) { DataStore.insert().model(model).into(this, TagsProvider.uriTags()); } return canSave; } @Override protected void ensureModelUpdated(Tag model) { model.setTitle(titleEditText.getText().toString()); } @Override protected CursorLoader getModelCursorLoader(String modelId) { return Tables.Tags.getQuery().asCursorLoader(this, TagsProvider.uriTag(modelId)); } @Override protected Tag getModelFrom(Cursor cursor) { return Tag.from(cursor); } @Override protected void onModelLoaded(Tag model) { titleEditText.setText(model.getTitle()); } @Override protected Analytics.Screen getScreen() { return Analytics.Screen.TagEdit; } }