Generalized File Manager 2 - GFM2.0

Basic Tutorials concerning: GUI, Views, Activites, XML, Layouts, Intents, ...

Generalized File Manager 2 - GFM2.0

Postby Nitinkcv » Sat Dec 29, 2007 11:49 am

Hi all,

Just a slight modification to the existing Generalized File Manager. This one is with a better UI (hopefully :P ) which makes use of the existing Toolbar functionality.

The snaps should hopefully explain the functionality, if not please let me know.

The IconifiedText.java , IconifiedTextListAdapter.java and IconifiedTextView.java remains the same from the initial version of Generalized File Manager.

GeneralizedFileManager2.java
Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2. package com.cognizant.GFM2;
  3.  
  4.  
  5.  
  6. import java.io.File;
  7.  
  8. import java.net.URISyntaxException;
  9.  
  10. import java.util.ArrayList;
  11.  
  12. import java.util.Arrays;
  13.  
  14. import java.util.Collections;
  15.  
  16. import java.util.Iterator;
  17.  
  18. import java.util.List;
  19.  
  20.  
  21.  
  22. import android.app.AlertDialog;
  23.  
  24. import android.app.ListActivity;
  25.  
  26. import android.content.DialogInterface;
  27.  
  28. import android.content.Intent;
  29.  
  30. import android.content.DialogInterface.OnClickListener;
  31.  
  32. import android.graphics.Color;
  33.  
  34. import android.graphics.drawable.Drawable;
  35.  
  36. import android.net.ContentURI;
  37.  
  38. import android.os.Bundle;
  39.  
  40. import android.view.KeyEvent;
  41.  
  42. import android.view.View;
  43.  
  44. import android.widget.ListView;
  45.  
  46.  
  47.  
  48. public class GeneralizedFileManager2 extends ListActivity {
  49.  
  50.  
  51.  
  52.         private List<String> directoryEntries = new ArrayList<String>();
  53.  
  54.         private List<IconifiedText> searchEntries = new ArrayList<IconifiedText>();
  55.  
  56.         private File currentDirectory = new File("/");
  57.  
  58.         private String folder_type;
  59.  
  60.         private static int checkWhichItem = 0;
  61.  
  62.  
  63.  
  64.         private boolean filter_dir = true;
  65.  
  66.         private boolean disable_onlistclick = false;
  67.  
  68.  
  69.  
  70.         /** Called when the activity is first created. */
  71.  
  72.         @Override
  73.  
  74.         public void onCreate(Bundle icicle) {
  75.  
  76.                 super.onCreate(icicle);
  77.  
  78.                
  79.  
  80.                 setContentView(R.layout.main);
  81.  
  82.  
  83.  
  84.                 Toolbar.setup(this);
  85.  
  86.                
  87.  
  88.                 browseToRoot();
  89.  
  90.  
  91.  
  92.                 this.setTitleColor(Color.TRANSPARENT);
  93.  
  94.                
  95.  
  96.                 searchFile();
  97.  
  98.  
  99.  
  100.                
  101.  
  102.         }
  103.  
  104.  
  105.  
  106.         @Override
  107.  
  108.         public boolean onKeyUp(int keyCode, KeyEvent event) {
  109.  
  110.                
  111.  
  112.                 switch (keyCode) {
  113.  
  114.                 case KeyEvent.KEYCODE_DPAD_RIGHT:
  115.  
  116.                         if (checkWhichItem > 4) {
  117.  
  118.                                 checkWhichItem = 0;
  119.  
  120.                         }
  121.  
  122.                         checkWhichItem++;
  123.  
  124.                         searchFile();
  125.  
  126.                         return true;
  127.  
  128.                 case KeyEvent.KEYCODE_DPAD_LEFT:
  129.  
  130.                         checkWhichItem--;
  131.  
  132.                         if (checkWhichItem < 0) {
  133.  
  134.                                 checkWhichItem = 4;
  135.  
  136.                         }
  137.  
  138.                         searchFile();
  139.  
  140.                         return true;
  141.  
  142.                 }
  143.  
  144.  
  145.  
  146.                 return false;
  147.  
  148.         }
  149.  
  150.  
  151.  
  152.        
  153.  
  154.         private void searchFile() {
  155.  
  156.                 switch (checkWhichItem) {
  157.  
  158.  
  159.  
  160.                 case 0:
  161.  
  162.                         SearchForDirectory(getResources().getStringArray(
  163.  
  164.                                         R.array.fileEndingImage), "Image", checkWhichItem);
  165.  
  166.                        
  167.  
  168.                         break;
  169.  
  170.  
  171.  
  172.                 case 1:
  173.  
  174.                         SearchForDirectory(getResources().getStringArray(
  175.  
  176.                                         R.array.fileEndingAudio), "Audio", checkWhichItem);
  177.  
  178.                        
  179.  
  180.                         break;
  181.  
  182.  
  183.  
  184.                 case 2:
  185.  
  186.                         SearchForDirectory(getResources().getStringArray(
  187.  
  188.                                         R.array.fileEndingVideo), "Video", checkWhichItem);
  189.  
  190.                        
  191.  
  192.                         break;
  193.  
  194.  
  195.  
  196.                 case 3:
  197.  
  198.                         SearchForDirectory(getResources().getStringArray(
  199.  
  200.                                         R.array.fileEndingPackage), "Package", checkWhichItem);
  201.  
  202.                        
  203.  
  204.                         break;
  205.  
  206.  
  207.  
  208.                 case 4:
  209.  
  210.                         SearchForDirectory(getResources().getStringArray(
  211.  
  212.                                         R.array.fileEndingApp), "Android App", checkWhichItem);
  213.  
  214.                        
  215.  
  216.                         break;
  217.  
  218.  
  219.  
  220.                 }
  221.  
  222.         }
  223.  
  224.  
  225.  
  226.         /**
  227.  
  228.          Calls the setNewFocus defined in Toolbar.java and
  229.  
  230.          sets the request to the appropriate icon.
  231.  
  232.          */
  233.  
  234.         private void setNewFocus(int focus_id) {
  235.  
  236.                
  237.  
  238.                 Toolbar.setNewFocus(focus_id);
  239.  
  240.                
  241.  
  242.         }
  243.  
  244.  
  245.  
  246.         /**
  247.  
  248.          * This function browses to the root-directory of the file-system.
  249.  
  250.          */
  251.  
  252.         private void browseToRoot() {
  253.  
  254.                 filterFiles(new File("/"));
  255.  
  256.         }
  257.  
  258.  
  259.  
  260.         private void browseTo(final File aDirectory) {
  261.  
  262.                 if (!(aDirectory.isDirectory())) {
  263.  
  264.  
  265.  
  266.                         OnClickListener okButtonListener = new OnClickListener() {
  267.  
  268.                                 // @Override
  269.  
  270.                                 public void onClick(DialogInterface arg0, int arg1) {
  271.  
  272.                                         try {
  273.  
  274.                                                 // Lets start an intent to View the file, that was
  275.  
  276.                                                 // clicked...
  277.  
  278.                                                 Intent myIntent = new Intent(
  279.  
  280.                                                                 android.content.Intent.VIEW_ACTION,
  281.  
  282.                                                                 new ContentURI("file://"
  283.  
  284.                                                                                 + aDirectory.getAbsolutePath()));
  285.  
  286.  
  287.  
  288.                                                 startActivity(myIntent);
  289.  
  290.                                         } catch (URISyntaxException e) {
  291.  
  292.                                                 e.printStackTrace();
  293.  
  294.                                         }
  295.  
  296.                                 }
  297.  
  298.                         };
  299.  
  300.                         OnClickListener cancelButtonListener = new OnClickListener() {
  301.  
  302.                                 // @Override
  303.  
  304.                                 public void onClick(DialogInterface arg0, int arg1) {
  305.  
  306.                                         // Do nothing
  307.  
  308.                                 }
  309.  
  310.                         };
  311.  
  312.                         AlertDialog.show(this, "Question",
  313.  
  314.                                         "Do you want to open this file?\n" ,
  315.  
  316.                                         "OK", okButtonListener, "Cancel", cancelButtonListener,
  317.  
  318.                                         false, null);
  319.  
  320.                 }
  321.  
  322.         }
  323.  
  324.  
  325.  
  326.         /*Filters the unwanted dirs and passes the
  327.  
  328.          * rest and searches for the file types*/
  329.  
  330.         private void filterFiles(final File aDir) {
  331.  
  332.                 File[] filesAndDirs = aDir.listFiles();
  333.  
  334.                 List<File> filesDirs = Arrays.asList(filesAndDirs);
  335.  
  336.                 List<File> updatedDir = new ArrayList<File>();
  337.  
  338.  
  339.  
  340.                 if (filter_dir) {
  341.  
  342.                         for (File file : filesDirs) {
  343.  
  344.                                 if (!((file.getPath().equals("/sys"))
  345.  
  346.                                                 || (file.getPath().equals("/dev"))
  347.  
  348.                                                 || (file.getPath().equals("/proc")) || (file.getPath()
  349.  
  350.                                                 .equals("/etc")))) {
  351.  
  352.                                         updatedDir.add(file);
  353.  
  354.                                 }
  355.  
  356.                         }
  357.  
  358.  
  359.  
  360.                 }
  361.  
  362.                 for (File file : updatedDir) {
  363.  
  364.                         fillFiles(file);
  365.  
  366.                 }
  367.  
  368.         }
  369.  
  370.  
  371.  
  372.         private List<String> fillFiles(final File aDir) {
  373.  
  374.  
  375.  
  376.                 this.currentDirectory = aDir;
  377.  
  378.                 int currentDirectoryLength = this.currentDirectory.getAbsolutePath()
  379.  
  380.                                 .length();
  381.  
  382.  
  383.  
  384.                 File[] filesAndDirs = aDir.listFiles();
  385.  
  386.  
  387.  
  388.                 if (filesAndDirs != null) {
  389.  
  390.  
  391.  
  392.                         List<File> filesDirs = Arrays.asList(filesAndDirs);
  393.  
  394.                         for (File file : filesDirs) {
  395.  
  396.  
  397.  
  398.                                 this.directoryEntries.add(file.getAbsolutePath().substring(
  399.  
  400.                                                 currentDirectoryLength + 1));
  401.  
  402.                                 if (file.isDirectory()) {
  403.  
  404.  
  405.  
  406.                                         fillFiles(file);
  407.  
  408.                                 }
  409.  
  410.                         }
  411.  
  412.                 }
  413.  
  414.  
  415.  
  416.                 Collections.sort(this.directoryEntries);
  417.  
  418.                 return this.directoryEntries;
  419.  
  420.         }
  421.  
  422.  
  423.  
  424.         /**
  425.  
  426.          * This will get the list of all the files
  427.  
  428.          * depending on the file type
  429.  
  430.          */
  431.  
  432.         protected void SearchForDirectory(String[] searchText, String file_type,
  433.  
  434.                         int file_type_no) {
  435.  
  436.  
  437.  
  438.                 this.searchEntries.clear();
  439.  
  440.                 Drawable currentIcon = null;
  441.  
  442.                 folder_type = file_type;
  443.  
  444.                 for (String filetype : searchText) {
  445.  
  446.  
  447.  
  448.                         for (Iterator iterator = directoryEntries.iterator(); iterator
  449.  
  450.                                         .hasNext();) {
  451.  
  452.                                 String type = (String) iterator.next();
  453.  
  454.                                 if (type.contains(filetype)) {
  455.  
  456.                                         if (checkEndsWithInStringArray(type, getResources()
  457.  
  458.                                                         .getStringArray(R.array.fileEndingImage))) {
  459.  
  460.                                                 currentIcon = getResources().getDrawable(
  461.  
  462.                                                                 R.drawable.image);
  463.  
  464.  
  465.  
  466.                                         } else if (checkEndsWithInStringArray(type, getResources()
  467.  
  468.                                                         .getStringArray(R.array.fileEndingPackage))) {
  469.  
  470.                                                 currentIcon = getResources().getDrawable(
  471.  
  472.                                                                 R.drawable.packed);
  473.  
  474.                                         } else if (checkEndsWithInStringArray(type, getResources()
  475.  
  476.                                                         .getStringArray(R.array.fileEndingAudio))) {
  477.  
  478.                                                 currentIcon = getResources().getDrawable(
  479.  
  480.                                                                 R.drawable.audio);
  481.  
  482.  
  483.  
  484.                                         } else if (checkEndsWithInStringArray(type, getResources()
  485.  
  486.                                                         .getStringArray(R.array.fileEndingApp))) {
  487.  
  488.                                                 currentIcon = getResources().getDrawable(
  489.  
  490.                                                                 R.drawable.android);
  491.  
  492.  
  493.  
  494.                                         } else if (checkEndsWithInStringArray(type, getResources()
  495.  
  496.                                                         .getStringArray(R.array.fileEndingVideo))) {
  497.  
  498.                                                 currentIcon = getResources().getDrawable(
  499.  
  500.                                                                 R.drawable.video);
  501.  
  502.  
  503.  
  504.                                         } else {
  505.  
  506.                                                 currentIcon = getResources().getDrawable(
  507.  
  508.                                                                 R.drawable.packed);
  509.  
  510.  
  511.  
  512.                                         }
  513.  
  514.                                         searchEntries.add(new IconifiedText(type, currentIcon));
  515.  
  516.                                 }
  517.  
  518.  
  519.  
  520.                         }
  521.  
  522.  
  523.  
  524.                         if (!(this.searchEntries.isEmpty())) {
  525.  
  526.  
  527.  
  528.                                 IconifiedTextListAdapter itla = new IconifiedTextListAdapter(
  529.  
  530.                                                 this);
  531.  
  532.                                 itla.setListItems(this.searchEntries);
  533.  
  534.                                 this.setListAdapter(itla);
  535.  
  536.                         } else {
  537.  
  538.  
  539.  
  540.                                 disable_onlistclick = true;
  541.  
  542.                                 String no_match = "Sorry! No matches for " + folder_type;
  543.  
  544.                                 this.searchEntries.add(new IconifiedText(no_match,
  545.  
  546.                                                 getCurrentIcon(file_type_no)));
  547.  
  548.                                 IconifiedTextListAdapter itlanomatch = new IconifiedTextListAdapter(
  549.  
  550.                                                 this);
  551.  
  552.                                 itlanomatch.setListItems(this.searchEntries);
  553.  
  554.                                 this.setListAdapter(itlanomatch);
  555.  
  556.  
  557.  
  558.                         }
  559.  
  560.  
  561.  
  562.                 }
  563.  
  564.                
  565.  
  566.                 /**
  567.  
  568.                  This will set the focus of the icons
  569.  
  570.                  whenever the LEFT or RIGHT Keypad are
  571.  
  572.                  pressed.
  573.  
  574.                  */
  575.  
  576.                 setNewFocus(checkWhichItem);
  577.  
  578.         }
  579.  
  580.  
  581.  
  582.        
  583.  
  584.         /**
  585.  
  586.          * This will get the current icon depending on the
  587.  
  588.          * file type.
  589.  
  590.          */
  591.  
  592.         private Drawable getCurrentIcon(int file_type_no) {
  593.  
  594.                
  595.  
  596.                 Drawable icon= null;
  597.  
  598.                
  599.  
  600.                 switch (file_type_no) {
  601.  
  602.  
  603.  
  604.                 case 0:
  605.  
  606.                         icon= getResources().getDrawable(
  607.  
  608.                                         R.drawable.image);
  609.  
  610.                         break;
  611.  
  612.  
  613.  
  614.                 case 1:
  615.  
  616.                         icon= getResources().getDrawable(
  617.  
  618.                                         R.drawable.audio);
  619.  
  620.                         break;
  621.  
  622.  
  623.  
  624.                 case 2:
  625.  
  626.                         icon= getResources().getDrawable(
  627.  
  628.                                         R.drawable.video);
  629.  
  630.                         break;
  631.  
  632.  
  633.  
  634.                 case 3:
  635.  
  636.                         icon= getResources().getDrawable(
  637.  
  638.                                         R.drawable.packed);
  639.  
  640.                         break;
  641.  
  642.  
  643.  
  644.                 case 4:
  645.  
  646.                         icon= getResources().getDrawable(
  647.  
  648.                                         R.drawable.android);
  649.  
  650.                         break;
  651.  
  652.  
  653.  
  654.                 }
  655.  
  656.                
  657.  
  658.                 return icon;
  659.  
  660.         }
  661.  
  662.  
  663.  
  664.         /**
  665.  
  666.          * Checks whether checkItsEnd ends with one of the Strings from fileEndings
  667.  
  668.          */
  669.  
  670.         private boolean checkEndsWithInStringArray(String checkItsEnd,
  671.  
  672.                         String[] fileEndings) {
  673.  
  674.                 for (String aEnd : fileEndings) {
  675.  
  676.                         if (checkItsEnd.endsWith(aEnd))
  677.  
  678.                                 return true;
  679.  
  680.                 }
  681.  
  682.                 return false;
  683.  
  684.         }
  685.  
  686.  
  687.  
  688.         @Override
  689.  
  690.         protected void onListItemClick(ListView l, View v, int position, long id) {
  691.  
  692.                 int selectionRowID = (int) this.getSelectionRowID();
  693.  
  694.  
  695.  
  696.                 File clickedFile = new File(this.currentDirectory.getAbsolutePath()
  697.  
  698.                                 + this.directoryEntries.get(selectionRowID));
  699.  
  700.  
  701.  
  702.                 if (clickedFile != null && !disable_onlistclick) {
  703.  
  704.                         this.browseTo(clickedFile);
  705.  
  706.                 }
  707.  
  708.  
  709.  
  710.         }
  711.  
  712. }
  713.  
  714.  
