LauncherConfig.java :  » Widget » android-digiclockwidget » com » davidgoemans » simpleClockWidget » Android Open Source

Android Open Source » Widget » android digiclockwidget 
android digiclockwidget » com » davidgoemans » simpleClockWidget » LauncherConfig.java
package com.davidgoemans.simpleClockWidget;

import java.util.ArrayList;
import java.util.List;

import com.davidgoemans.simpleClockWidget.Launcher.AppAdapter;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.util.Log;
import android.view.View;

public class LauncherConfig 
{
  String[] menuEntries;
  String[] packageNames;
  Drawable[] packageIcons;
  String[] descriptions;
  
  AppInfo[] apps;
  
  int count;
  
  
  public class AppInfo
  {
    public String DisplayName = null;
    public String PackageName = null;
    public Drawable Icon = null;
    public String Description = null;
    
    Launcher.AppAdapter toNotify;
    Handler handler;
    
    public void getIcon(AppAdapter toNotify)
    {
      this.toNotify = toNotify;
      handler = new Handler();
      Log.d("DigiClock", "Getting icon");
      handler.postDelayed(timer, 500);
    }
    
    private Runnable timer = new Runnable() 
    { 
      public void run() 
      {
        try 
        {
          Icon = toNotify.getContext().getPackageManager().getApplicationIcon(PackageName);
        } 
        catch (NameNotFoundException e) 
        {
          Icon = toNotify.getContext().getResources().getDrawable(R.drawable.icon);
        }
        
        toNotify.NotifyIconDone();
      }
    };
  }
  
  public LauncherConfig(Context context)
  {    
    SharedPreferences prefs = context.getSharedPreferences(SimpleClockWidget.PREFS_NAME, 0);
    count = prefs.getInt("launcherCount", 0);
    
    menuEntries = new String[count];  
    packageNames = new String[count];
    packageIcons = new Drawable[count];
    
    apps = new AppInfo[count];
    
    populateArrays(context, prefs);
  }
  
  void populateArrays(Context context, SharedPreferences prefs)
  {
    for( int i=0; i<count; i++ )
    {
      // Backward compat
      if( i==0 )
      {
        packageNames[i] = prefs.getString("launcherPackage", "" );
        menuEntries[i] = prefs.getString("launcherPackageDesc", "" );
      }
      else
      {
        packageNames[i] = prefs.getString("launcherPackage"+i, "" );
        menuEntries[i] = prefs.getString("launcherPackageDesc"+i, "" );
      }
      
      apps[i] = new AppInfo();
      apps[i].PackageName = packageNames[i];
      apps[i].DisplayName = menuEntries[i];
    }
  }
  
  public int getAppCount()
  {
    return count;
  }
  
  public String getPackageName(int index)
  {
    return packageNames[index];
  }
  
  public String getDisplayName(int index)
  {
    return menuEntries[index];
  }
  
  public String[] getDisplayNames()
  {
    return menuEntries;
  }
  
  public AppInfo getApp(int index)
  {
    return apps[index];
  }
  
  public AppInfo[] getApps()
  {
    return apps;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.