package com.code44.finance.ui.categories;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.content.CursorLoader;
import android.util.Pair;
import android.view.Menu;
import android.widget.TextView;
import com.code44.finance.R;
import com.code44.finance.data.db.Tables;
import com.code44.finance.data.model.Category;
import com.code44.finance.data.providers.CategoriesProvider;
import com.code44.finance.ui.common.ModelActivity;
import com.code44.finance.utils.analytics.Analytics;
public class CategoryActivity extends ModelActivity<Category> {
private TextView titleTextView;
public static void start(Context context, String categoryId) {
final Intent intent = makeIntent(context, CategoryActivity.class, categoryId);
startActivity(context, intent);
}
@Override protected int getLayoutId() {
return R.layout.activity_category;
}
@Override protected void onViewCreated(Bundle savedInstanceState) {
super.onViewCreated(savedInstanceState);
// Get views
titleTextView = (TextView) findViewById(R.id.titleTextView);
}
@Override public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.findItem(R.id.action_settings).setVisible(false);
return true;
}
@Override protected CursorLoader getModelCursorLoader(String modelId) {
return Tables.Categories.getQuery(null).asCursorLoader(this, CategoriesProvider.uriCategory(modelId));
}
@Override protected Category getModelFrom(Cursor cursor) {
return Category.from(cursor);
}
@Override protected void onModelLoaded(Category model) {
titleTextView.setText(model.getTitle());
titleTextView.setBackgroundColor(model.getColor());
getToolbar().setBackgroundColor(model.getColor());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(model.getColor());
getWindow().setNavigationBarColor(model.getColor());
}
}
@Override protected Uri getDeleteUri() {
return CategoriesProvider.uriCategories();
}
@Override protected Pair<String, String[]> getDeleteSelection() {
return Pair.create(Tables.Categories.ID + "=?", new String[]{String.valueOf(modelId)});
}
@Override protected void startModelEdit(String modelId) {
CategoryEditActivity.start(this, modelId);
}
@Override protected Analytics.Screen getScreen() {
return Analytics.Screen.Category;
}
}