Android Open Source - ironcontrol-for-android Logger List Activity






From Project

Back to project page ironcontrol-for-android.

License

The source code is released under:

Apache License

If you think the Android project ironcontrol-for-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * #%L/*w  ww .j  a  v  a  2 s .  com*/
 * =====================================================
 *   _____                _     ____  _   _       _   _
 *  |_   _|_ __ _   _ ___| |_  / __ \| | | | ___ | | | |
 *    | | | '__| | | / __| __|/ / _` | |_| |/ __|| |_| |
 *    | | | |  | |_| \__ \ |_| | (_| |  _  |\__ \|  _  |
 *    |_| |_|   \__,_|___/\__|\ \__,_|_| |_||___/|_| |_|
 *                             \____/
 * 
 * =====================================================
 * 
 * Hochschule Hannover
 * (University of Applied Sciences and Arts, Hannover)
 * Faculty IV, Dept. of Computer Science
 * Ricklinger Stadtweg 118, 30459 Hannover, Germany
 * 
 * Email: trust@f4-i.fh-hannover.de
 * Website: http://trust.f4.hs-hannover.de/
 * 
 * This file is part of ironcontrol for android, version 1.0.1, implemented by the Trust@HsH research group at the Hochschule Hannover.
 * %%
 * Copyright (C) 2013 Trust@HsH
 * %%
 * 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.
 * #L%
 */
package de.hshannover.f4.trust.ironcontrol.view.logger;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import android.app.ListActivity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;
import de.hshannover.f4.trust.ironcontrol.R;
import de.hshannover.f4.trust.ironcontrol.logger.Level;
import de.hshannover.f4.trust.ironcontrol.logger.LogData;
import de.hshannover.f4.trust.ironcontrol.logger.Logger;
import de.hshannover.f4.trust.ironcontrol.logger.LoggerFactory;
import de.hshannover.f4.trust.ironcontrol.logger.appander.LogListAppender;
import de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceDialog;
import de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceDialogEvent;

public class LoggerListActivity extends ListActivity implements MultichoiceDialogEvent{

  private static final Logger logger = LoggerFactory.getLogger(LoggerListActivity.class);

  private Set<String> filterNames;

  private LoggerListArrayAdapter mAdapter;

  boolean toast, info, warn, error, fatal, debug;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_view);
    filterNames = new HashSet<String>();
    mAdapter = new LoggerListArrayAdapter(getApplicationContext(), buildLogList());
    setListAdapter(mAdapter);
  }

  @Override
  protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    // index for a inverted list
    int index = l.getAdapter().getCount() -1 -position;
    LogData data = (LogData) l.getAdapter().getItem(index);
    LoggerPopUp popUp = new LoggerPopUp(this, data);
    popUp.create().show();
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.activity_logger_list, menu);

    menu.findItem(R.id.toast).setChecked(toast);
    menu.findItem(R.id.info).setChecked(info);
    menu.findItem(R.id.warn).setChecked(warn);
    menu.findItem(R.id.error).setChecked(error);
    menu.findItem(R.id.fatal_error).setChecked(fatal);
    menu.findItem(R.id.debug).setChecked(debug);
    return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()){
    case R.id.clear: clearLog();
    break;

    case R.id.filter:
      String[] labels = buildFilterLabels();
      new MultichoiceDialog(this, labels, labels, item.getItemId()).create().show();
      break;

    default:
      Editor edit = getSharedPreferences("LogLevel", MODE_PRIVATE).edit();
      if(item.isChecked()){
        item.setChecked(false);
      }else {
        item.setChecked(true);
      }
      edit.putBoolean(item.getTitle().toString(), item.isChecked());
      edit.commit();
      onChangeList();
      break;
    }
    return false;
  }

  private String[] buildFilterLabels(){
    List<LogData> logData = buildLogList();
    Set<String> labels = new HashSet<String>();

    for(LogData ld: logData){  // add to set, no duplicate
      labels.add(ld.getName());
    }

    return labels.toArray(new String[labels.size()]);
  }

  private List<LogData> buildLogList(){
    readSharedPreferences();
    List<LogData> logList = new ArrayList<LogData>();
    List<LogData> appenderLogList = getLogList();
    if(appenderLogList != null){
      for (LogData ld : appenderLogList) {
        if(filterNames.isEmpty() || filterNames.contains(ld.getName())){
          if (ld.getLevel() == Level.TOAST && toast) {
            logList.add(ld);
          }else if (ld.getLevel() == Level.INFO && info) {
            logList.add(ld);
          } else if (ld.getLevel() == Level.WARN && warn) {
            logList.add(ld);
          } else if (ld.getLevel() == Level.ERROR && error) {
            logList.add(ld);
          } else if (ld.getLevel() == Level.FATAL && fatal) {
            logList.add(ld);
          } else if (ld.getLevel() == Level.DEBUG && debug) {
            logList.add(ld);
          }
        }
      }
    }
    return logList;
  }

  private void readSharedPreferences(){
    SharedPreferences data =  getSharedPreferences("LogLevel", MODE_PRIVATE);
    toast = data.getBoolean(getResources().getString(R.string.toast), true);
    info = data.getBoolean(getResources().getString(R.string.info), true);
    warn = data.getBoolean(getResources().getString(R.string.warn), false);
    error = data.getBoolean(getResources().getString(R.string.error), true);
    fatal = data.getBoolean(getResources().getString(R.string.fatal_error), true);
    debug = data.getBoolean(getResources().getString(R.string.debug), false);
  }

  private List<LogData> getLogList(){
    LogListAppender la = (LogListAppender) logger.getAppender(LogListAppender.class);

    if(la == null){
      return null;
    }

    return la.getLogs();
  }

  private void onChangeList() {
    //TODO [MR] Noch version abfragen um ab api 11 addAll zu machen
    //    mAdapter.clear();
    //    mAdapter.addAll(list);
    mAdapter = new LoggerListArrayAdapter(getApplicationContext(), buildLogList());
    setListAdapter(mAdapter);
  }

  private void clearLog(){
    logger.getAppender(LogListAppender.class).clear();
    getLogList().clear();
    mAdapter.clear();
    Toast.makeText(getApplicationContext(), "Log was clear", Toast.LENGTH_SHORT).show();
  }

  @Override
  public void onClickeMultichoiceDialogButton(String[] selectedRowIds, int buttonType, boolean multi) {
    Set<String> newFilterNames = new HashSet<String>();
    newFilterNames.addAll(Arrays.asList(selectedRowIds));
    this.filterNames = newFilterNames;
    onChangeList();
  }
}




