/* * Copyright 2012 Javier Pérez Pacheco and Francisco Díaz Rodriguez * TweetTopics 2.0 * javielinux@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.javielinux.preferences; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ImageButton; import android.widget.ListView; import android.widget.TextView; import com.android.dataframework.DataFramework; import com.android.dataframework.Entity; import com.javielinux.tweettopics2.BaseActivity; import com.javielinux.tweettopics2.R; import com.javielinux.tweettopics2.ThemeManager; import com.javielinux.utils.Utils; import java.util.ArrayList; public class Colors extends BaseActivity { private static final int ADD_ID = Menu.FIRST; private static final int BACK_ID = Menu.FIRST+1; private static final int DIALOG_ITEM = 0; private ListView mListView; private TextView mNoQuietWords; private static View dialogColor; private long mCurrentId = 0; private ColorsAdapter mAdapter; private ArrayList<String> colors = new ArrayList<String>(); private int mColorSelected = 0; @Override protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_ITEM: return new AlertDialog.Builder(this) .setTitle(R.string.actions) .setItems(R.array.items_colors, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { if (which==0) { newEditItem(mCurrentId); } else { deleteItem(); } } }) .create(); } return null; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { DataFramework.getInstance().open(this, Utils.packageName); } catch (Exception e) { e.printStackTrace(); } ThemeManager mThemeManager = new ThemeManager(this); colors = mThemeManager.getColors(); setContentView(R.layout.tweetquick_list); mListView = (ListView) this.findViewById(R.id.list_tweetquick); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mCurrentId = mAdapter.getItem(position).getId(); showDialog(DIALOG_ITEM); } }); mNoQuietWords = (TextView) this.findViewById(R.id.empty); refresh(); } private void selectedColor(int color) { ImageButton c1 = (ImageButton) dialogColor.findViewById(R.id.color1); c1.setBackgroundResource((color==0)?R.drawable.btn_default_selected:R.drawable.btn_default_normal); ImageButton c2 = (ImageButton) dialogColor.findViewById(R.id.color2); c2.setBackgroundResource((color==1)?R.drawable.btn_default_selected:R.drawable.btn_default_normal); ImageButton c3 = (ImageButton) dialogColor.findViewById(R.id.color3); c3.setBackgroundResource((color==2)?R.drawable.btn_default_selected:R.drawable.btn_default_normal); ImageButton c4 = (ImageButton) dialogColor.findViewById(R.id.color4); c4.setBackgroundResource((color==3)?R.drawable.btn_default_selected:R.drawable.btn_default_normal); ImageButton c5 = (ImageButton) dialogColor.findViewById(R.id.color5); c5.setBackgroundResource((color==4)?R.drawable.btn_default_selected:R.drawable.btn_default_normal); ImageButton c6 = (ImageButton) dialogColor.findViewById(R.id.color6); c6.setBackgroundResource((color==5)?R.drawable.btn_default_selected:R.drawable.btn_default_normal); ImageButton c7 = (ImageButton) dialogColor.findViewById(R.id.color7); c7.setBackgroundResource((color==6)?R.drawable.btn_default_selected:R.drawable.btn_default_normal); ImageButton c8 = (ImageButton) dialogColor.findViewById(R.id.color8); c8.setBackgroundResource((color==7)?R.drawable.btn_default_selected:R.drawable.btn_default_normal); mColorSelected = color; } /* private String getColorSelected() { try { return colors.get(mColorSelected); } catch (Exception e) { } return colors.get(0); } */ private void loadColors() { ImageButton c1 = (ImageButton) dialogColor.findViewById(R.id.color1); Bitmap bmp = Bitmap.createBitmap(30, 30, Bitmap.Config.RGB_565); Canvas cv = new Canvas(bmp); cv.drawColor(Color.parseColor(colors.get(0))); c1.setImageBitmap(bmp); c1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { selectedColor(0); } }); ImageButton c2 = (ImageButton) dialogColor.findViewById(R.id.color2); bmp = Bitmap.createBitmap(30, 30, Bitmap.Config.RGB_565); cv = new Canvas(bmp); cv.drawColor(Color.parseColor(colors.get(1))); c2.setImageBitmap(bmp); c2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { selectedColor(1); } }); ImageButton c3 = (ImageButton) dialogColor.findViewById(R.id.color3); bmp = Bitmap.createBitmap(30, 30, Bitmap.Config.RGB_565); cv = new Canvas(bmp); cv.drawColor(Color.parseColor(colors.get(2))); c3.setImageBitmap(bmp); c3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { selectedColor(2); } }); ImageButton c4 = (ImageButton) dialogColor.findViewById(R.id.color4); bmp = Bitmap.createBitmap(30, 30, Bitmap.Config.RGB_565); cv = new Canvas(bmp); cv.drawColor(Color.parseColor(colors.get(3))); c4.setImageBitmap(bmp); c4.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { selectedColor(3); } }); ImageButton c5 = (ImageButton) dialogColor.findViewById(R.id.color5); bmp = Bitmap.createBitmap(30, 30, Bitmap.Config.RGB_565); cv = new Canvas(bmp); cv.drawColor(Color.parseColor(colors.get(4))); c5.setImageBitmap(bmp); c5.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { selectedColor(4); } }); ImageButton c6 = (ImageButton) dialogColor.findViewById(R.id.color6); bmp = Bitmap.createBitmap(30, 30, Bitmap.Config.RGB_565); cv = new Canvas(bmp); cv.drawColor(Color.parseColor(colors.get(5))); c6.setImageBitmap(bmp); c6.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { selectedColor(5); } }); ImageButton c7 = (ImageButton) dialogColor.findViewById(R.id.color7); bmp = Bitmap.createBitmap(30, 30, Bitmap.Config.RGB_565); cv = new Canvas(bmp); cv.drawColor(Color.parseColor(colors.get(6))); c7.setImageBitmap(bmp); c7.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { selectedColor(6); } }); ImageButton c8 = (ImageButton) dialogColor.findViewById(R.id.color8); bmp = Bitmap.createBitmap(30, 30, Bitmap.Config.RGB_565); cv = new Canvas(bmp); cv.drawColor(Color.parseColor(colors.get(7))); c8.setImageBitmap(bmp); c8.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { selectedColor(7); } }); } private void newItem() { newEditItem(-1); } private void newEditItem(long id) { final long idColor = id; dialogColor = LayoutInflater.from(this).inflate(R.layout.alert_dialog_color, null); loadColors(); if (id>0) { Entity ent = new Entity("type_colors", id); TextView t = (TextView) dialogColor.findViewById(R.id.type_color_name); t.setText(ent.getString("name")); selectedColor(ent.getInt("pos")); } else { selectedColor(0); } AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.title_dialog_color); builder.setMessage(R.string.desc_dialog_color); builder.setView(dialogColor); builder.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { TextView t = (TextView) dialogColor.findViewById(R.id.type_color_name); Entity ent = new Entity("type_colors", idColor); ent.setValue("name", t.getText().toString()); ent.setValue("pos", mColorSelected); ent.save(); refresh (); } }); builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); AlertDialog alert = builder.create(); alert.show(); } private void deleteItem() { for (Entity ent : DataFramework.getInstance().getEntityList("colors", "type_color_id="+mCurrentId)) { ent.delete(); } Entity ent = new Entity("type_colors", mCurrentId); ent.delete(); refresh (); } private void refresh () { mAdapter = new ColorsAdapter(this, DataFramework.getInstance().getEntityList("type_colors")); if (mAdapter.getCount()<=0) { mNoQuietWords.setVisibility(View.VISIBLE); } else { mNoQuietWords.setVisibility(View.GONE); mListView.setAdapter(mAdapter); } } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, ADD_ID, 0, R.string.add) .setIcon(android.R.drawable.ic_menu_add); menu.add(0, BACK_ID, 0, R.string.back) .setIcon(android.R.drawable.ic_menu_directions); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case ADD_ID: newItem(); return true; case BACK_ID: setResult(RESULT_OK); finish(); return true; } return super.onOptionsItemSelected(item); } @Override protected void onDestroy() { super.onDestroy(); DataFramework.getInstance().close(); } }