Android Open Source - HistoryCleanerPro Data View Activity






From Project

Back to project page HistoryCleanerPro.

License

The source code is released under:

Copyright (c) 2014, John Phillips All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: ...

If you think the Android project HistoryCleanerPro 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

package com.ayros.historycleaner.ui;
/*from w ww  .  ja v  a 2 s  .  co  m*/
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.text.TextUtils;
import android.view.MenuItem;
import android.webkit.WebView;

import com.ayros.historycleaner.Globals;
import com.ayros.historycleaner.R;
import com.ayros.historycleaner.helpers.Logger;
import com.stericson.RootTools.RootTools;
import com.stericson.RootTools.exceptions.RootDeniedException;
import com.stericson.RootTools.execution.Shell;

public class DataViewActivity extends Activity
{
  @Override
  protected void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_data_view);

    if (Globals.itemDataView.isRootRequired())
    {
      if (!RootTools.isRootAvailable())
      {
        Logger.errorST("Root is required to view item data, but root access is not available");
        displayMessageInTable("Error: It does not appear that your phone is rooted. You need root access to use this feature.");
        return;
      }

      if (!Shell.isRootShellOpen())
      {
        try
        {
          Shell.startRootShell();
        }
        catch (RootDeniedException rde)
        {
          Logger.errorST("Could not attain required root access to view item data");
          displayMessageInTable("Error: Could not attain root access! It is required to view this item's data.");
          return;
        }
        catch (Exception e)
        {
          Logger.errorST("Error when trying to start root shell");
          displayMessageInTable("Error: There was a problem when trying to gain root access");
          return;
        }
      }
    }

    List<String[]> data = Globals.itemDataView.getSavedData();
    if (data == null)
    {
      displayMessageInTable("Viewing data is not supported for this item.");
    }
    else if (data.size() <= 1)
    {
      displayMessageInTable("There are no items.");
    }
    else
    {
      setTableData(data);
    }
  }

  private void displayMessageInTable(String message)
  {
    List<String[]> rows = new ArrayList<String[]>();
    rows.add(new String[] { message });
    setTableData(rows);
  }

  private void appendCell(StringBuilder html, String data, boolean heading, boolean even)
  {
    String extra = (even && !heading) ? " class='evenRow'" : "";

    html.append((heading ? "<th" + extra + ">" : "<td nowrap" + extra + ">") + TextUtils.htmlEncode(data) + (heading ? "</th>" : "</td>"));
  }

  private void setTableData(List<String[]> data)
  {
    StringBuilder html = new StringBuilder();

    html.append("<html><head>");
    html.append("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />");

    html.append("<style type='text/css'>");
    html.append("th { text-align:left; background-color: #999999; }");
    html.append(".evenRow { background-color: #E5E5E5; } ");
    html.append("table, th, td { border: 1px solid black; }");
    html.append("</style>");

    html.append("</head><body><table>");
    for (int i = 0; i < data.size(); i++)
    {
      html.append("<tr>");

      for (String text : data.get(i))
      {
        appendCell(html, text, i == 0, i % 2 == 0);
      }

      html.append("</tr>");
    }
    html.append("</table></body>");

    html.append("</html>");

    WebView wv = (WebView)findViewById(R.id.data_webview);
    wv.loadData(html.toString(), "text/html", "utf-8");
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item)
  {
    switch (item.getItemId())
    {
      case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    }

    return super.onOptionsItemSelected(item);
  }

}




Java Source Code List

com.ayros.historycleaner.Globals.java
com.ayros.historycleaner.ProfileAdapter.java
com.ayros.historycleaner.UIRunner.java
com.ayros.historycleaner.cleaning.CategoryList.java
com.ayros.historycleaner.cleaning.Category.java
com.ayros.historycleaner.cleaning.CleanItem.java
com.ayros.historycleaner.cleaning.CleanListener.java
com.ayros.historycleaner.cleaning.Cleaner.java
com.ayros.historycleaner.cleaning.ProfileList.java
com.ayros.historycleaner.cleaning.Profile.java
com.ayros.historycleaner.cleaning.SimpleDatabaseItem.java
com.ayros.historycleaner.cleaning.SimpleFileItem.java
com.ayros.historycleaner.cleaning.items._AdobeReader_Recent.java
com.ayros.historycleaner.cleaning.items._FirefoxBeta_Cache.java
com.ayros.historycleaner.cleaning.items._FirefoxBeta_Cookies.java
com.ayros.historycleaner.cleaning.items._FirefoxBeta_History.java
com.ayros.historycleaner.cleaning.items._FirefoxBeta_LocalStorage.java
com.ayros.historycleaner.cleaning.items._FirefoxBeta_OpenTabs.java
com.ayros.historycleaner.cleaning.items._Firefox_Cache.java
com.ayros.historycleaner.cleaning.items._Firefox_Cookies.java
com.ayros.historycleaner.cleaning.items._Firefox_History.java
com.ayros.historycleaner.cleaning.items._Firefox_LocalStorage.java
com.ayros.historycleaner.cleaning.items._Firefox_OpenTabs.java
com.ayros.historycleaner.cleaning.items._ONEBrowser_Cache.java
com.ayros.historycleaner.cleaning.items._ONEBrowser_LocalStorage.java
com.ayros.historycleaner.cleaning.items._System_BrowserHistory.java
com.ayros.historycleaner.cleaning.items._System_Cache.java
com.ayros.historycleaner.cleaning.items._System_Clipboard.java
com.ayros.historycleaner.cleaning.items._System_FrequentContacts.java
com.ayros.historycleaner.cleaning.items._System_RecentCalls.java
com.ayros.historycleaner.cleaning.items._System_SMS.java
com.ayros.historycleaner.helpers.DBHelper.java
com.ayros.historycleaner.helpers.DatabaseModifier.java
com.ayros.historycleaner.helpers.Helper.java
com.ayros.historycleaner.helpers.Logger.java
com.ayros.historycleaner.helpers.PrefsModifier.java
com.ayros.historycleaner.helpers.RootHelper.java
com.ayros.historycleaner.helpers.XML.java
com.ayros.historycleaner.locale.Constants.java
com.ayros.historycleaner.locale.bundle.BundleScrubber.java
com.ayros.historycleaner.locale.bundle.PluginBundleManager.java
com.ayros.historycleaner.locale.receiver.FireReceiver.java
com.ayros.historycleaner.locale.ui.AbstractPluginActivity.java
com.ayros.historycleaner.locale.ui.EditPluginActivity.java
com.ayros.historycleaner.ui.CleanFragment.java
com.ayros.historycleaner.ui.DataViewActivity.java
com.ayros.historycleaner.ui.HelpActivity.java
com.ayros.historycleaner.ui.MainActivity.java
com.ayros.historycleaner.ui.OnProfileUpdated.java
com.ayros.historycleaner.ui.ProfileFragment.java
com.ayros.historycleaner.ui.ShortcutActivity.java
com.ayros.historycleaner.ui.ShortcutCleanActivity.java
com.twofortyfouram.locale.BreadCrumber.java
com.twofortyfouram.locale.Constants.java
com.twofortyfouram.locale.Intent.java
com.twofortyfouram.locale.PackageUtilities.java