/* * 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.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.view.View.OnClickListener; import android.widget.*; import android.widget.CompoundButton.OnCheckedChangeListener; import com.android.dataframework.DataFramework; import com.android.dataframework.Entity; import com.javielinux.tweettopics2.BaseActivity; import com.javielinux.tweettopics2.R; import com.javielinux.utils.Utils; public class NewEditTweetQuick extends BaseActivity { private long mCurrentId = -1; private EditText mETName; private EditText mETText; private EditText mETUserDirect; private CheckBox mCBDirect; private Button mBTCounter; private Button mBTAddress; private Button mBTPhoto; private Button mBTSave; private Button mBTCancel; private TextView mCountChars; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { DataFramework.getInstance().open(this, Utils.packageName); } catch (Exception e) { e.printStackTrace(); } if (savedInstanceState != null) { if (savedInstanceState.containsKey(DataFramework.KEY_ID)) mCurrentId = savedInstanceState.getLong(DataFramework.KEY_ID); } else { Bundle extras = getIntent().getExtras(); if (extras != null) { if (extras.containsKey(DataFramework.KEY_ID)) mCurrentId = extras.getLong(DataFramework.KEY_ID); } } setTitle("TweetQuick"); setContentView(R.layout.new_tweet_quick); mCountChars = (TextView) findViewById(R.id.count_chars); mETName = (EditText) findViewById(R.id.quick_name); mETText = (EditText) findViewById(R.id.quick_text); mETText.addTextChangedListener(new TextWatcher() { public void afterTextChanged (Editable s) { countChars(); } public void beforeTextChanged (CharSequence s, int start, int count, int after) { } public void onTextChanged (CharSequence s, int start, int before, int count) { } } ); mETUserDirect = (EditText) findViewById(R.id.quick_direct); mCBDirect = (CheckBox) findViewById(R.id.cb_direct); mCBDirect.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton arg0, boolean isChecked) { mETUserDirect.setEnabled(isChecked); } }); mBTCounter = (Button) findViewById(R.id.bt_quick_count); mBTCounter.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { mETText.append("%COUNTER%"); } }); mBTAddress = (Button) findViewById(R.id.bt_quick_address); mBTAddress.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { mETText.append("%ADDRESS%"); } }); mBTPhoto = (Button) findViewById(R.id.bt_quick_photo); mBTPhoto.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { mETText.append("%PHOTO%"); } }); mBTSave = (Button) findViewById(R.id.bt_save); mBTSave.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { save(); } }); mBTCancel = (Button) findViewById(R.id.bt_cancel); mBTCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { setResult(RESULT_OK); finish(); } }); populateFields(); } private void populateFields() { if (mCurrentId != -1) { Entity ent = new Entity("tweet_quick", mCurrentId); mETName.setText(ent.getString("name")); mETText.setText(ent.getString("text")); if (ent.getInt("type_id")==2) { mCBDirect.setChecked(true); mETUserDirect.setEnabled(true); mETUserDirect.setText(ent.getString("username_direct")); } } } private void save() { if (!mETText.getText().toString().contains("%PHOTO%")) { Utils.showMessage(this, "El texto debe contener el parametro %PHOTO%"); } else { Entity ent = new Entity("tweet_quick", mCurrentId); if (mCurrentId<=0) { ent.setValue("count", 1); } ent.setValue("name", mETName.getText().toString()); ent.setValue("text", mETText.getText().toString()); if (mCBDirect.isChecked()) { ent.setValue("type_id", 2); mCBDirect.setChecked(true); ent.setValue("username_direct", mETUserDirect.getText().toString()); } else { ent.setValue("type_id", 1); } ent.save(); setResult(RESULT_OK); finish(); } } private void countChars() { String[] ar = mETText.getText().toString().split("%"); int count = 0; for (String token : ar) { if (token.equals("ADDRESS")) { count += 30; } else if (token.equals("PHOTO")) { count += 25; } else if (token.equals("COUNTER")) { count += 2; } else { count += token.length(); } } mCountChars.setText(count + "/140"); } @Override protected void onDestroy() { super.onDestroy(); DataFramework.getInstance().close(); } }