Parsed in 0.068 seconds, using GeSHi 1.0.8.4


Toolbar.java

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2. /**
  3.  
  4.  *
  5.  
  6.  */
  7.  
  8. package com.cognizant.GFM2;
  9.  
  10.  
  11.  
  12. import java.util.Map;
  13.  
  14.  
  15.  
  16. import android.app.Activity;
  17.  
  18. import android.content.Context;
  19.  
  20. import android.util.AttributeSet;
  21.  
  22. import android.view.View;
  23.  
  24. import android.widget.ImageButton;
  25.  
  26. import android.widget.TableLayout;
  27.  
  28. import android.widget.TableRow;
  29.  
  30.  
  31.  
  32. /*
  33.  
  34.  * referenced from  Steven Osborn's Undroid project at: http://code.google.com/p/undroid/w/list
  35.  
  36.  * MANY THANKS!!!
  37.  
  38.  */
  39.  
  40. public class Toolbar {
  41.  
  42.         public static final int PICTURE_ID = 100;
  43.  
  44.     public static final int AUDIO_ID = 101;
  45.  
  46.     public static final int VIDEO_ID = 102;
  47.  
  48.     public static final int APP_ID = 103;
  49.  
  50.     public static final int PACKAGE_ID = 104;
  51.  
  52.  
  53.  
  54.     //button references
  55.  
  56.     public static ImageButton pictureIcon;
  57.  
  58.     public static ImageButton audioIcon;
  59.  
  60.     public static ImageButton videoIcon;
  61.  
  62.     public static ImageButton appIcon;
  63.  
  64.     public static ImageButton packageIcon;
  65.  
  66.  
  67.  
  68.     public static Activity currentActivity;
  69.  
  70.  
  71.  
  72.     public static void setup(Activity a){
  73.  
  74.         currentActivity = a;
  75.  
  76.  
  77.  
  78.         //Images
  79.  
  80.        
  81.  
  82.         pictureIcon = (ImageButton) a.findViewById(PICTURE_ID);
  83.  
  84.         pictureIcon.setOnFocusChangeListener(toolbarFocusListener);
  85.  
  86.        
  87.  
  88.  
  89.  
  90.         // Audio
  91.  
  92.         audioIcon = (ImageButton) a.findViewById(AUDIO_ID);
  93.  
  94.         audioIcon.setOnFocusChangeListener(toolbarFocusListener);
  95.  
  96.      
  97.  
  98.         // Video
  99.  
  100.         videoIcon = (ImageButton) a.findViewById(VIDEO_ID);
  101.  
  102.         videoIcon.setOnFocusChangeListener(toolbarFocusListener);
  103.  
  104.        
  105.  
  106.         // Packages
  107.  
  108.         appIcon = (ImageButton) a.findViewById(APP_ID);
  109.  
  110.         appIcon.setOnFocusChangeListener(toolbarFocusListener);
  111.  
  112.        
  113.  
  114.         // AndroidApps
  115.  
  116.         packageIcon = (ImageButton) a.findViewById(PACKAGE_ID);
  117.  
  118.         packageIcon.setOnFocusChangeListener(toolbarFocusListener);
  119.  
  120.        
  121.  
  122.     }
  123.  
  124.    
  125.  
  126.     public static void setNewFocus(int focus_id){
  127.  
  128.        
  129.  
  130.         switch (focus_id) {
  131.  
  132.  
  133.  
  134.                 case 0:
  135.  
  136.                        
  137.  
  138.                         pictureIcon.requestFocus();
  139.  
  140.                         break;
  141.  
  142.  
  143.  
  144.                 case 1:
  145.  
  146.                         audioIcon.requestFocus();
  147.  
  148.                         break;
  149.  
  150.  
  151.  
  152.                 case 2:
  153.  
  154.                         videoIcon.requestFocus();
  155.  
  156.                         break;
  157.  
  158.  
  159.  
  160.                 case 3:
  161.  
  162.                         appIcon.requestFocus();
  163.  
  164.                         break;
  165.  
  166.  
  167.  
  168.                 case 4:
  169.  
  170.                         packageIcon.requestFocus();
  171.  
  172.                         break;
  173.  
  174.  
  175.  
  176.                 }
  177.  
  178.     }
  179.  
  180.  
  181.  
  182.  
  183.  
  184.      private static ImageButton.OnFocusChangeListener toolbarFocusListener =
  185.  
  186.          new ImageButton.OnFocusChangeListener() {
  187.  
  188.          
  189.  
  190.          public void onFocusChanged(View arg0, boolean arg1) {
  191.  
  192.              if(arg1) {
  193.  
  194.                  arg0.setBackground(R.drawable.background2);
  195.  
  196.                                  
  197.  
  198.              } else {
  199.  
  200.                  arg0.setBackground(R.drawable.background);
  201.  
  202.              }
  203.  
  204.          }
  205.  
  206.      };
  207.  
  208.      
  209.  
  210.      
  211.  
  212.      public static class ToolBarView extends TableLayout {
  213.  
  214.  
  215.  
  216.          public ToolBarView(Context context, AttributeSet attrs, Map inflateParams) {
  217.  
  218.  
  219.  
  220.              super(context, attrs, inflateParams);
  221.  
  222.  
  223.  
  224.              // Create row container
  225.  
  226.              TableRow row = new TableRow(context);
  227.  
  228.  
  229.  
  230.              // Create buttons
  231.  
  232.              ImageButton pictureButton = new ImageButton(context);
  233.  
  234.              ImageButton audioButton = new ImageButton(context);
  235.  
  236.              ImageButton videoButton = new ImageButton(context);
  237.  
  238.              ImageButton appButton = new ImageButton(context);
  239.  
  240.              ImageButton packageButton = new ImageButton(context);
  241.  
  242.  
  243.  
  244.              pictureButton.setId(PICTURE_ID);
  245.  
  246.              audioButton.setId(AUDIO_ID);
  247.  
  248.              videoButton.setId(VIDEO_ID);
  249.  
  250.              appButton.setId(APP_ID);
  251.  
  252.              packageButton.setId(PACKAGE_ID);
  253.  
  254.  
  255.  
  256.              // Set button images
  257.  
  258.              pictureButton.setImageDrawable(getResources()
  259.  
  260.                      .getDrawable(R.drawable.image));
  261.  
  262.              audioButton.setImageDrawable(getResources()
  263.  
  264.                      .getDrawable(R.drawable.audio));
  265.  
  266.              videoButton.setImageDrawable(getResources()
  267.  
  268.                      .getDrawable(R.drawable.video));
  269.  
  270.              appButton.setImageDrawable(getResources()
  271.  
  272.                      .getDrawable(R.drawable.packed));
  273.  
  274.              packageButton.setImageDrawable(getResources()
  275.  
  276.                      .getDrawable(R.drawable.android));
  277.  
  278.  
  279.  
  280.              // Set Padding l,t,r,b
  281.  
  282.              pictureButton.setPadding(0, 3, 0, 3);
  283.  
  284.              audioButton.setPadding(0, 3, 0, 3);
  285.  
  286.              videoButton.setPadding(0, 3, 0, 3);
  287.  
  288.              appButton.setPadding(0, 3, 0, 3);
  289.  
  290.              packageButton.setPadding(0, 3, 0, 3);
  291.  
  292.  
  293.  
  294.              // Set Background Image
  295.  
  296.              pictureButton.setBackground(getResources()
  297.  
  298.                      .getDrawable(R.drawable.background));
  299.  
  300.              audioButton.setBackground(getResources()
  301.  
  302.                      .getDrawable(R.drawable.background));
  303.  
  304.              videoButton.setBackground(getResources()
  305.  
  306.                      .getDrawable(R.drawable.background));
  307.  
  308.              appButton.setBackground(getResources()
  309.  
  310.                      .getDrawable(R.drawable.background));
  311.  
  312.              packageButton.setBackground(getResources()
  313.  
  314.                      .getDrawable(R.drawable.background));
  315.  
  316.  
  317.  
  318.  
  319.  
  320.              // Add buttons to row
  321.  
  322.              row.addView(pictureButton, new TableRow.LayoutParams(
  323.  
  324.                      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
  325.  
  326.              row.addView(audioButton, new TableRow.LayoutParams(
  327.  
  328.                      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
  329.  
  330.              row.addView(videoButton, new TableRow.LayoutParams(
  331.  
  332.                      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
  333.  
  334.              row.addView(appButton, new TableRow.LayoutParams(
  335.  
  336.                      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
  337.  
  338.              row.addView(packageButton, new TableRow.LayoutParams(
  339.  
  340.                      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
  341.  
  342.  
  343.  
  344.              // Make columns expand to fill space
  345.  
  346.              setColumnStretchable(0, true);
  347.  
  348.              setColumnStretchable(1, true);
  349.  
  350.              setColumnStretchable(2, true);
  351.  
  352.              setColumnStretchable(3, true);
  353.  
  354.              setColumnStretchable(4, true);
  355.  
  356.  
  357.  
  358.              // Set row background color
  359.  
  360.              row.setBackground(getResources().getDrawable(R.drawable.background));
  361.  
  362.  
  363.  
  364.              // Add row to table
  365.  
  366.              addView(row, new TableLayout.LayoutParams(
  367.  
  368.                      LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
  369.  
  370.          }
  371.  
  372.  
  373.  
  374.  
  375.  
  376.      }
  377.  
  378. }
  379.  
  380.  
  381.  
  382.  
Parsed in 0.055 seconds, using GeSHi 1.0.8.4


main.xml
Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  1.  
  2. <?xml version="1.0" encoding="utf-8"?>
  3.  
  4. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  5.  
  6.    android:orientation="vertical"
  7.  
  8.    android:layout_width="fill_parent"
  9.  
  10.    android:layout_height="fill_parent"
  11.  
  12.    >
  13.  
  14.  
  15.  
  16.         <view class="com.cognizant.GFM2.Toolbar$ToolBarView"
  17.  
  18.                 id="@+id/toolbar"
  19.  
  20.                 android:layout_width="fill_parent"
  21.  
  22.                 android:layout_height="wrap_content"/>
  23.  
  24.  
  25.  
  26.         <ListView id="@android:id/list"
  27.  
  28.    android:layout_width="fill_parent"
  29.  
  30.    android:layout_height="wrap_content"
  31.  
  32.    />
  33.  
  34.  
  35.  
  36. </LinearLayout>
  37.  
  38.  
Parsed in 0.002 seconds, using GeSHi 1.0.8.4


All the other xml files remain the same.

The GFM2.0 makes use of the LEFT and RIGHT KEYPAD buttons to navigate to the icons.

As usual i have an issue :)
However on click of the Left or Right Keypad button, there is a considerable amount of delay. what i mean is that the focus first goes to the icon and after about a second only the file types are listed. Not sure if this is bcoz of the slowness of my PC(700MHZ)..

Please let me know of any improvements.
And now to the snaps!!

Thanx,
Nitin
Attachments
GFM2.0(pic2).JPG
On loading the App..
GFM2.0(pic2).JPG (10.59 KiB) Viewed 12129 times
GFM2.0(pic1).JPG
On clicking the LEFT KEYPAD..
GFM2.0(pic1).JPG (17.48 KiB) Viewed 12131 times
Nitinkcv
Developer
Developer
 
Posts: 29
Joined: Thu Nov 29, 2007 1:02 pm

Top

Postby plusminus » Thu Jan 03, 2008 11:59 am

Hello Nitinkcv,

Delays are never good for user-experience. (Haven't run your updated project yet.) Perhaps add a :src: ProgressBar and/or make the entries appear as they are found during the search and not just in the very end of the search.

Regards,
plusminus
Image
Image | Android Development Community / Tutorials
User avatar
plusminus
Site Admin
Site Admin
 
Posts: 2688
Joined: Wed Nov 14, 2007 8:37 pm
Location: Schriesheim, Germany

get errors in FileManager2 code

Postby vijays » Sun Mar 23, 2008 11:14 am

error :ContentURI cant br resolved

code:
try {
// Lets start an intent to View the file, that was
// clicked...
Intent myIntent = new Intent(
android.content.Intent.VIEW_ACTION,
new ContentURI("file://"
+ aDirectory.getAbsolutePath()));

startActivity(myIntent);
} catch (URISyntaxException e) {
e.printStackTrace();
}

2)error:R.array cannot be resolved

code:
private void searchFile() {
switch (checkWhichItem) {

case 0:
SearchForDirectory(getResources().getStringArray(
R.array1.fileEndingImage), "Image", checkWhichItem);

break;

case 1:
SearchForDirectory(getResources().getStringArray(
R.array1.fileEndingAudio), "Audio", checkWhichItem);

break;

case 2:
SearchForDirectory(getResources().getStringArray(
R.array1.fileEndingVideo), "Video", checkWhichItem);

break;

case 3:
SearchForDirectory(getResources().getStringArray(
R.array1.fileEndingPackage), "Package", checkWhichItem);

break;

case 4:
SearchForDirectory(getResources().getStringArray(
R.array1.fileEndingApp), "Android App", checkWhichItem);

break;

}
}

3)error:multiple makers at this line..for this(IconifiedTextListAdapter itla = new IconifiedTextListAdapter)

code:if (!(this.searchEntries.isEmpty())) {

IconifiedTextListAdapter itla = new IconifiedTextListAdapter(
this);
itla.setListItems(this.searchEntries);
this.setListAdapter(itla);
} else {


4)error:int selectionRowID = (int) this.getSelectionRowID();

getSelectionRowID() METHOD GOT PROBLEM



plz help mi to solve this problem..
thanks in advanced
vijays
Freshman
Freshman
 
Posts: 4
Joined: Sun Mar 23, 2008 5:57 am
Location: india

sry forgot file name

Postby vijays » Sun Mar 23, 2008 11:17 am

errors in:
GeneralizedFileManager2.java
vijays
Freshman
Freshman
 
Posts: 4
Joined: Sun Mar 23, 2008 5:57 am
Location: india

Re: sry forgot file name

Postby Rajkumar_A » Mon Dec 22, 2008 6:26 am

vijays wrote:errors in:
GeneralizedFileManager2.java


I am new in android application development. So please guide me.

I have some questions.

1. How to monitor device using our application?. Means before any event occur into the device we have to Monitor them. For example Suppose I got one email, call or even I opened the browser. I have to collect all its information.

2. Can I control all the native(Default) application from my application ?.

Is it possible to do this ?

please reply ..

:)
[mod]Dude, you asked this in a new thread, why ask it here too? Your question has nothing to do with this thread.
I have good knowledge about Blackberry, J2ME, T-Mobile and now working on Android
Rajkumar_A
Freshman
Freshman
 
Posts: 2
Joined: Mon Dec 22, 2008 6:13 am
Location: Bangalore

Top

Return to Novice Tutorials

Who is online

Users browsing this forum: No registered users and 9 guests