/**
*
* Copyright 2014 Djia
* All right reserved.
*
* Author: Djia, Created on 2014-6-27
*/
package com.wind.gifassistant.ui;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.view.MotionEvent;
import android.view.View;
import com.special.ResideMenu.ResideMenu;
import com.special.ResideMenu.ResideMenuItem;
import com.wind.gifassistant.R;
import com.wind.gifassistant.utils.AppConfigs;
import com.wind.gifassistant.utils.AppUtils;
/**
* @author Djia 2014-6-27 main activity -- GIF list and Video list
*/
public class MainActivity extends FragmentActivity implements View.OnClickListener {
private static final String TAG = AppConfigs.APP_TAG + "MainActivity";
private static final boolean DEBUG = true;
private ResideMenu resideMenu;
private ResideMenuItem itemGifProductsList;
private ResideMenuItem itemVideosList;
private ResideMenuItem itemExit;
private ResideMenuItem itemSettings;
private static final int CURRENT_FRAGMENT_SHOW_GIFS_LIST = 0;
private static final int CURRENT_FRAGMENT_SHOW_VIDEOS_LIST = 1;
private static final int CURRENT_FRAGMENT_SHOW_SETTINGS_LIST = 2;
private int mCurrentFragmentShow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AppConfigs.checkAndCreateNecessaryFolders();
setContentView(R.layout.main_activity);
setupResideMenu();
if( savedInstanceState == null ) {
changeFragment(new GifProductsListFragment());
mCurrentFragmentShow = CURRENT_FRAGMENT_SHOW_GIFS_LIST;
}
}
@Override
protected void onResume() {
super.onResume();
}
private void changeFragment(Fragment targetFragment){
resideMenu.clearIgnoredViewList();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.main_fragment, targetFragment, "fragment")
.setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.commit();
}
private void setupResideMenu() {
// attach to current activity;
resideMenu = new ResideMenu(this);
// get backgroud image from setting
Uri backgroudUri = AppConfigs.getResideMenuConfig(getSharedPreferences(AppUtils.SHARED_PREFERENCE_NAME, Context.MODE_PRIVATE));
if (backgroudUri != null) {
resideMenu.setBackground(backgroudUri);
} else {
resideMenu.setBackground(R.mipmap.menu_background);
}
resideMenu.attachToActivity(this);
resideMenu.setMenuListener(mResideMenuListener);
// create menu items;
itemGifProductsList = new ResideMenuItem(this, R.mipmap.icon_home, "作品库");
itemVideosList = new ResideMenuItem(this, R.mipmap.icon_profile, "视频集");
itemExit = new ResideMenuItem(this, R.mipmap.icon_settings, "设置");
itemSettings = new ResideMenuItem(this, R.mipmap.icon_calendar, "退出");
itemGifProductsList.setOnClickListener(this);
itemVideosList.setOnClickListener(this);
itemExit.setOnClickListener(this);
itemSettings.setOnClickListener(this);
resideMenu.addMenuItem(itemGifProductsList, ResideMenu.DIRECTION_LEFT);
resideMenu.addMenuItem(itemVideosList, ResideMenu.DIRECTION_LEFT);
resideMenu.addMenuItem(itemExit, ResideMenu.DIRECTION_RIGHT);
resideMenu.addMenuItem(itemSettings, ResideMenu.DIRECTION_RIGHT);
findViewById(R.id.title_bar_left_menu).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
resideMenu.openMenu(ResideMenu.DIRECTION_LEFT);
}
});
findViewById(R.id.title_bar_right_menu).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
resideMenu.openMenu(ResideMenu.DIRECTION_RIGHT);
}
});
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
switch (ev.getAction()){
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
break;
}
return resideMenu.dispatchTouchEvent(ev);
}
private ResideMenu.OnMenuListener mResideMenuListener = new ResideMenu.OnMenuListener() {
@Override
public void openMenu() {
}
@Override
public void closeMenu() {
}
};
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v == itemGifProductsList){
if (mCurrentFragmentShow != CURRENT_FRAGMENT_SHOW_GIFS_LIST) {
changeFragment(new GifProductsListFragment());
mCurrentFragmentShow = CURRENT_FRAGMENT_SHOW_GIFS_LIST;
}
}else if (v == itemVideosList){
if (mCurrentFragmentShow != CURRENT_FRAGMENT_SHOW_VIDEOS_LIST) {
changeFragment(new VideosListFragment());
mCurrentFragmentShow = CURRENT_FRAGMENT_SHOW_VIDEOS_LIST;
}
}else if (v == itemExit){
if (mCurrentFragmentShow != CURRENT_FRAGMENT_SHOW_SETTINGS_LIST) {
SettingFragment setting = new SettingFragment();
setting.setResideMenu(resideMenu);
setting.setContext(MainActivity.this);
changeFragment(setting);
mCurrentFragmentShow = CURRENT_FRAGMENT_SHOW_SETTINGS_LIST;
}
}else if (v == itemSettings){
finish();
return;
}
resideMenu.closeMenu();
}
// What good method is to access resideMenu
public ResideMenu getResideMenu(){
return resideMenu;
}
}