Android Open Source - HistoryCleanerPro Clean Item






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.cleaning;
//from  w  ww .  j  a  v  a 2s.c  o  m
import java.util.List;

import android.app.ActivityManager;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.ayros.historycleaner.Globals;
import com.ayros.historycleaner.R;
import com.ayros.historycleaner.helpers.Helper;

public abstract class CleanItem
{
  protected final Category parentCat;
  protected ViewGroup itemView = null;
  protected CheckBox itemEnabled = null;

  public CleanItem(Category parent)
  {
    parentCat = parent;
  }

  // Override
  public boolean clean()
  {
    return false;
  }

  public String getDataPath()
  {
    return "/data/data/" + getPackageName();
  }

  // Override
  public abstract String getDisplayName();

  public Drawable getIcon()
  {
    return Helper.getPackageIcon(getPackageName());
  }

  // Override
  public String getPackageName()
  {
    return "";
  }

  public int getUniqueId()
  {
    return getUniqueName().hashCode();
  }

  public String getUniqueName()
  {
    return parentCat.getName() + ":" + getDisplayName();
  }

  /**
   * A warning message to be displayed when the item is selected. Should be
   * used for cleaning volatile items such as SMS history, saved passwords,
   * etc.
   * 
   * @return Warning message or null
   */
  public String getWarningMessage()
  {
    return null;
  }

  public ViewGroup getView()
  {
    return itemView;
  }

  // Override
  public List<String[]> getSavedData()
  {
    return null;
  }

  public boolean isApplicable()
  {
    return Helper.isPackageInstalled(getPackageName());
  }

  public boolean isChecked()
  {
    return itemEnabled.isChecked();
  }

  public boolean isRootRequired()
  {
    return true;
  }

  public boolean killProcess()
  {
    if (getPackageName() == null || getPackageName().length() == 0)
    {
      return false;
    }

    ActivityManager manager = (ActivityManager)Globals.getContext().getSystemService(Context.ACTIVITY_SERVICE);
    manager.killBackgroundProcesses(getPackageName());

    return true;
  }

  /**
   * Whether the process should be killed after the item is cleaned. By default it returns true.
   * @return
   */
  public boolean killProcessAfterCleaning()
  {
    return true;
  }

  /**
   * Should be called after cleaning the item. By default it kills the
   * application's process
   */
  public void postClean()
  {
    if (killProcessAfterCleaning())
    {
      killProcess();
    }
  }

  public boolean runOnUIThread()
  {
    return false;
  }

  public void setChecked(boolean checked)
  {
    // setEnabled(checked) not working?
    if (checked != itemEnabled.isChecked())
    {
      itemEnabled.toggle();
    }
  }

  public void toggleChecked()
  {
    itemEnabled.toggle();
  }

  public View getItemView(final Context c, boolean showDivider)
  {
    itemView = (ViewGroup)View.inflate(c, R.layout.category_item, null);

    itemEnabled = (CheckBox)itemView.findViewById(R.id.enabled);

    itemView.setOnClickListener(new View.OnClickListener()
    {
      public void onClick(View v)
      {
        itemEnabled.toggle();
      }
    });

    ImageView itemIcon = (ImageView)itemView.findViewById(R.id.item_icon);
    itemIcon.setImageDrawable(getIcon());
    itemIcon.setOnClickListener(new View.OnClickListener()
    {
      public void onClick(View v)
      {
        itemEnabled.toggle();
      }
    });

    TextView itemName = (TextView)itemView.findViewById(R.id.item_name);
    itemName.setText(getDisplayName());
    itemName.setOnClickListener(new View.OnClickListener()
    {
      public void onClick(View v)
      {
        itemEnabled.toggle();
      }
    });

    itemEnabled.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
      @Override
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
      {
        if (isChecked && getWarningMessage() != null)
        {
          Toast.makeText(c, "WARNING: " + getWarningMessage(), Toast.LENGTH_LONG).show();
        }
      }
    });

    if (!showDivider)
    {
      View divider = (View)itemView.findViewById(R.id.dividerLine);
      divider.setVisibility(View.GONE);
    }

    return itemView;
  }
}




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