FavableActivity.java :  » App » sofurry-android-app » com » sofurry » base » classes » Android Open Source

Android Open Source » App » sofurry android app 
sofurry android app » com » sofurry » base » classes » FavableActivity.java
package com.sofurry.base.classes;

import org.json.JSONObject;

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;

import com.sofurry.AppConstants;
import com.sofurry.RateActivity;
import com.sofurry.SubmissionViewActivity;
import com.sofurry.gallery.GalleryArt;
import com.sofurry.list.ListMusic;
import com.sofurry.list.ListStories;
import com.sofurry.requests.AjaxRequest;

/**
 * @author Rangarig
 * 
 * A class that contains all the tools for an item that is favable, ratable and you know. 
 * 
 */
public abstract class FavableActivity extends SubmissionViewActivity {


  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
  }
  
  @Override
  public void createExtraMenuOptions(Menu menu) {
    SubMenu favsmenu = menu.addSubMenu("Favs & More").setIcon(android.R.drawable.ic_menu_add);
    favsmenu.add(0,AppConstants.MENU_ADDFAV ,0,"Add Fav").setIcon(android.R.drawable.ic_menu_add);
    favsmenu.add(0,AppConstants.MENU_REMFAV ,0,"Remove Fav").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
    favsmenu.add(0,AppConstants.MENU_RATE   ,0,"Rate").setIcon(android.R.drawable.btn_star_big_off);
    favsmenu.add(0, AppConstants.MENU_CUM   ,0,"Cum!").setIcon(android.R.drawable.ic_menu_compass);
    SubMenu usermenu = menu.addSubMenu("Author").setIcon(android.R.drawable.ic_menu_more);
    usermenu.add(0, AppConstants.MENU_WATCH   ,0,"Watch").setIcon(android.R.drawable.ic_menu_search);
    usermenu.add(0, AppConstants.MENU_UNWATCH   ,0,"Unwatch").setIcon(android.R.drawable.ic_menu_delete);
    usermenu.add(0,AppConstants.MENU_USERSSTORIES,0,"Author's Stories").setIcon(android.R.drawable.ic_menu_slideshow);
    usermenu.add(0,AppConstants.MENU_USERSART,0,"Author's Art").setIcon(android.R.drawable.ic_menu_slideshow);
    usermenu.add(0,AppConstants.MENU_USERSMUSIK,0,"Author's Music").setIcon(android.R.drawable.ic_menu_slideshow);
  }

  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case AppConstants.MENU_ADDFAV:
      setFavorite();
      return true;
    case AppConstants.MENU_REMFAV:
      unsetFavorite();
      return true;
    case AppConstants.MENU_RATE:
      Intent intent = new Intent(this, RateActivity.class);
      startActivityForResult(intent, AppConstants.ACTIVITY_RATE);
      return true;
    case AppConstants.MENU_CUM:
      cum();
      return true;
    case AppConstants.MENU_WATCH:
      watch();
      return true;
    case AppConstants.MENU_UNWATCH:
      unwatch();
      return true;
    case AppConstants.MENU_USERSSTORIES:
      morefromuser(ListStories.class,AppConstants.ACTIVITY_STORIESLIST);
      return true;
    case AppConstants.MENU_USERSART:
      morefromuser(GalleryArt.class,AppConstants.ACTIVITY_GALLERYART);
      return true;
    case AppConstants.MENU_USERSMUSIK:
      morefromuser(ListMusic.class,AppConstants.ACTIVITY_MUSICLIST);
      return true;
    default:
      return super.onOptionsItemSelected(item);
    }
  }
  
  /**
   * Sets a Favorite for the currently Selected Image
   */
  public void setFavorite() {
    pbh.showProgressDialog("Setting favorite");

    AjaxRequest request = new AjaxRequest();
    request.addParameter("f", "addfav");
    request.addParameter("pid", "" + pageID);
    request.setRequestID(AppConstants.REQUEST_ID_FAV);
    request.execute(requesthandler);
  }
  
  /**
   * Removes a Favorite for the currently Selected Image
   */
  public void unsetFavorite() {
    pbh.showProgressDialog("Removing favorite");
    
    AjaxRequest request = new AjaxRequest();
    request.addParameter("f", "remfav");
    request.addParameter("pid", "" + pageID);
    request.setRequestID(AppConstants.REQUEST_ID_UNFAV);
    request.execute(requesthandler);
  }
  
  /**
   * Is forwarded from the activity, to handle callbacks of the TagEditor
   * @param requestCode
   * @param resultCode
   * @param data
   * @return
   */
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Handles the return value from TAGEditor
    if (requestCode == AppConstants.ACTIVITY_RATE) {
      if (data == null) return;
      int rating = data.getIntExtra("rating", -1);
      if (rating != -1) setRating(rating);
      return;
    }
    super.onActivityResult(requestCode, resultCode, data);
  }
  
  /**
   * Sets the number of stars on a submission that the user wants to set
   * @param stars
   * The number of stars to set (1-5)
   */
  public void setRating(int stars) {
    pbh.showProgressDialog("Rating "+stars+" stars");
    AjaxRequest request = new AjaxRequest();
    request.addParameter("f", "vote");
    request.addParameter("pid", "" + pageID);
    request.addParameter("votevalue", "" + stars);
    request.setRequestID(AppConstants.REQUEST_ID_RATE);
    request.execute(requesthandler);
  }

  /**
   * Flags the cum-counter for currently visible image
   */
  public void cum() {
    pbh.showProgressDialog("Cumming ...");
    AjaxRequest request = new AjaxRequest();
    request.addParameter("f", "cum");
    request.addParameter("pid", "" + pageID);
    request.setRequestID(AppConstants.REQUEST_ID_CUM);
    request.execute(requesthandler);
  }

  /**
   * Watches the current user
   */
  public void watch() {
    pbh.showProgressDialog("Watching ...");
    AjaxRequest request = new AjaxRequest();
    request.addParameter("f", "addwatch");
    request.addParameter("authorid", "" + authorId);
    request.setRequestID(AppConstants.REQUEST_ID_WATCH);
    request.execute(requesthandler);
  }
  /**
   * Watches the current user
   */
  public void unwatch() {
    pbh.showProgressDialog("Unwatching ...");
    AjaxRequest request = new AjaxRequest();
    request.addParameter("f", "remwatch");
    request.addParameter("authorid", "" + authorId);
    request.setRequestID(AppConstants.REQUEST_ID_WATCH);
    request.execute(requesthandler);
  }

  /**
   * Shows more work by the specific user
   */
  public void morefromuser(Class activity, int ActivityID) {
    Intent intent = new Intent(this, activity);
    intent.putExtra("viewSource", AppConstants.VIEWSOURCE_USER);
    intent.putExtra("viewSearch", "" + authorId  );
    startActivityForResult(intent, ActivityID);
  }

  @Override
  public void onData(int id, JSONObject obj) throws Exception {
    switch (id) {
    case AppConstants.REQUEST_ID_CUM:
      pbh.hideProgressDialog();
      return;
    case AppConstants.REQUEST_ID_FAV:
      pbh.hideProgressDialog();
      return;
    case AppConstants.REQUEST_ID_UNFAV:
      pbh.hideProgressDialog();
      return;
    case AppConstants.REQUEST_ID_RATE:
      pbh.hideProgressDialog();
      return;
    case AppConstants.REQUEST_ID_WATCH:
      pbh.hideProgressDialog();
      return;
    }
    super.onData(id, obj);
    
  }
    
  
  
  
}
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.