diff options
Diffstat (limited to 'src/com/cyanogenmod/filemanager/activities/HistoryActivity.java')
-rw-r--r-- | src/com/cyanogenmod/filemanager/activities/HistoryActivity.java | 412 |
1 files changed, 0 insertions, 412 deletions
diff --git a/src/com/cyanogenmod/filemanager/activities/HistoryActivity.java b/src/com/cyanogenmod/filemanager/activities/HistoryActivity.java deleted file mode 100644 index 84de995c..00000000 --- a/src/com/cyanogenmod/filemanager/activities/HistoryActivity.java +++ /dev/null @@ -1,412 +0,0 @@ -/* - * Copyright (C) 2012 The CyanogenMod Project - * - * 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.cyanogenmod.filemanager.activities; - -import android.app.ActionBar; -import android.app.Activity; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.res.Configuration; -import android.os.AsyncTask; -import android.os.Bundle; -import android.util.Log; -import android.view.KeyEvent; -import android.view.MenuItem; -import android.view.View; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.ImageView; -import android.widget.ListPopupWindow; -import android.widget.ListView; -import android.widget.TextView; - -import com.cyanogenmod.filemanager.R; -import com.cyanogenmod.filemanager.adapters.HighlightedSimpleMenuListAdapter; -import com.cyanogenmod.filemanager.adapters.HistoryAdapter; -import com.cyanogenmod.filemanager.adapters.SimpleMenuListAdapter; -import com.cyanogenmod.filemanager.model.History; -import com.cyanogenmod.filemanager.preferences.FileManagerSettings; -import com.cyanogenmod.filemanager.ui.ThemeManager; -import com.cyanogenmod.filemanager.ui.ThemeManager.Theme; -import com.cyanogenmod.filemanager.ui.widgets.ButtonItem; -import com.cyanogenmod.filemanager.util.AndroidHelper; -import com.cyanogenmod.filemanager.util.DialogHelper; -import com.cyanogenmod.filemanager.util.ExceptionUtil; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * An activity for show navigation history. - */ -public class HistoryActivity extends Activity implements OnItemClickListener { - - private static final String TAG = "HistoryActivity"; //$NON-NLS-1$ - - private static boolean DEBUG = false; - - private final BroadcastReceiver mNotificationReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (intent != null) { - if (intent.getAction().compareTo(FileManagerSettings.INTENT_THEME_CHANGED) == 0) { - applyTheme(); - } - } - } - }; - - /** - * @hide - */ - ListView mListView; - /** - * @hide - */ - HistoryAdapter mAdapter; - /** - * @hide - */ - boolean mIsEmpty; - private boolean mIsClearHistory; - - private View mOptionsAnchorView; - - /** - * Intent extra parameter for the history data. - */ - public static final String EXTRA_HISTORY_LIST = "extra_history_list"; //$NON-NLS-1$ - - /** - * {@inheritDoc} - */ - @Override - protected void onCreate(Bundle state) { - if (DEBUG) { - Log.d(TAG, "HistoryActivity.onCreate"); //$NON-NLS-1$ - } - - // Register the broadcast receiver - IntentFilter filter = new IntentFilter(); - filter.addAction(FileManagerSettings.INTENT_THEME_CHANGED); - registerReceiver(this.mNotificationReceiver, filter); - - this.mIsEmpty = false; - this.mIsClearHistory = false; - - //Set in transition - overridePendingTransition(R.anim.translate_to_right_in, R.anim.hold_out); - - //Set the main layout of the activity - setContentView(R.layout.history); - - //Initialize action bars and data - initTitleActionBar(); - initHistory(); - - // Apply the theme - applyTheme(); - - //Save state - super.onCreate(state); - } - - /** - * {@inheritDoc} - */ - @Override - protected void onDestroy() { - if (DEBUG) { - Log.d(TAG, "HistoryActivity.onDestroy"); //$NON-NLS-1$ - } - - // Unregister the receiver - try { - unregisterReceiver(this.mNotificationReceiver); - } catch (Throwable ex) { - /**NON BLOCK**/ - } - - //All destroy. Continue - super.onDestroy(); - } - - /** - * {@inheritDoc} - */ - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - } - - /** - * {@inheritDoc} - */ - @Override - protected void onPause() { - //Set out transition - overridePendingTransition(R.anim.hold_in, R.anim.translate_to_left_out); - super.onPause(); - } - - /** - * Method that initializes the titlebar of the activity. - */ - private void initTitleActionBar() { - //Configure the action bar options - getActionBar().setBackgroundDrawable( - getResources().getDrawable(R.drawable.bg_holo_titlebar)); - getActionBar().setDisplayOptions( - ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME); - getActionBar().setDisplayHomeAsUpEnabled(true); - View customTitle = getLayoutInflater().inflate(R.layout.simple_customtitle, null, false); - TextView title = (TextView)customTitle.findViewById(R.id.customtitle_title); - title.setText(R.string.history); - title.setContentDescription(getString(R.string.history)); - ButtonItem configuration = (ButtonItem)customTitle.findViewById(R.id.ab_button1); - configuration.setImageResource(R.drawable.ic_holo_light_overflow); - configuration.setContentDescription(getString(R.string.actionbar_button_overflow_cd)); - - View status = findViewById(R.id.history_status); - boolean showOptionsMenu = AndroidHelper.showOptionsMenu(getApplicationContext()); - configuration.setVisibility(showOptionsMenu ? View.VISIBLE : View.GONE); - this.mOptionsAnchorView = showOptionsMenu ? configuration : status; - - getActionBar().setCustomView(customTitle); - } - - /** - * Method invoked when an action item is clicked. - * - * @param view The button pushed - */ - public void onActionBarItemClick(View view) { - switch (view.getId()) { - case R.id.ab_button1: - //Overflow - showOverflowPopUp(view); - break; - - default: - break; - } - } - - /** - * Method that initializes the titlebar of the activity. - */ - @SuppressWarnings("unchecked") - private void initHistory() { - // Retrieve the loading view - final View waiting = findViewById(R.id.history_waiting); - - this.mListView = (ListView)findViewById(R.id.history_listview); - - // Load the history in background - AsyncTask<Void, Void, List<History>> task = new AsyncTask<Void, Void, List<History>>() { - Exception mCause; - List<History> mHistory; - - @Override - protected List<History> doInBackground(Void... params) { - try { - this.mHistory = - (List<History>)getIntent().getSerializableExtra(EXTRA_HISTORY_LIST); - if (this.mHistory.isEmpty()) { - View msg = findViewById(R.id.history_empty_msg); - msg.setVisibility(View.VISIBLE); - return new ArrayList<History>(); - } - HistoryActivity.this.mIsEmpty = this.mHistory.isEmpty(); - - //Show inverted history - final List<History> adapterList = new ArrayList<History>(this.mHistory); - Collections.reverse(adapterList); - return adapterList; - - } catch (Exception e) { - this.mCause = e; - return null; - } - } - - @Override - protected void onPreExecute() { - waiting.setVisibility(View.VISIBLE); - } - - @Override - protected void onPostExecute(List<History> result) { - waiting.setVisibility(View.GONE); - if (result != null) { - HistoryActivity.this.mAdapter = - new HistoryAdapter(HistoryActivity.this, result); - - if (HistoryActivity.this.mListView != null && - HistoryActivity.this.mAdapter != null) { - - HistoryActivity.this.mListView. - setAdapter(HistoryActivity.this.mAdapter); - HistoryActivity.this.mListView. - setOnItemClickListener(HistoryActivity.this); - } - - } else { - if (this.mCause != null) { - ExceptionUtil.translateException(HistoryActivity.this, this.mCause); - } - } - } - - @Override - protected void onCancelled() { - waiting.setVisibility(View.GONE); - } - }; - task.execute(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean onKeyUp(int keyCode, KeyEvent event) { - switch (keyCode) { - case KeyEvent.KEYCODE_MENU: - if (!this.mIsEmpty) { - showOverflowPopUp(this.mOptionsAnchorView); - } - return true; - case KeyEvent.KEYCODE_BACK: - back(true, null); - return true; - default: - return super.onKeyUp(keyCode, event); - } - } - - /** - * {@inheritDoc} - */ - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - back(true, null); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - - /** - * {@inheritDoc} - */ - @Override - public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - History history = ((HistoryAdapter)parent.getAdapter()).getItem(position); - back(false, history); - } - - /** - * Method that returns to previous activity and. - * - * @param cancelled Indicates if the activity was cancelled - * @param history The selected history - */ - private void back(final boolean cancelled, final History history) { - Intent intent = new Intent(); - if (cancelled) { - if (this.mIsClearHistory) { - intent.putExtra(NavigationActivity.EXTRA_HISTORY_CLEAR, true); - } - setResult(RESULT_CANCELED, intent); - } else { - intent.putExtra(NavigationActivity.EXTRA_HISTORY_ENTRY_SELECTION, history); - setResult(RESULT_OK, intent); - } - finish(); - } - - /** - * Method that clean the history and return back to navigation view - * @hide - */ - void clearHistory() { - if (this.mAdapter != null) { - this.mAdapter.clear(); - View msg = findViewById(R.id.history_empty_msg); - msg.setVisibility(View.VISIBLE); - this.mIsClearHistory = true; - } - } - - /** - * Method that shows a popup with the activity main menu. - * - * @param anchor The anchor of the popup - */ - private void showOverflowPopUp(View anchor) { - SimpleMenuListAdapter adapter = - new HighlightedSimpleMenuListAdapter(this, R.menu.history); - final ListPopupWindow popup = - DialogHelper.createListPopupWindow(this, adapter, anchor); - popup.setOnItemClickListener(new OnItemClickListener() { - @Override - public void onItemClick( - final AdapterView<?> parent, final View v, - final int position, final long id) { - final int itemId = (int)id; - switch (itemId) { - case R.id.mnu_clear_history: - popup.dismiss(); - clearHistory(); - break; - } - } - }); - popup.show(); - } - - /** - * Method that applies the current theme to the activity - * @hide - */ - void applyTheme() { - Theme theme = ThemeManager.getCurrentTheme(this); - theme.setBaseTheme(this, false); - - //- ActionBar - theme.setTitlebarDrawable(this, getActionBar(), "titlebar_drawable"); //$NON-NLS-1$ - View v = getActionBar().getCustomView().findViewById(R.id.customtitle_title); - theme.setTextColor(this, (TextView)v, "text_color"); //$NON-NLS-1$ - v = findViewById(R.id.ab_button1); - theme.setImageDrawable(this, (ImageView)v, "ab_overflow_drawable"); //$NON-NLS-1$ - // -View - theme.setBackgroundDrawable(this, this.mListView, "background_drawable"); //$NON-NLS-1$ - if (this.mAdapter != null) { - this.mAdapter.notifyThemeChanged(); - this.mAdapter.notifyDataSetChanged(); - } - this.mListView.setDivider( - theme.getDrawable(this, "horizontal_divider_drawable")); //$NON-NLS-1$ - this.mListView.invalidate(); - } -} |