package com.wistron.WiGallery; import java.util.LinkedList; import java.util.List; import android.util.Log; import Utilities.CSStaticData; public class StatusInfo { private static int m_restore_num = 0; //GL part private CSStaticData.LIST_TYPE m_type = CSStaticData.LIST_TYPE.LIST_INVALID; private CSStaticData.LIST_ELEMENT_TYPE m_element_type = CSStaticData.LIST_ELEMENT_TYPE.LIST_ELEMENT_ALL; private boolean m_b_enter_group = false; //是否进入文件列表标志 private int m_select_group_index = -1; //保存当前选择的子链表编号 private int m_index = 0; private ELEM_STATUS m_status = ELEM_STATUS.NORMAL_STATUS; //System private int m_screen_width = 800; //屏幕宽度 private int m_screen_height = 480; //屏幕高度 private int m_long_press_timeout = 450; //长按超时 private float m_fling_velocity = 1000; //滑动速度 private int m_load_limit = 50; //加载缩略图数量限制 private int m_thumbnailSize = 256; //贴图缩略图大小 private int m_label_length = 10; //专辑左下角文本,请赋偶数 private int m_fling_speed_threshold = 20; //触发滑动事件的速度阀值 private boolean m_sort_order_mode = false; //排序模式 //Activity private int m_scroll_bar_progress = 0; private int m_scroll_bar_max = 10; private boolean m_dimension_switch = false; // selected status list private List<Element> m_selected_list = null; //保存选中文件状态的列表 private boolean m_is_select_mode = false; //是否处于选择模式 //Gallery messageboxes private boolean mIsMsgBoxDeleteProgressShow = false; //进度对话框 private boolean mIsMsgBoxMoveProgressShow = false; //进度对话框 private boolean mIsMsgBoxSetFavoriteProgressShow = false; //进度对话框 private boolean mIsMsgBoxRemoveFavoriteProgressShow = false; //进度对话框 private int mIsMsgBoxDeleteProgress = 0; private int mIsMsgBoxMoveProgress = 0; private int mIsMsgBoxSetFavoriteProgress = 0; private int mIsMsgBoxRemoveFavoriteProgress = 0; //Gallery Multi Operation private boolean mHasOperatedMenu = false; private int mCurMultiStatus = 0; // group_data private List<GroupDataInfo> grouo_data_info_list = null; private float[] pos_offset = {0,0,0}; private int group_data_index = 0; // group——none模式下排序 private int sort_status = 1;// 0:升序 1:降序 public StatusInfo() { if (grouo_data_info_list != null) grouo_data_info_list.clear(); else grouo_data_info_list = new LinkedList<GroupDataInfo>(); } public void saveGalleryMessageBoxes(boolean msgboxDeleteProgress, boolean msgboxMoveProgress, boolean msgboxRemoveFavoriteProgress, boolean msgboxSetFavoriteProgress){ mIsMsgBoxDeleteProgressShow = msgboxDeleteProgress; mIsMsgBoxMoveProgressShow = msgboxMoveProgress; mIsMsgBoxRemoveFavoriteProgressShow = msgboxRemoveFavoriteProgress; mIsMsgBoxSetFavoriteProgressShow = msgboxSetFavoriteProgress; } public void saveGalleryMessageBoxesProgress(int msgboxDeleteProgress, int msgboxMoveProgress, int msgboxRemoveFavoriteProgress, int msgboxSetFavoriteProgress){ mIsMsgBoxDeleteProgress = msgboxDeleteProgress; mIsMsgBoxMoveProgress = msgboxMoveProgress; mIsMsgBoxSetFavoriteProgress = msgboxSetFavoriteProgress; mIsMsgBoxRemoveFavoriteProgress = msgboxRemoveFavoriteProgress; } public boolean getMsgboxDeleteProgressStatus(){ return mIsMsgBoxDeleteProgressShow; } public int getMsgboxDeleteProgress(){ return mIsMsgBoxDeleteProgress; } public boolean getMsgBoxMoveProgressStatus(){ return mIsMsgBoxMoveProgressShow; } public int getMsgBoxMoveProgress(){ return mIsMsgBoxMoveProgress; } public boolean getMsgBoxRemoveFavoriteProgressStatus(){ return mIsMsgBoxRemoveFavoriteProgressShow; } public int getMsgBoxRemoveFavoriteProgress(){ return mIsMsgBoxRemoveFavoriteProgress; } public boolean getMsgBoxSetFavoriteProgressStatus(){ return mIsMsgBoxSetFavoriteProgressShow; } public int getMsgBoxSetFavoriteProgress(){ return mIsMsgBoxSetFavoriteProgress; } public void saveGL() { //Selected List // m_selected_list = WiGalleryOpenGLRenderer.m_data_manager.getSelectedElementsList(); //GL if (WiGalleryOpenGLRenderer.m_element_group != null) { m_type = WiGalleryOpenGLRenderer.m_element_group.getType(); m_element_type = WiGalleryOpenGLRenderer.m_element_group.getElementType(); m_b_enter_group = WiGalleryOpenGLRenderer.m_element_group.bEnterGroup(); m_select_group_index = WiGalleryOpenGLRenderer.m_element_group.getOpenGroupIndex(); m_status = WiGalleryOpenGLRenderer.m_element_group.getChoosedMode(); m_index = WiGalleryOpenGLRenderer.m_element_group.getIndex(); grouo_data_info_list.clear(); if (WiGalleryOpenGLRenderer.m_element_group.getType() == CSStaticData.LIST_TYPE.LIST_DATE && grouo_data_info_list.size() == 0 && WiGalleryOpenGLRenderer.m_element_group.bEnterGroup()) { for (int i = 0; i < WiGalleryOpenGLRenderer.m_element_group.size(); i++) { ElementList list = WiGalleryOpenGLRenderer.m_element_group.get(i); GroupDataInfo info = new GroupDataInfo(); info.pos = list.getPosition(); info.posIndex = list.getIndex(); grouo_data_info_list.add(info); } pos_offset[0] = WiGalleryOpenGLRenderer.m_element_group.pos_offset[0]; pos_offset[1] = WiGalleryOpenGLRenderer.m_element_group.pos_offset[1]; pos_offset[2] = WiGalleryOpenGLRenderer.m_element_group.pos_offset[2]; group_data_index = WiGalleryOpenGLRenderer.m_element_group.m_index; } else if (WiGalleryOpenGLRenderer.m_element_group.getType() == CSStaticData.LIST_TYPE.LIST_NONE) { ElementList list = WiGalleryOpenGLRenderer.m_element_group.get(0); for (int i = 0 ; i < list.size(); i++) { Element elem = list.get(i); elem.m_animation_type = CSStaticData.ANIMATION_TYPE.NONE; } } } WiGalleryOpenGLRenderer.m_data_manager.ReleaseAllTexture(); if(CSStaticData.DEBUG) Log.e("SaveGL", String.format("----------------- m_index = %d --------------", m_index)); if(WiGalleryOpenGLRenderer.m_element_group != null){ WiGalleryOpenGLRenderer.m_element_group.m_is_drawing = false; } } public void saveSystem(){ //Activity m_screen_width = CSStaticData.g_screen_width; m_screen_height = CSStaticData.g_screen_height; m_long_press_timeout = CSStaticData.g_long_press_timeout; m_fling_velocity = CSStaticData.g_fling_velocity; m_load_limit = CSStaticData.g_load_limit; m_thumbnailSize = CSStaticData.g_thumbnailSize; m_label_length = CSStaticData.g_label_length; m_fling_speed_threshold = CSStaticData.g_fling_speed_threshold; } public void saveActivity(){ m_dimension_switch = CSStaticData.g_is_3D_mode; } public void saveMulitOperation(int curMultiStatus, boolean hasOperatedMenu){ mCurMultiStatus = curMultiStatus; mHasOperatedMenu = hasOperatedMenu; } public void saveSortOrderMode(){ m_sort_order_mode = CSStaticData.g_sort_order_mode; } public void saveActivitySeekbar(int progress, int max){ m_scroll_bar_progress = progress; m_scroll_bar_max = max; } public void restoreGL() { //GL if (WiGalleryOpenGLRenderer.m_element_group != null) { WiGalleryOpenGLRenderer.m_element_group.m_b_restore = false; /* if (m_restore_num < 1) { m_restore_num++; return; } else { m_restore_num = 0; } */ if(CSStaticData.DEBUG) Log.e("RESTOREGL", String.format("----------------- m_index = %d --------------", m_index)); //WiGalleryOpenGLRenderer.m_element_group.setType(m_type, m_b_enter_group, m_select_group_index, m_status, m_element_type); WiGalleryOpenGLRenderer.m_element_group.rebuildList(m_type, m_b_enter_group, m_select_group_index, m_status, m_element_type); WiGalleryOpenGLRenderer.m_element_group.refreshPosition(m_index); if (WiGalleryOpenGLRenderer.m_element_group.getType() == CSStaticData.LIST_TYPE.LIST_DATE && WiGalleryOpenGLRenderer.m_element_group.bEnterGroup()) { WiGalleryOpenGLRenderer.m_element_group.pos_offset[0] = pos_offset[0]; WiGalleryOpenGLRenderer.m_element_group.pos_offset[1] = pos_offset[1]; WiGalleryOpenGLRenderer.m_element_group.pos_offset[2] = pos_offset[2]; if (WiGalleryOpenGLRenderer.m_element_group.size() == grouo_data_info_list.size()) { for (int i = 0; i < WiGalleryOpenGLRenderer.m_element_group.size(); i++) { ElementList list = WiGalleryOpenGLRenderer.m_element_group.get(i); GroupDataInfo info = grouo_data_info_list.get(i); list.moveTo(info.pos[0], info.pos[1], info.pos[2]); list.setIndex(info.posIndex); } WiGalleryOpenGLRenderer.m_element_group.m_index = group_data_index; } } int curIndex = WiGalleryOpenGLRenderer.m_element_group.getCurIndex(); int totalIndex = WiGalleryOpenGLRenderer.m_element_group.getTotalIndex(); WiGalleryInterface.m_onGLMoveListener.setScrollBar(curIndex, totalIndex); WiGalleryOpenGLRenderer.m_element_group.m_is_drawing = true; if(CSStaticData.DEBUG) Log.e("RESTOREGL", String.format("-----------------restore finished --------------")); try{ Thread.sleep(500); } catch(Exception ex) { ex.printStackTrace(); } WiGalleryOpenGLRenderer.m_element_group.m_b_restore = true; } //最后开始处理Element的选中状态 //TODO ....................... } public void restoreSystem(){ //System CSStaticData.g_long_press_timeout = m_long_press_timeout; CSStaticData.g_fling_velocity = m_fling_velocity; CSStaticData.g_load_limit = m_load_limit; CSStaticData.g_thumbnailSize = m_thumbnailSize; CSStaticData.g_label_length = m_label_length; CSStaticData.g_fling_speed_threshold = m_fling_speed_threshold; } public void restoreActivity(){ // CSStaticData.g_is_3D_mode = m_dimension_switch; CSStaticData.g_sort_order_mode = m_sort_order_mode; } public int restoreCurMultiStatus(){ return mCurMultiStatus; } public boolean restoreHasOperatedMenu(){ return mHasOperatedMenu; } public int restoreActivitySeekbarProgress(){ return m_scroll_bar_progress; } public int restoreActivitySeekbarMax(){ return m_scroll_bar_max; } public boolean restoreSortOrderMode(){ return m_sort_order_mode; } }