Android Open Source - PhoneProfiles_Eclipse Applications Cache






From Project

Back to project page PhoneProfiles_Eclipse.

License

The source code is released under:

Apache License

If you think the Android project PhoneProfiles_Eclipse 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 sk.henrichg.phoneprofiles;
//  w  w  w .  ja  v a  2s . c o m
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;

public class ApplicationsCache {

  private class PackInfo {
    private String appLabel = "";
    private String packageName = "";
    //private String versionName = "";
    //private int versionCode = 0;
    private Drawable icon;
  }
  
  private class SortList implements Comparator<PackInfo> {

    public int compare(PackInfo lhs, PackInfo rhs) {
      return lhs.appLabel.compareToIgnoreCase(rhs.appLabel);
    }
    
  }
  
  private ArrayList<PackInfo> applicationsList;
  private boolean cached;
  private boolean cancelled;
  
  public ApplicationsCache()
  {
    applicationsList = new ArrayList<PackInfo>();
    cached = false;
  }
  
  public void getApplicationsList(Context context)
  {
    if (cached) return;
    
    cancelled = false;
    
    applicationsList.clear();
    
    PackageManager packageManager = context.getPackageManager();
    List<PackageInfo> packs = packageManager.getInstalledPackages(0);
    
    for (int i = 0; i < packs.size(); i++)
    {
      PackageInfo packageInfo = packs.get(i);

      if (packageManager.getLaunchIntentForPackage(packageInfo.packageName) != null)
      {
        PackInfo newInfo = new PackInfo();
        
        newInfo.appLabel = packageInfo.applicationInfo.loadLabel(packageManager).toString();
        newInfo.packageName = packageInfo.packageName;
        //newInfo.versionName = packageInfo.versionName;
        //newInfo.versionCode = packageInfo.versionCode;
        newInfo.icon = packageInfo.applicationInfo.loadIcon(packageManager);
        
        applicationsList.add(newInfo);
        
        if (cancelled)
          return;
      }
    }
    
    Collections.sort(applicationsList, new SortList());
    
    cached = true;
  }
  
  public int getLength()
  {
    if (cached) 
      return applicationsList.size();
    else
      return 0;
  }
  
  public String getPackageName(int position)
  {
    if (cached) 
      return applicationsList.get(position).packageName;
    else
      return "";
  }
  
  public String getApplicationLabel(int position)
  {
    if (cached) 
      return applicationsList.get(position).appLabel;
    else
      return "";
  }
  
  public Drawable getApplicationIcon(int position)
  {
    if (cached) 
      return applicationsList.get(position).icon;
    else
      return null;
  }
  
  public void clearCache(boolean nullList)
  {
    applicationsList.clear();
    if (nullList)
      applicationsList = null;
    cached = false;
  }
  
  public boolean isCached()
  {
    return cached;
  }
  
  public void cancelCaching()
  {
    cancelled = true;
  }
  
}




Java Source Code List

sk.henrichg.phoneprofiles.ActivateProfileActivity.java
sk.henrichg.phoneprofiles.ActivateProfileHelper.java
sk.henrichg.phoneprofiles.ActivateProfileListAdapter.java
sk.henrichg.phoneprofiles.ActivateProfileListFragment.java
sk.henrichg.phoneprofiles.ApplicationsCache.java
sk.henrichg.phoneprofiles.ApplicationsPreferenceAdapter.java
sk.henrichg.phoneprofiles.ApplicationsPreferenceDialog.java
sk.henrichg.phoneprofiles.ApplicationsPreference.java
sk.henrichg.phoneprofiles.BackgroundActivateProfileActivity.java
sk.henrichg.phoneprofiles.BitmapManipulator.java
sk.henrichg.phoneprofiles.BootUpReceiver.java
sk.henrichg.phoneprofiles.BrightnessDialogPreference.java
sk.henrichg.phoneprofiles.BrightnessView.java
sk.henrichg.phoneprofiles.DashClockBroadcastReceiver.java
sk.henrichg.phoneprofiles.DataWrapper.java
sk.henrichg.phoneprofiles.DatabaseHandler.java
sk.henrichg.phoneprofiles.EditorProfileListAdapter.java
sk.henrichg.phoneprofiles.EditorProfileListFragment.java
sk.henrichg.phoneprofiles.EditorProfilesActivity.java
sk.henrichg.phoneprofiles.ExecuteRadioProfilePrefsService.java
sk.henrichg.phoneprofiles.ExecuteVolumeProfilePrefsService.java
sk.henrichg.phoneprofiles.FirstStartService.java
sk.henrichg.phoneprofiles.GUIData.java
sk.henrichg.phoneprofiles.GlobalData.java
sk.henrichg.phoneprofiles.IconWidgetProvider.java
sk.henrichg.phoneprofiles.ImageViewPreferenceAdapter.java
sk.henrichg.phoneprofiles.ImageViewPreferenceDialog.java
sk.henrichg.phoneprofiles.ImageViewPreference.java
sk.henrichg.phoneprofiles.KeyguardService.java
sk.henrichg.phoneprofiles.Keyguard.java
sk.henrichg.phoneprofiles.LocaleChangedReceiver.java
sk.henrichg.phoneprofiles.NumberPickerPreference.java
sk.henrichg.phoneprofiles.OneRowWidgetProvider.java
sk.henrichg.phoneprofiles.PackageReplacedReceiver.java
sk.henrichg.phoneprofiles.PhoneCallBroadcastReceiver.java
sk.henrichg.phoneprofiles.PhoneCallReceiver.java
sk.henrichg.phoneprofiles.PhoneProfilesDashClockExtension.java
sk.henrichg.phoneprofiles.PhoneProfilesHelper.java
sk.henrichg.phoneprofiles.PhoneProfilesPreferencesActivity.java
sk.henrichg.phoneprofiles.PhoneProfilesPreferencesFragment.java
sk.henrichg.phoneprofiles.ProfileDurationAlarmBroadcastReceiver.java
sk.henrichg.phoneprofiles.ProfileListWidgetFactory.java
sk.henrichg.phoneprofiles.ProfileListWidgetProvider.java
sk.henrichg.phoneprofiles.ProfileListWidgetService.java
sk.henrichg.phoneprofiles.ProfilePreferenceAdapter.java
sk.henrichg.phoneprofiles.ProfilePreferenceDialog.java
sk.henrichg.phoneprofiles.ProfilePreference.java
sk.henrichg.phoneprofiles.ProfilePreferencesFragmentActivity.java
sk.henrichg.phoneprofiles.ProfilePreferencesFragment.java
sk.henrichg.phoneprofiles.ProfilePreferencesIndicator.java
sk.henrichg.phoneprofiles.Profile.java
sk.henrichg.phoneprofiles.ReceiversService.java
sk.henrichg.phoneprofiles.RefreshGUIBroadcastReceiver.java
sk.henrichg.phoneprofiles.RemoteExportDataActivity.java
sk.henrichg.phoneprofiles.RemoveBrightnessViewBroadcastReceiver.java
sk.henrichg.phoneprofiles.ScreenOnOffBroadcastReceiver.java
sk.henrichg.phoneprofiles.ShortcutCreatorActivity.java
sk.henrichg.phoneprofiles.ShortcutCreatorListFragment.java
sk.henrichg.phoneprofiles.ShortcutProfileListAdapter.java
sk.henrichg.phoneprofiles.UpgradePPHelperActivity.java
sk.henrichg.phoneprofiles.VolumeDialogPreference.java