Java Source Code List

de.hshannover.f4.trust.ironcontrol.asynctask.ConnectionTask.java
de.hshannover.f4.trust.ironcontrol.asynctask.PDP.java
de.hshannover.f4.trust.ironcontrol.asynctask.PublishTask.java
de.hshannover.f4.trust.ironcontrol.asynctask.PublishTestTask.java
de.hshannover.f4.trust.ironcontrol.asynctask.PurgePublisherTask.java
de.hshannover.f4.trust.ironcontrol.asynctask.SearchTask.java
de.hshannover.f4.trust.ironcontrol.asynctask.SubscriptionTask.java
de.hshannover.f4.trust.ironcontrol.database.DBContentProvider.java
de.hshannover.f4.trust.ironcontrol.database.DatabaseHelper.java
de.hshannover.f4.trust.ironcontrol.database.entities.AbstractEntity.java
de.hshannover.f4.trust.ironcontrol.database.entities.Attributes.java
de.hshannover.f4.trust.ironcontrol.database.entities.Connections.java
de.hshannover.f4.trust.ironcontrol.database.entities.IdentifierAttributes.java
de.hshannover.f4.trust.ironcontrol.database.entities.Identifier.java
de.hshannover.f4.trust.ironcontrol.database.entities.MetaAttributes.java
de.hshannover.f4.trust.ironcontrol.database.entities.Requests.java
de.hshannover.f4.trust.ironcontrol.database.entities.Responses.java
de.hshannover.f4.trust.ironcontrol.database.entities.ResultItems.java
de.hshannover.f4.trust.ironcontrol.database.entities.ResultMetaAttributes.java
de.hshannover.f4.trust.ironcontrol.database.entities.ResultMetadata.java
de.hshannover.f4.trust.ironcontrol.database.entities.VendorMetadata.java
de.hshannover.f4.trust.ironcontrol.exceptions.IronControlUncaughtExceptionHandler.java
de.hshannover.f4.trust.ironcontrol.logger.Level.java
de.hshannover.f4.trust.ironcontrol.logger.LogData.java
de.hshannover.f4.trust.ironcontrol.logger.LogReceiver.java
de.hshannover.f4.trust.ironcontrol.logger.LoggerFactory.java
de.hshannover.f4.trust.ironcontrol.logger.Logger.java
de.hshannover.f4.trust.ironcontrol.logger.appander.Appender.java
de.hshannover.f4.trust.ironcontrol.logger.appander.LogCatAppender.java
de.hshannover.f4.trust.ironcontrol.logger.appander.LogFileAppender.java
de.hshannover.f4.trust.ironcontrol.logger.appander.LogListAppender.java
de.hshannover.f4.trust.ironcontrol.logger.appander.LogToastAppender.java
de.hshannover.f4.trust.ironcontrol.logic.Connection.java
de.hshannover.f4.trust.ironcontrol.logic.KeystoreManager.java
de.hshannover.f4.trust.ironcontrol.logic.RequestsController.java
de.hshannover.f4.trust.ironcontrol.logic.ResultNotificationManager.java
de.hshannover.f4.trust.ironcontrol.logic.StoredResponses.java
de.hshannover.f4.trust.ironcontrol.logic.SubscriptionPoller.java
de.hshannover.f4.trust.ironcontrol.logic.data.BuildIdetifiers.java
de.hshannover.f4.trust.ironcontrol.logic.data.Operation.java
de.hshannover.f4.trust.ironcontrol.logic.data.PollReceiver.java
de.hshannover.f4.trust.ironcontrol.logic.data.PollSender.java
de.hshannover.f4.trust.ironcontrol.logic.data.PublishRequestData.java
de.hshannover.f4.trust.ironcontrol.logic.data.RequestData.java
de.hshannover.f4.trust.ironcontrol.logic.data.SearchRequestData.java
de.hshannover.f4.trust.ironcontrol.logic.data.SubscribeRequestData.java
de.hshannover.f4.trust.ironcontrol.view.AdvancedRequestFragment.java
de.hshannover.f4.trust.ironcontrol.view.ConnectionFragmentActivity.java
de.hshannover.f4.trust.ironcontrol.view.MainActivity.java
de.hshannover.f4.trust.ironcontrol.view.MetadataBuilderActivity.java
de.hshannover.f4.trust.ironcontrol.view.PublishActivity.java
de.hshannover.f4.trust.ironcontrol.view.SearchButtonFragment.java
de.hshannover.f4.trust.ironcontrol.view.SearchFragmentActivity.java
de.hshannover.f4.trust.ironcontrol.view.SettingsActivity.java
de.hshannover.f4.trust.ironcontrol.view.SimpleRequestFragment.java
de.hshannover.f4.trust.ironcontrol.view.SubscribeButtonFragment.java
de.hshannover.f4.trust.ironcontrol.view.SubscribeFragmentActivity.java
de.hshannover.f4.trust.ironcontrol.view.TabFragment.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceDialogEvent.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceDialog.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceListDialog.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceListEvent.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoicePublishDialog.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceRemoveDialog.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceSearchDialog.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceSubscribeDialog.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListHierarchyActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListOverviewActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListResponsesActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListResultItemsActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListResultMetaActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListResultMetaAttributesActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListSavedConnectionsActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListSavedPublishsActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListVendorMetadataActivity.java
de.hshannover.f4.trust.ironcontrol.view.logger.LoggerListActivity.java
de.hshannover.f4.trust.ironcontrol.view.logger.LoggerListArrayAdapter.java
de.hshannover.f4.trust.ironcontrol.view.logger.LoggerPopUp.java
de.hshannover.f4.trust.ironcontrol.view.util.MetaDataEditText.java
de.hshannover.f4.trust.ironcontrol.view.util.MetaDataLinearLayout.java
de.hshannover.f4.trust.ironcontrol.view.util.MetadataValueFieldsBuilder.java
de.hshannover.f4.trust.ironcontrol.view.util.Node.java
de.hshannover.f4.trust.ironcontrol.view.util.PopUpEvent.java
de.hshannover.f4.trust.ironcontrol.view.util.PopUp.java
de.hshannover.f4.trust.ironcontrol.view.util.PromptSpinnerAdapter.java
de.hshannover.f4.trust.ironcontrol.view.util.RequiredSpinnerAdapter.java
de.hshannover.f4.trust.ironcontrol.view.util.SavePopUp.java
de.hshannover.f4.trust.ironcontrol.view.util.Util.java
de.hshannover.f4.trust.ironcontrol.view.util.ValidSpinnerAdapter.java