SettingsActivity.java :  » Blog-Twitter » iamblogger » com » mblog » activites » Android Open Source

Android Open Source » Blog Twitter » iamblogger 
iamblogger » com » mblog » activites » SettingsActivity.java
package com.mblog.activites;

import java.util.ArrayList;

import android.app.TabActivity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

import com.mblog.Constants;
import com.mblog.activites.listener.SettingsTabChangeListener;
import com.mblog.activites.listener.handler.settings.BloggerSettingsHandler;
import com.mblog.model.blogger.AvailableBlogModel;
import com.mblog.model.blogger.BlogsArrayAdapter;
import com.mblog.util.StringUtils;

/**
 * Setting activity
 * 
 * @author aliaksandr_spichakou
 * 
 */
public class SettingsActivity extends TabActivity implements Constants {
  /**
   * Main tab host
   */
  private TabHost mTabHost;
  /**
   * Application preferences
   */
  private SharedPreferences mPreferences;
  /**
   * Setting handler;
   */
  private BloggerSettingsHandler handler;
  /**
   * Tab change listener
   */
  private SettingsTabChangeListener settingsTabChangeListener;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.settings);

    mPreferences = getSharedPreferences(APP_SETTINGS, MODE_PRIVATE);

    mTabHost = getTabHost();
    final Resources resources = getResources();

    // Twitter settings tab
    final TabSpec twitterTabSpec = mTabHost.newTabSpec(SettingsTabChangeListener.TAB_TWITTER);
    final CharSequence twitterTabText = resources.getText(R.string.twitterSettingsTabStr);
    final Drawable twitterIco = resources.getDrawable(R.drawable.twitter_ico);
    final TabSpec twitterIndicator = twitterTabSpec.setIndicator(twitterTabText, twitterIco);
    final TabSpec twitterTabContentSpec = twitterIndicator.setContent(R.id.TwitterSettings);
    mTabHost.addTab(twitterTabContentSpec);

    // Blogger settings tab
    final TabSpec bloggerTabSpec = mTabHost.newTabSpec(SettingsTabChangeListener.TAB_BLOGGER);
    final CharSequence bloggerTabText = resources.getText(R.string.bloggerSettingsTabStr);
    final Drawable bloggerIco = resources.getDrawable(R.drawable.blogger_ico);
    final TabSpec bloggerIndicator = bloggerTabSpec.setIndicator(bloggerTabText, bloggerIco);
    final TabSpec bloggerTabContentSpec = bloggerIndicator.setContent(R.id.BloggerSettings);
    mTabHost.addTab(bloggerTabContentSpec);

    // Blogs spinner
    final Spinner sBlogs = (Spinner) findViewById(R.id.availableBlogsSpin);

    final BlogsArrayAdapter adapterBlogs = new BlogsArrayAdapter(this, android.R.layout.simple_spinner_item, new ArrayList<AvailableBlogModel>());
    adapterBlogs.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    sBlogs.setAdapter(adapterBlogs);

    handler = new BloggerSettingsHandler(adapterBlogs, sBlogs);
    settingsTabChangeListener = new SettingsTabChangeListener(resources, this, handler);
    mTabHost.setOnTabChangedListener(settingsTabChangeListener);

    // restore settings
    restoreSettings();

    mTabHost.setCurrentTab(0);
  }

  /**
   * Refresh blog list
   * 
   * @param view
   */
  public void refreshBlogList(View view) {
    saveBloggerSettings(view);
    handler.set2Refresh();
    settingsTabChangeListener.onTabChanged(SettingsTabChangeListener.TAB_BLOGGER);
  }

  /**
   * Restore settings
   */
  private void restoreSettings() {
    final String bloggerLogin = mPreferences.getString(BLOGGER_LOGIN, "");
    final String twitterLogin = mPreferences.getString(TWITTER_LOGIN, "");

    final EditText bloggerLoginView = (EditText) findViewById(R.id.BloggerUsernameEditText);
    bloggerLoginView.setText(bloggerLogin);
    final EditText twitterLoginView = (EditText) findViewById(R.id.TwitterUsernameEditText);
    twitterLoginView.setText(twitterLogin);

    final EditText bloggerPasswordView = (EditText) findViewById(R.id.BloggerPasswordEditText);
    bloggerPasswordView.setText(PASSWORD_STR);
    final EditText twitterPasswordView = (EditText) findViewById(R.id.TwitterPasswordEditText);
    twitterPasswordView.setText(PASSWORD_STR);
  }

  /**
   * Save blogger settings
   * @param view
   */
  public void saveBloggerSettings(View view) {
    final Editor edit = mPreferences.edit();

    final EditText bloggerLogin = (EditText) findViewById(R.id.BloggerUsernameEditText);
    final CharSequence bloggerLoginText = bloggerLogin.getText();
    final EditText bloggerPassword = (EditText) findViewById(R.id.BloggerPasswordEditText);
    final CharSequence bloggerPasswordText = bloggerPassword.getText();

    // Blogger settings
    edit.putString(BLOGGER_LOGIN, bloggerLoginText.toString());
    final String bloggerPasswordStr = bloggerPasswordText.toString();
    if (!StringUtils.isEmpty(bloggerPasswordStr) && !PASSWORD_STR.equals(bloggerPasswordStr)) {
      edit.putString(BLOGGER_PASSWORD, bloggerPasswordStr);
    }
    // Blogger
    final Spinner sBlogs = (Spinner) findViewById(R.id.availableBlogsSpin);
    final AvailableBlogModel selectedItemBlog = (AvailableBlogModel) sBlogs.getSelectedItem();
    if (selectedItemBlog != null) {
      final String blogId = selectedItemBlog.getBlogId();
      edit.putString(BLOGGER_BLOG_ID, blogId);
    }

    edit.commit();

  }

  /**
   * Save twitter settings
   * @param view
   */
  public void saveTwitterSettings(View view) {
    final Editor edit = mPreferences.edit();

    final EditText twitterLogin = (EditText) findViewById(R.id.TwitterUsernameEditText);
    final CharSequence twitterLoginText = twitterLogin.getText();
    final EditText twitterPassword = (EditText) findViewById(R.id.TwitterPasswordEditText);
    final CharSequence twitterPasswordText = twitterPassword.getText();
    // Twitter settings
    edit.putString(TWITTER_LOGIN, twitterLoginText.toString());
    final String twitterPasswordStr = twitterPasswordText.toString();
    if (!StringUtils.isEmpty(twitterPasswordStr) && !PASSWORD_STR.equals(twitterPasswordStr)) {
      edit.putString(TWITTER_PASSWORD, twitterPasswordStr);
    }
    edit.commit();
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.