android/CustomTarget_lo_android.mk | 2 android/experimental/LOAndroid3/res/layout/file_list_item.xml | 24 - android/experimental/LOAndroid3/res/menu/view_menu.xml | 4 android/experimental/LOAndroid3/res/values/strings.xml | 6 android/experimental/LOAndroid3/res/values/themes.xml | 6 android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java | 2 android/experimental/LOAndroid3/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java | 3 android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java | 205 ++++------ android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java | 124 +++--- android/experimental/LOAndroid3/src/java/org/libreoffice/ui/GridItemAdapter.java | 34 - android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java | 166 ++++---- android/experimental/LOAndroid3/src/java/org/libreoffice/ui/ListItemAdapter.java | 178 -------- 12 files changed, 292 insertions(+), 462 deletions(-)
New commits: commit 14bf4870120857eca5ae4f6da15899418f6bc9a3 Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 15:22:31 2015 +0200 intent preference overrides default prefs. Change-Id: I315d283f6c000d971421a098264e9c594930283e diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java index fd08574..938a259 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java @@ -501,6 +501,27 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa sortMode = prefs.getInt(SORT_MODE_KEY, FileUtilities.SORT_AZ); SharedPreferences defaultPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); filterMode = Integer.valueOf(defaultPrefs.getString(FILTER_MODE_KEY , "-1")); + + Intent i = this.getIntent(); + if (i.hasExtra(CURRENT_DIRECTORY_KEY)) { + try { + currentDirectory = documentProvider.createFromUri(new URI( + i.getStringExtra(CURRENT_DIRECTORY_KEY))); + } catch (URISyntaxException e) { + currentDirectory = documentProvider.getRootDirectory(); + } + Log.d(LOGTAG, CURRENT_DIRECTORY_KEY); + } + + if (i.hasExtra(FILTER_MODE_KEY)) { + filterMode = i.getIntExtra( FILTER_MODE_KEY, FileUtilities.ALL); + Log.d(LOGTAG, FILTER_MODE_KEY); + } + + if (i.hasExtra(EXPLORER_VIEW_TYPE_KEY)) { + viewMode = i.getIntExtra( EXPLORER_VIEW_TYPE_KEY, GRID_VIEW); + Log.d(LOGTAG, EXPLORER_VIEW_TYPE_KEY); + } } @Override commit 1ef31fdf5eabd3c4b14d828021652d53da054c66 Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 15:19:28 2015 +0200 load default prefs once and use new sortmode/filter mode on refresh. Change-Id: I54c3e25e960ade172eeb0f4bf24104b3b06e2ee2 diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java index 3c269bf..fd08574 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java @@ -107,6 +107,7 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa DocumentProviderFactory.initialize(this); documentProviderFactory = DocumentProviderFactory.getInstance(); + readPreferences(); // init UI and populate with contents from the provider createUI(); switchToDocumentProvider(documentProviderFactory.getDefaultProvider()); @@ -496,11 +497,10 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa public void readPreferences(){ prefs = getSharedPreferences(EXPLORER_PREFS_KEY, MODE_PRIVATE); - viewMode = prefs.getInt( EXPLORER_VIEW_TYPE_KEY, GRID_VIEW); - sortMode = prefs.getInt( SORT_MODE_KEY, FileUtilities.SORT_AZ ); - SharedPreferences defaultPrefs = PreferenceManager.getDefaultSharedPreferences( getBaseContext() ); - filterMode = Integer.valueOf( defaultPrefs.getString( FILTER_MODE_KEY , "-1") ); - sortMode = Integer.valueOf( defaultPrefs.getString( SORT_MODE_KEY , "-1") ); + viewMode = prefs.getInt(EXPLORER_VIEW_TYPE_KEY, GRID_VIEW); + sortMode = prefs.getInt(SORT_MODE_KEY, FileUtilities.SORT_AZ); + SharedPreferences defaultPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); + filterMode = Integer.valueOf(defaultPrefs.getString(FILTER_MODE_KEY , "-1")); } @Override @@ -547,25 +547,7 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa protected void onResume() { super.onResume(); Log.d(LOGTAG, "onResume"); - readPreferences();// intent values take precedence over prefs? - Intent i = this.getIntent(); - if( i.hasExtra( CURRENT_DIRECTORY_KEY ) ){ - try { - currentDirectory = documentProvider.createFromUri(new URI( - i.getStringExtra(CURRENT_DIRECTORY_KEY))); - } catch (URISyntaxException e) { - currentDirectory = documentProvider.getRootDirectory(); - } - Log.d(LOGTAG, CURRENT_DIRECTORY_KEY); - } - if( i.hasExtra( FILTER_MODE_KEY ) ){ - filterMode = i.getIntExtra( FILTER_MODE_KEY, FileUtilities.ALL); - Log.d(LOGTAG, FILTER_MODE_KEY); - } - if( i.hasExtra( EXPLORER_VIEW_TYPE_KEY ) ){ - viewMode = i.getIntExtra( EXPLORER_VIEW_TYPE_KEY, GRID_VIEW); - Log.d(LOGTAG, EXPLORER_VIEW_TYPE_KEY); - } + Log.d(LOGTAG, "sortMode="+ sortMode + " filterMode=" + filterMode); createUI(); } commit 9acf5a678e20837db0ab20d145d0ba48c9e6c2fb Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 15:18:23 2015 +0200 Use switch... and effectively sorts before listing. Change-Id: Ia7eb2c53dc8a69b3d65e56afc7a27f0548c63d07 diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java index 9c58750..b8bb7e9 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java @@ -10,11 +10,14 @@ package org.libreoffice.ui; import org.libreoffice.R; +import org.libreoffice.storage.IFile; + import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; import java.util.Map; -import java.util.Arrays; +import java.util.Collections; +import java.util.List; import java.util.HashMap; import java.util.Comparator; import android.util.Log; @@ -198,55 +201,52 @@ public class FileUtilities { }; } - static void sortFiles(File[] files, int sortMode) { - // Should really change all this to a switch statement... - if (sortMode == SORT_AZ) { - Arrays.sort(files , new Comparator<File>() { - public int compare(File lhs, File rhs) { - return lhs.getName().compareTo(rhs.getName()); - } - }); - return; - } - if (sortMode == SORT_ZA) { - Arrays.sort(files , new Comparator<File>() { - public int compare(File lhs, File rhs) { - return rhs.getName().compareTo(lhs.getName()); - } - }); - return; - } - if (sortMode == SORT_OLDEST) { - Arrays.sort(files , new Comparator<File>() { - public int compare(File lhs, File rhs) { - return Long.valueOf(lhs.lastModified()).compareTo(rhs.lastModified()); - } - }); - return; - } - if (sortMode == SORT_NEWEST) { - Arrays.sort(files , new Comparator<File>() { - public int compare(File lhs, File rhs) { - return Long.valueOf(rhs.lastModified()).compareTo(lhs.lastModified()); - } - }); - return; - } - if (sortMode == SORT_LARGEST) { - Arrays.sort(files , new Comparator<File>() { - public int compare(File lhs, File rhs) { - return Long.valueOf(rhs.length()).compareTo(lhs.length()); - } - }); - return; - } - if (sortMode == SORT_SMALLEST) { - Arrays.sort(files , new Comparator<File>() { - public int compare(File lhs, File rhs) { - return Long.valueOf(lhs.length()).compareTo(rhs.length()); - } - }); - return; + static void sortFiles(List<IFile> files, int sortMode) { + switch (sortMode) { + case SORT_AZ: + Collections.sort(files , new Comparator<IFile>() { + public int compare(IFile lhs, IFile rhs) { + return lhs.getName().compareTo(rhs.getName()); + } + }); + break; + case SORT_ZA: + Collections.sort(files , new Comparator<IFile>() { + public int compare(IFile lhs, IFile rhs) { + return rhs.getName().compareTo(lhs.getName()); + } + }); + break; + case SORT_OLDEST: + Collections.sort(files , new Comparator<IFile>() { + public int compare(IFile lhs, IFile rhs) { + return lhs.getLastModified().compareTo(rhs.getLastModified()); + } + }); + break; + case SORT_NEWEST: + Collections.sort(files , new Comparator<IFile>() { + public int compare(IFile lhs, IFile rhs) { + return rhs.getLastModified().compareTo(lhs.getLastModified()); + } + }); + break; + case SORT_LARGEST: + Collections.sort(files , new Comparator<IFile>() { + public int compare(IFile lhs, IFile rhs) { + return Long.valueOf(rhs.getSize()).compareTo(lhs.getSize()); + } + }); + break; + case SORT_SMALLEST: + Collections.sort(files , new Comparator<IFile>() { + public int compare(IFile lhs, IFile rhs) { + return Long.valueOf(lhs.getSize()).compareTo(rhs.getSize()); + } + }); + break; + default: + Log.e(LOGTAG, "uncatched sortMode: " + sortMode); } return; } diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java index 229c619..3c269bf 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java @@ -177,6 +177,8 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa } else { getSupportActionBar().setDisplayHomeAsUpEnabled(false); } + + FileUtilities.sortFiles(filePaths, sortMode); // refresh view if (viewMode == GRID_VIEW) { gv.setAdapter(new GridItemAdapter(getApplicationContext(), commit b4efa1b28a01fb42ceca5a185c140ae0f8bdcc32 Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 15:17:54 2015 +0200 Formatting for consistency Change-Id: Ifd153869c965ffa33640e23e9794defaa57dba0b diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java index 79ef341..229c619 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java @@ -131,7 +131,7 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa LinearLayout content = (LinearLayout) findViewById(R.id.browser_main_content); - if( viewMode == GRID_VIEW){ + if (viewMode == GRID_VIEW) { // code to make a grid view getLayoutInflater().inflate(R.layout.file_grid, content); gv = (GridView)findViewById(R.id.file_explorer_grid_view); @@ -141,13 +141,13 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa open(position); } }); - actionBar.setSelectedNavigationItem( filterMode + 1 );//This triggers the listener which modifies the view. + actionBar.setSelectedNavigationItem(filterMode + 1);//This triggers the listener which modifies the view. registerForContextMenu(gv); - }else{ + } else { getLayoutInflater().inflate(R.layout.file_list, content); - lv = (ListView)findViewById( R.id.file_explorer_list_view); + lv = (ListView)findViewById(R.id.file_explorer_list_view); lv.setClickable(true); - actionBar.setSelectedNavigationItem( filterMode + 1 ); + actionBar.setSelectedNavigationItem(filterMode + 1); registerForContextMenu(lv); } @@ -168,7 +168,6 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa .getProvider(position)); } }); - } private void refreshView() { @@ -393,33 +392,54 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa inflater.inflate(R.menu.view_menu, menu); MenuItem item = (MenuItem)menu.findItem(R.id.menu_view_toggle); - if( viewMode == GRID_VIEW){ + if (viewMode == GRID_VIEW) { item.setTitle(R.string.list_view); - item.setIcon( R.drawable.light_view_as_list ); - }else{ + item.setIcon(R.drawable.light_view_as_list); + } else { item.setTitle(R.string.grid_view); - item.setIcon( R.drawable.light_view_as_grid ); + item.setIcon(R.drawable.light_view_as_grid); } + + item = (MenuItem)menu.findItem(R.id.menu_sort_size); + if (sortMode == FileUtilities.SORT_LARGEST) { + item.setTitle(R.string.sort_smallest); + } else { + item.setTitle(R.string.sort_largest); + } + + item = (MenuItem)menu.findItem(R.id.menu_sort_az); + if (sortMode == FileUtilities.SORT_AZ) { + item.setTitle(R.string.sort_za); + } else { + item.setTitle(R.string.sort_az); + } + + item = (MenuItem)menu.findItem(R.id.menu_sort_modified); + if (sortMode == FileUtilities.SORT_NEWEST) { + item.setTitle(R.string.sort_oldest); + } else { + item.setTitle(R.string.sort_newest); + } + return true; } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: - if( !currentDirectory.equals( homeDirectory ) ){ + if (!currentDirectory.equals(homeDirectory)){ openParentDirectory(); } break; case R.id.menu_view_toggle: - if( viewMode == GRID_VIEW){ + if (viewMode == GRID_VIEW){ viewMode = LIST_VIEW; - item.setTitle(R.string.grid_view);//Button points to next view. - item.setIcon( R.drawable.light_view_as_grid ); - - }else{ + item.setTitle(R.string.grid_view); // Button points to next view. + item.setIcon(R.drawable.light_view_as_grid); + } else { viewMode = GRID_VIEW; - item.setTitle(R.string.list_view);//Button points to next view. - item.setIcon( R.drawable.light_view_as_list ); + item.setTitle(R.string.list_view); // Button points to next view. + item.setIcon(R.drawable.light_view_as_list); } createUI(); break; @@ -486,10 +506,10 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa // TODO Auto-generated method stub super.onSaveInstanceState(outState); outState.putString(CURRENT_DIRECTORY_KEY, currentDirectory.getUri().toString()); - outState.putInt( FILTER_MODE_KEY , filterMode ); - outState.putInt( EXPLORER_VIEW_TYPE_KEY , viewMode ); + outState.putInt(FILTER_MODE_KEY , filterMode); + outState.putInt(EXPLORER_VIEW_TYPE_KEY , viewMode); - Log.d(LOGTAG, currentDirectory.toString() + Integer.toString(filterMode ) + Integer.toString(viewMode) ); + Log.d(LOGTAG, currentDirectory.toString() + Integer.toString(filterMode) + Integer.toString(viewMode)); //prefs.edit().putInt(EXPLORER_VIEW_TYPE, viewType).commit(); Log.d(LOGTAG, "savedInstanceSate"); } @@ -498,7 +518,7 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa protected void onRestoreInstanceState(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onRestoreInstanceState(savedInstanceState); - if( savedInstanceState.isEmpty() ){ + if (savedInstanceState.isEmpty()){ return; } try { @@ -507,11 +527,11 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa } catch (URISyntaxException e) { currentDirectory = documentProvider.getRootDirectory(); } - filterMode = savedInstanceState.getInt( FILTER_MODE_KEY , FileUtilities.ALL ) ; - viewMode = savedInstanceState.getInt( EXPLORER_VIEW_TYPE_KEY , GRID_VIEW ); - //openDirectory( currentDirectory ); + filterMode = savedInstanceState.getInt(FILTER_MODE_KEY , FileUtilities.ALL) ; + viewMode = savedInstanceState.getInt(EXPLORER_VIEW_TYPE_KEY , GRID_VIEW); + //openDirectory(currentDirectory); Log.d(LOGTAG, "onRestoreInstanceState"); - Log.d(LOGTAG, currentDirectory.toString() + Integer.toString(filterMode ) + Integer.toString(viewMode) ); + Log.d(LOGTAG, currentDirectory.toString() + Integer.toString(filterMode) + Integer.toString(viewMode)); } @Override @@ -567,11 +587,11 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa public boolean onNavigationItemSelected(int itemPosition, long itemId) { filterMode = itemPosition -1; //bit of a hack, I know. -1 is ALL 0 Docs etc - openDirectory( currentDirectory );// Uses filter mode + openDirectory(currentDirectory);// Uses filter mode return true; } - private int dpToPx( int dp ){ + private int dpToPx(int dp){ final float scale = getApplicationContext().getResources().getDisplayMetrics().density; return (int) (dp * scale + 0.5f); } @@ -645,23 +665,23 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa //TODO Give size in KB , MB as appropriate. String size = "0B"; long length = filePaths.get(position).getSize(); - if( length < KB ){ - size = Long.toString( length ) + "B"; + if (length < KB){ + size = Long.toString(length) + "B"; } - if( length >= KB && length < MB){ - size = Long.toString( length/KB ) + "KB"; + if (length >= KB && length < MB){ + size = Long.toString(length/KB) + "KB"; } - if( length >= MB){ - size = Long.toString( length/MB ) + "MB"; + if (length >= MB){ + size = Long.toString(length/MB) + "MB"; } - fileSize.setText( size ); + fileSize.setText(size); //fileSize.setClickable(true); TextView fileDate = (TextView) listItem.findViewById(R.id.file_list_item_date); SimpleDateFormat df = new SimpleDateFormat("dd MMM yyyy hh:ss"); Date date = filePaths.get(position).getLastModified(); //TODO format date - fileDate.setText( df.format( date ) ); + fileDate.setText(df.format(date)); // set image based on selected text ImageView imageView = (ImageView) listItem.findViewById(R.id.file_list_item_icon); commit 580ef90e510fd50870c17a225bf5aac1a96f188d Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 15:16:24 2015 +0200 Set correct title for sort mode after changes. Change-Id: I4f75f5ee68de6ed6f3b07d93b3681aa2307cb2dc diff --git a/android/experimental/LOAndroid3/res/values/strings.xml b/android/experimental/LOAndroid3/res/values/strings.xml index ffce3d8..66934e0 100644 --- a/android/experimental/LOAndroid3/res/values/strings.xml +++ b/android/experimental/LOAndroid3/res/values/strings.xml @@ -17,6 +17,12 @@ <string name="menu_search">Search</string> <string name="list_view">List</string> <string name="grid_view">Grid</string> + <string name="sort_smallest">Smallest first</string> + <string name="sort_largest">Largest first</string> + <string name="sort_az">A-Z</string> + <string name="sort_za">Z-A</string> + <string name="sort_oldest">Oldest first</string> + <string name="sort_newest">Newest first</string> <string name="menu_sort_size">Sort By Size</string> <string name="menu_sort_az">Sort A-Z</string> <string name="menu_sort_modified">Sort by Date</string> diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java index e41846b..79ef341 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java @@ -437,28 +437,33 @@ public class LibreOfficeUIActivity extends ActionBarActivity implements ActionBa return true; } - @SuppressWarnings("unused")//see android:onClick properties in view_menu.xml public void sortFiles(MenuItem item){ - switch ( item.getItemId() ) { + switch (item.getItemId()) { case R.id.menu_sort_az: - if( sortMode == FileUtilities.SORT_AZ ){ + if (sortMode == FileUtilities.SORT_AZ){ sortMode = FileUtilities.SORT_ZA; - }else{ + item.setTitle(R.string.sort_az); + } else { sortMode = FileUtilities.SORT_AZ; + item.setTitle(R.string.sort_za); } break; case R.id.menu_sort_modified: - if( sortMode == FileUtilities.SORT_NEWEST ){ + if (sortMode == FileUtilities.SORT_NEWEST){ sortMode = FileUtilities.SORT_OLDEST; - }else{ + item.setTitle(R.string.sort_newest); + } else { sortMode = FileUtilities.SORT_NEWEST; + item.setTitle(R.string.sort_oldest); } break; case R.id.menu_sort_size: - if( sortMode == FileUtilities.SORT_LARGEST ){ + if (sortMode == FileUtilities.SORT_LARGEST){ sortMode = FileUtilities.SORT_SMALLEST; - }else{ + item.setTitle(R.string.sort_largest); + } else { sortMode = FileUtilities.SORT_LARGEST; + item.setTitle(R.string.sort_smallest); } break; default: commit 286132bcbdfe8799c58b28deffe55e8646ecf0e7 Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 13:48:39 2015 +0200 Remove unimplemented search functionality Change-Id: I955bec2c94c386ee18fff8e8f5d90a7a90edf9d2 diff --git a/android/experimental/LOAndroid3/res/menu/view_menu.xml b/android/experimental/LOAndroid3/res/menu/view_menu.xml index 81a3aa5..37a39b1 100644 --- a/android/experimental/LOAndroid3/res/menu/view_menu.xml +++ b/android/experimental/LOAndroid3/res/menu/view_menu.xml @@ -2,10 +2,6 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> - <item android:id="@+id/menu_search" - android:icon="@drawable/action_search" - app:showAsAction="always" /> - <item android:id="@+id/menu_view_toggle" android:title="@string/grid_view"/> <item android:id="@+id/menu_sort_size" commit b49efc24bcc9c686077e9de7b44e909a6e443842 Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 13:46:49 2015 +0200 formatting for consistancy and remove unused file. TODO(siqi): try to refactor the ListItemAdapter to a separate file later. Change-Id: I01b82d1fea65cda353d5bb08da42e2faf1c8cf13 diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java index 9650fa5..9c58750 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java @@ -22,7 +22,7 @@ import android.webkit.MimeTypeMap; public class FileUtilities { - private String LOGTAG = FileUtilities.class.getSimpleName(); + private static String LOGTAG = FileUtilities.class.getSimpleName(); static final int ALL = -1; diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java index c689ba1..1c2b25f 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java @@ -27,7 +27,7 @@ import java.io.File; import java.util.Stack; public class FolderIconView extends View{ - private String TAG = "FolderIconView"; + private String LOGTAG = "FolderIconView"; private Paint mPaintBlack; private Paint mPaintGray; @@ -69,7 +69,7 @@ public class FolderIconView extends View{ @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); - Log.d(TAG, "onDraw"); + Log.d(LOGTAG, "onDraw"); //float width = (float)canvas.getWidth(); //float height = (float)canvas.getHeight(); float width = (float) this.getWidth(); @@ -83,7 +83,7 @@ public class FolderIconView extends View{ float DZx = 0.2f*outerRadius; float DZy = 0.2f*outerRadius; //Bitmap blankPage = BitmapFactory.decodeResource(getResources(), R.drawable.page); - Log.i(TAG, Float.toString(width) + "x" + Float.toString(height)); + Log.i(LOGTAG, Float.toString(width) + "x" + Float.toString(height)); canvas.drawCircle(centerX, centerY, outerRadius, mPaintGray); canvas.drawCircle(centerX, centerY, innerRadius, mPaintBlack); //Either get thumbs from directory or use generic page images @@ -107,7 +107,7 @@ public class FolderIconView extends View{ /*while(thumbs.size() < 4) {// padd out with blanks? thumbs.push(blankPage); }*/ - Log.i(TAG, Integer.toString(thumbs.size())); + Log.i(LOGTAG, Integer.toString(thumbs.size())); //should handle empty folders better // options: // don't show? diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/GridItemAdapter.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/GridItemAdapter.java index fd4d7b2..c50d3a3 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/GridItemAdapter.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/GridItemAdapter.java @@ -37,28 +37,14 @@ public class GridItemAdapter extends BaseAdapter { Context mContext; List<IFile> filePaths; IFile currentDirectory; - String TAG = "GridItemAdapter"; - - public GridItemAdapter(Context mContext, List<IFile> filePaths) { - this.mContext = mContext; - this.filePaths = filePaths; - for (IFile fn : filePaths) { - Log.d(TAG, fn.getName()); - } - } - - public GridItemAdapter(Context mContext, IFile currentDirectory) { - this.mContext = mContext; - this.currentDirectory = currentDirectory; - filePaths = currentDirectory.listFiles(); - } + String LOGTAG = "GridItemAdapter"; public GridItemAdapter(Context mContext, IFile currentDirectory, - List<IFile> filteredFiles) - { + List<IFile> filteredFiles) { this.mContext = mContext; this.currentDirectory = currentDirectory; filePaths = filteredFiles; + Log.d(LOGTAG, "currentDirectory.getName(): " + currentDirectory.getName()); } public int getCount() { @@ -66,7 +52,7 @@ public class GridItemAdapter extends BaseAdapter { } public Object getItem(int position) { - return null;//filePaths[ position ]; + return null; //filePaths[ position ]; } public long getItemId(int position) { @@ -74,8 +60,7 @@ public class GridItemAdapter extends BaseAdapter { return 0; } - public View getView(int position, View convertView, ViewGroup parent) - { + public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE); @@ -97,13 +82,10 @@ public class GridItemAdapter extends BaseAdapter { // set image based on selected text ImageView imageView = (ImageView) gridView .findViewById(R.id.grid_item_image); - if (filePaths.get(position).isDirectory()) // Is a folder - { + if (filePaths.get(position).isDirectory()) { // Is a folder // Default view is a generic folder icon. imageView.setImageResource(R.drawable.folder); - } - else - { + } else { /* File thumbnailFile = new File( filePaths[position].getParent() , "." + filePaths[position].getName().split("[.]")[0] + ".png"); @@ -141,7 +123,7 @@ public class GridItemAdapter extends BaseAdapter { return gridView; } - public void update(){ + public void update() { this.notifyDataSetChanged(); } } diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/ListItemAdapter.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/ListItemAdapter.java deleted file mode 100644 index 2f91b4f..0000000 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/ListItemAdapter.java +++ /dev/null @@ -1,178 +0,0 @@ -/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ -package org.libreoffice.ui; - -import org.libreoffice.R; - -import java.io.File; -import java.text.SimpleDateFormat; -import java.util.Date; - -import android.content.Context; -import android.database.DataSetObserver; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.View.OnClickListener; -import android.widget.ImageView; -import android.widget.ListAdapter; -import android.widget.TextView; - -/*Currently this is class is not used but instead is implemented as an inner class in LibreOfficeUI. - * This is because I can't get the onItemClickListener to fire on the listview so I need to set an - * onClick listener in the adapter. ( I've tried turning off the focusability etc of the listitem - * contents but no dice...) */ -public class ListItemAdapter implements ListAdapter{ - private Context mContext; - private File[] filePaths; - private final long KB = 1024; - private final long MB = 1048576; - - public ListItemAdapter(Context mContext, File[] filePaths) { - this.mContext = mContext; - this.filePaths = filePaths; - } - - public int getCount() { - // TODO Auto-generated method stub - return filePaths.length; - } - - public Object getItem(int arg0) { - // TODO Auto-generated method stub - return null; - } - - public long getItemId(int arg0) { - // TODO Auto-generated method stub - return 0; - } - - public int getItemViewType(int arg0) { - // TODO Auto-generated method stub - return 0; - } - - public View getView(int position, View convertView, ViewGroup parent) { - LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( - Context.LAYOUT_INFLATER_SERVICE); - - View listItem; - - if (convertView == null) { - listItem = new View(mContext); - listItem = inflater.inflate(R.layout.file_list_item, null); - } else { - listItem = (View) convertView; - } - - listItem.setClickable(true); - listItem.setOnClickListener(new OnClickListener() { - - public void onClick(View v) { - Log.d("LIST", "click!"); - } - }); - - - - // set value into textview - TextView filename = (TextView) listItem.findViewById(R.id.file_list_item_name); - filename.setText( filePaths[ position ].getName() ); - //filename.setClickable(true); - - TextView fileSize = (TextView) listItem.findViewById(R.id.file_list_item_size); - //TODO Give size in KB , MB as appropriate. - String size = "0B"; - long length = filePaths[ position ].length(); - if( length < KB ){ - size = Long.toString( length ) + "B"; - } - if( length >= KB && length < MB){ - size = Long.toString( length/KB ) + "KB"; - } - if( length >= MB){ - size = Long.toString( length/MB ) + "MB"; - } - fileSize.setText( size ); - //fileSize.setClickable(true); - - TextView fileDate = (TextView) listItem.findViewById(R.id.file_list_item_date); - SimpleDateFormat df = new SimpleDateFormat("dd MMM yyyy hh:ss"); - Date date = new Date( filePaths[ position ].lastModified() ); - //TODO format date - fileDate.setText( df.format( date ) ); - - // set image based on selected text - ImageView imageView = (ImageView) listItem.findViewById(R.id.file_list_item_icon); - switch (FileUtilities.getType(filePaths[position].getName())) - { - case FileUtilities.DOC: - imageView.setImageResource(R.drawable.writer); - break; - case FileUtilities.CALC: - imageView.setImageResource(R.drawable.calc); - break; - case FileUtilities.DRAWING: - imageView.setImageResource(R.drawable.draw); - break; - case FileUtilities.IMPRESS: - imageView.setImageResource(R.drawable.impress); - break; - default: - break; - } - if( filePaths[position].isDirectory() ){ - //Eventually have thumbnails of each sub file on a black circle - //For now just a folder icon - imageView.setImageResource(R.drawable.folder); - } - //imageView.setClickable(true); - return listItem; - } - - public int getViewTypeCount() { - // TODO Auto-generated method stub - return 1; - } - - public boolean hasStableIds() { - // TODO Auto-generated method stub - return false; - } - - public boolean isEmpty() { - // TODO Auto-generated method stub - return false; - } - - public void registerDataSetObserver(DataSetObserver arg0) { - // TODO Auto-generated method stub - - } - - public void unregisterDataSetObserver(DataSetObserver arg0) { - // TODO Auto-generated method stub - - } - - public boolean areAllItemsEnabled() { - // TODO Auto-generated method stub - return false; - } - - public boolean isEnabled(int position) { - // TODO Auto-generated method stub - return false; - } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 51d4980d4c2262268d58082a7fe0a468b0bc67fc Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 13:44:29 2015 +0200 Do NOT browse files from "Documents" folder. Browse from root instead. This is more likely what users expect. Previously we assumed that all the documents are stored in root_folder/Documents and there is no way to navigate up to other folders. Change-Id: Idf0ce2476d3abe638b2e8b0f35b6da577032742b diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java index 92d93d6..820a915 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java @@ -28,8 +28,7 @@ public class LocalDocumentsDirectoryProvider extends LocalDocumentsProvider { @Override public IFile getRootDirectory() { File documentsDirectory = new File( - Environment.getExternalStorageDirectory(), "Documents"); - documentsDirectory.mkdirs(); + Environment.getExternalStorageDirectory(), ""); return new LocalFile(documentsDirectory); } commit 6fedb679c3879484688636fe51790bfcf137b941 Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 13:43:49 2015 +0200 refactor xml styling for listview texts Change-Id: Id52d33807c34b0fa12bc563ed479f5519103c8fe diff --git a/android/experimental/LOAndroid3/res/layout/file_list_item.xml b/android/experimental/LOAndroid3/res/layout/file_list_item.xml index 91d84fd..17590fc 100644 --- a/android/experimental/LOAndroid3/res/layout/file_list_item.xml +++ b/android/experimental/LOAndroid3/res/layout/file_list_item.xml @@ -21,27 +21,21 @@ android:orientation="horizontal"> <TextView android:id="@+id/file_list_item_name" - android:layout_height="48dp" + style="@style/ListItemText" + android:layout_height="match_parent" android:layout_width="0dp" - android:textSize="15dp" - android:textStyle="bold" - android:layout_weight="2" - android:gravity="center"/> + android:layout_weight="2" /> <TextView android:id="@+id/file_list_item_size" - android:layout_height="48dp" + style="@style/ListItemText" + android:layout_height="match_parent" android:layout_width="0dp" - android:textSize="15dp" - android:textStyle="bold" - android:layout_weight="1" - android:gravity="center"/> + android:layout_weight="1" /> <TextView android:id="@+id/file_list_item_date" - android:layout_height="48dp" + style="@style/ListItemText" + android:layout_height="match_parent" android:layout_width="0dp" - android:textSize="15dp" - android:textStyle="bold" - android:layout_weight="2" - android:gravity="center"/> + android:layout_weight="2" /> </LinearLayout> </LinearLayout> diff --git a/android/experimental/LOAndroid3/res/values/themes.xml b/android/experimental/LOAndroid3/res/values/themes.xml index 478aeb7e..2b9e9f1 100644 --- a/android/experimental/LOAndroid3/res/values/themes.xml +++ b/android/experimental/LOAndroid3/res/values/themes.xml @@ -9,4 +9,10 @@ <style name="BrowserTheme" parent="Theme.AppCompat.Light.NoActionBar"> </style> + + <style name="ListItemText"> + <item name="android:gravity">center</item> + <item name="android:textColor">@android:color/black</item> + <item name="android:textSize">15sp</item> + </style> </resources> commit 462c40944c89de9cb42593bb600a3c0f239a831b Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 12:53:51 2015 +0200 formatting for consistancy across Java code Change-Id: I7bde4c9c024dfe7a18c92a36069433f044fc89bc diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java index b0211b1..c689ba1 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java @@ -35,7 +35,7 @@ public class FolderIconView extends View{ private File dir; - public FolderIconView(Context context ) { + public FolderIconView(Context context) { super(context); initialisePaints(); } @@ -48,86 +48,86 @@ public class FolderIconView extends View{ initialisePaints(); } - private void initialisePaints(){ + private void initialisePaints() { mPaintBlack = new Paint(); - mPaintBlack.setColor( Color.DKGRAY );//Can also use parseColor( String "#aarrggbb") - mPaintBlack.setAntiAlias( true ); + mPaintBlack.setColor(Color.DKGRAY);//Can also use parseColor(String "#aarrggbb") + mPaintBlack.setAntiAlias(true); mPaintGray = new Paint(); - mPaintGray.setColor( Color.GRAY );//Can also use parseColor( String "#aarrggbb") - mPaintGray.setAntiAlias( true ); + mPaintGray.setColor(Color.GRAY);//Can also use parseColor(String "#aarrggbb") + mPaintGray.setAntiAlias(true); mPaintShadow = new Paint(); - mPaintShadow.setColor( Color.parseColor( "#88888888") ); - mPaintShadow.setAntiAlias( true ); + mPaintShadow.setColor(Color.parseColor("#88888888")); + mPaintShadow.setAntiAlias(true); } - public void setDir( File dir ){ + public void setDir(File dir) { this.dir = dir; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); - Log.d( TAG, "onDraw"); + Log.d(TAG, "onDraw"); //float width = (float)canvas.getWidth(); //float height = (float)canvas.getHeight(); - float width = (float)this.getWidth(); - float height = (float)this.getHeight(); + float width = (float) this.getWidth(); + float height = (float) this.getHeight(); float centerX = width*0.5f;// centered on horz axis float centerY = height*0.5f; - float outerRadius = 0.8f*0.5f* width; - float innerRadius = 0.7f*0.5f* width; + float outerRadius = 0.8f*0.5f*width; + float innerRadius = 0.7f*0.5f*width; float thumbHeight = outerRadius*1.25f; float thumbWidth = thumbHeight*(float)(1/Math.sqrt(2)); float DZx = 0.2f*outerRadius; float DZy = 0.2f*outerRadius; - //Bitmap blankPage = BitmapFactory.decodeResource( getResources() , R.drawable.page ); - Log.i( TAG , Float.toString( width ) + " X " + Float.toString( height ) ); - canvas.drawCircle( centerX , centerY , outerRadius , mPaintGray ); - canvas.drawCircle( centerX , centerY , innerRadius , mPaintBlack ); + //Bitmap blankPage = BitmapFactory.decodeResource(getResources(), R.drawable.page); + Log.i(TAG, Float.toString(width) + "x" + Float.toString(height)); + canvas.drawCircle(centerX, centerY, outerRadius, mPaintGray); + canvas.drawCircle(centerX, centerY, innerRadius, mPaintBlack); //Either get thumbs from directory or use generic page images //For now just get the first 4 thumbs -> add some checks later - if( dir == null ) + if (dir == null) return;//TODO File[] contents = dir.listFiles();//TODO consider filtering thumbs to match grid. - if( contents == null ) + if (contents == null) // dir is not a directory, // or user does not have permissions to read it return; Stack<Bitmap> thumbs = new Stack<Bitmap>(); BitmapFactory factory = new BitmapFactory(); - for( File file : contents ){ - if( !FileUtilities.isThumbnail(file) ) + for (File file : contents) { + if (!FileUtilities.isThumbnail(file)) continue; - thumbs.push( factory.decodeFile( file.getAbsolutePath() ) );//TODO switch to push for semantics - if( thumbs.size() > 3 ) + thumbs.push(factory.decodeFile(file.getAbsolutePath()));//TODO switch to push for semantics + if (thumbs.size() > 3) break; } - /*while( thumbs.size() < 4 ){// padd out with blanks? - thumbs.push( blankPage ); + /*while(thumbs.size() < 4) {// padd out with blanks? + thumbs.push(blankPage); }*/ - Log.i( TAG, Integer.toString( thumbs.size() ) ); + Log.i(TAG, Integer.toString(thumbs.size())); //should handle empty folders better // options: // don't show? // show generic LO icons for writer etc // Show a generic blank page icon - if( thumbs.isEmpty() ) + if (thumbs.isEmpty()) return; /*float left = centerX ;//+ 0.25f*outerRadius; float top = centerY - 0.5f*outerRadius; float right = left + thumbs.get(0).getWidth()*0.4f; float bottom = top + thumbs.get(0).getHeight()*0.4f; - RectF dest = new RectF( left, top , right , bottom ); + RectF dest = new RectF(left, top, right, bottom); RectF shadowBox = new RectF(dest); - shadowBox.inset( -1 , -1 ); + shadowBox.inset(-1, -1); int size = thumbs.size(); - for( int i = 1 ; i <= size ; i++ ){ - canvas.drawRect( shadowBox , mPaintShadow); - canvas.drawBitmap( thumbs.pop() , null , dest , null); - dest.offset( -outerRadius*0.2f , outerRadius*0.1f ); - shadowBox.offset( -outerRadius*0.2f , outerRadius*0.1f ); + for (int i = 1; i <= size; i++) { + canvas.drawRect(shadowBox, mPaintShadow); + canvas.drawBitmap(thumbs.pop(), null, dest, null); + dest.offset(-outerRadius*0.2f, outerRadius*0.1f); + shadowBox.offset(-outerRadius*0.2f, outerRadius*0.1f); }*/ float left; float top; @@ -136,7 +136,7 @@ public class FolderIconView extends View{ RectF dest; RectF shadowBox; int size; - switch( thumbs.size() ){ + switch(thumbs.size()) { case 0: break; case 1: @@ -144,26 +144,26 @@ public class FolderIconView extends View{ top = centerY - 0.5f*thumbHeight; right = left + thumbWidth; bottom = top + thumbHeight; - dest = new RectF( left, top , right , bottom ); + dest = new RectF(left, top, right, bottom); shadowBox = new RectF(dest); - shadowBox.inset( -1 , -1 ); - canvas.drawRect( shadowBox , mPaintShadow); - canvas.drawBitmap( thumbs.pop() , null , dest , null); + shadowBox.inset(-1, -1); + canvas.drawRect(shadowBox, mPaintShadow); + canvas.drawBitmap(thumbs.pop(), null, dest, null); break; case 2: left = centerX - 0.5f*thumbWidth + 0.5f*DZx; top = centerY - 0.5f*thumbHeight - 0.5f*DZy; right = left + thumbWidth; bottom = top + thumbHeight; - dest = new RectF( left, top , right , bottom ); + dest = new RectF(left, top, right, bottom); shadowBox = new RectF(dest); - shadowBox.inset( -1 , -1 ); + shadowBox.inset(-1, -1); size = thumbs.size(); - for( int i = 1 ; i <= size ; i++ ){ - canvas.drawRect( shadowBox , mPaintShadow); - canvas.drawBitmap( thumbs.pop() , null , dest , null); - dest.offset( -DZx , DZy ); - shadowBox.offset( -DZx , DZy ); + for (int i = 1; i <= size; i++) { + canvas.drawRect(shadowBox, mPaintShadow); + canvas.drawBitmap(thumbs.pop(), null, dest, null); + dest.offset(-DZx, DZy); + shadowBox.offset(-DZx, DZy); } break; case 3: @@ -171,15 +171,15 @@ public class FolderIconView extends View{ top = centerY - 0.5f*thumbHeight - DZy; right = left + thumbWidth; bottom = top + thumbHeight; - dest = new RectF( left, top , right , bottom ); + dest = new RectF(left, top, right, bottom); shadowBox = new RectF(dest); - shadowBox.inset( -1 , -1 ); + shadowBox.inset(-1, -1); size = thumbs.size(); - for( int i = 1 ; i <= size ; i++ ){ - canvas.drawRect( shadowBox , mPaintShadow); - canvas.drawBitmap( thumbs.pop() , null , dest , null); - dest.offset( -DZx , DZy ); - shadowBox.offset( -DZx , DZy ); + for (int i = 1; i <= size; i++) { + canvas.drawRect(shadowBox, mPaintShadow); + canvas.drawBitmap(thumbs.pop(), null, dest, null); + dest.offset(-DZx, DZy); + shadowBox.offset(-DZx, DZy); } break; case 4: @@ -187,15 +187,15 @@ public class FolderIconView extends View{ top = centerY - 0.5f*thumbHeight - 1.5f*DZy; right = left + thumbWidth; bottom = top + thumbHeight; - dest = new RectF( left, top , right , bottom ); + dest = new RectF(left, top, right, bottom); shadowBox = new RectF(dest); - shadowBox.inset( -1 , -1 ); + shadowBox.inset(-1, -1); size = thumbs.size(); - for( int i = 1 ; i <= size ; i++ ){ - canvas.drawRect( shadowBox , mPaintShadow); - canvas.drawBitmap( thumbs.pop() , null , dest , null); - dest.offset( -DZx , DZy ); - shadowBox.offset( -DZx , DZy ); + for (int i = 1; i <= size; i++) { + canvas.drawRect(shadowBox, mPaintShadow); + canvas.drawBitmap(thumbs.pop(), null, dest, null); + dest.offset(-DZx, DZy); + shadowBox.offset(-DZx, DZy); } break; default: commit c0f965c0f37a9987b1dcc82dad90c0559acb228b Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 12:49:01 2015 +0200 use LOGTAG instead Change-Id: Ie89afb3526ff670581094107c59a4a20597d9225 diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java index 559bd95..9650fa5 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java @@ -21,6 +21,9 @@ import android.util.Log; import android.webkit.MimeTypeMap; public class FileUtilities { + + private String LOGTAG = FileUtilities.class.getSimpleName(); + static final int ALL = -1; // These have to be in sync with the file_view_modes resource. @@ -135,7 +138,7 @@ public class FileUtilities { static int getType(String filename) { int type = lookupExtension (filename); - Log.d("debug", "extn : " + filename + " -> " + type); + Log.d(LOGTAG, "extn : " + filename + " -> " + type); return type; } @@ -152,7 +155,7 @@ public class FileUtilities { // Filter by mode, and/or in future by filename/wildcard static private boolean doAccept(String filename, int byMode, String byFilename) { - Log.d("debug", "doAccept : " + filename + " mode " + byMode + " byFilename " + byFilename); + Log.d(LOGTAG, "doAccept : " + filename + " mode " + byMode + " byFilename " + byFilename); if (filename == null) return false; commit e3516e381b5224d58fa3b0a3f66dd45bbb13b3c9 Author: Siqi Liu <m...@siqi.fr> Date: Thu Apr 23 12:47:00 2015 +0200 formatting for consistancy across Java code Change-Id: I4d53376ea1b5ffa158cbb3412353c3cf5ba860d5 diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java index 61ec014..ccbc978 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java @@ -127,11 +127,13 @@ public class LibreOfficeMainActivity extends ActionBarActivity { if (getIntent().getData().getScheme().equals(ContentResolver.SCHEME_CONTENT)) { if (copyFileToTemp() && mTempFile != null) { mInputFile = mTempFile.getPath(); + Log.d(LOGTAG, "SCHEME_CONTENT: getPath(): " + getIntent().getData().getPath()); } else { // TODO: can't open the file } } else if (getIntent().getData().getScheme().equals(ContentResolver.SCHEME_FILE)) { mInputFile = getIntent().getData().getPath(); + Log.d(LOGTAG, "SCHEME_FILE: getPath(): " + getIntent().getData().getPath()); } } else { mInputFile = DEFAULT_DOC_PATH; diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java index 118eded..559bd95 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java @@ -42,7 +42,7 @@ public class FileUtilities { /** Smallest Files First */ static final int SORT_SMALLEST = 5; - private static final Map<String,Integer> mExtnMap = new HashMap<String,Integer>(); + private static final Map<String, Integer> mExtnMap = new HashMap<String, Integer>(); private static final Map<String, String> extensionToMimeTypeMap = new HashMap<String, String>(); static { // Please keep this in sync with AndroidManifest.xml @@ -117,8 +117,7 @@ public class FileUtilities { extensionToMimeTypeMap.put("oth", "application/vnd.oasis.opendocument.text-web"); } - private static final String getExtension(String filename) - { + private static final String getExtension(String filename) { if (filename == null) return ""; int nExt = filename.lastIndexOf('.'); @@ -127,26 +126,23 @@ public class FileUtilities { return filename.substring(nExt); } - private static final int lookupExtension(String filename) - { - String extn = getExtension (filename); + private static final int lookupExtension(String filename) { + String extn = getExtension(filename); if (!mExtnMap.containsKey(extn)) return UNKNOWN; - return mExtnMap.get (extn); + return mExtnMap.get(extn); } - static int getType(String filename) - { + static int getType(String filename) { int type = lookupExtension (filename); - android.util.Log.d("debug", "extn : " + filename + " -> " + type); + Log.d("debug", "extn : " + filename + " -> " + type); return type; } - static String getMimeType(String filename) - { + static String getMimeType(String filename) { String extension = MimeTypeMap.getFileExtensionFromUrl(filename); String mime = extensionToMimeTypeMap.get(extension); - if(mime == null) { + if (mime == null) { //fallback to Android's MimeTypeMap mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension( extension); @@ -155,100 +151,96 @@ public class FileUtilities { } // Filter by mode, and/or in future by filename/wildcard - static private boolean doAccept(String filename, int byMode, String byFilename) - { - android.util.Log.d("debug", "doAccept : " + filename + " mode " + byMode + " byFilename " + byFilename); - if (filename == null) - return false; - - if (byMode == ALL && byFilename == "") { - if( filename.startsWith(".")) {//ignore hidden files + static private boolean doAccept(String filename, int byMode, String byFilename) { + Log.d("debug", "doAccept : " + filename + " mode " + byMode + " byFilename " + byFilename); + if (filename == null) return false; + + if (byMode == ALL && byFilename == "") { + if (filename.startsWith(".")) {//ignore hidden files + return false; + } + return true; + } + // check extension + if (byMode != ALL) { + if (mExtnMap.get (getExtension (filename)) != byMode) + return false; + } + if (byFilename != "") { + // FIXME return false on a non-match } return true; } - // check extension - if (byMode != ALL) { - if (mExtnMap.get (getExtension (filename)) != byMode) - return false; - } - if (byFilename != "") { - // FIXME return false on a non-match - } - return true; - } - static FileFilter getFileFilter(final int mode) - { - return new FileFilter() { - public boolean accept(File pathname) { - if (pathname.isDirectory()) - return true; - if( lookupExtension(pathname.getName()) == UNKNOWN) - return false; - return doAccept(pathname.getName(), mode, ""); - } - }; + static FileFilter getFileFilter(final int mode) { + return new FileFilter() { + public boolean accept(File pathname) { + if (pathname.isDirectory()) + return true; + if (lookupExtension(pathname.getName()) == UNKNOWN) + return false; + return doAccept(pathname.getName(), mode, ""); + } + }; } - static FilenameFilter getFilenameFilter(final int mode) - { + static FilenameFilter getFilenameFilter(final int mode) { return new FilenameFilter() { public boolean accept(File dir, String filename) { - if( new File( dir , filename ).isDirectory() ) + if (new File(dir , filename).isDirectory()) return true; return doAccept(filename, mode, ""); } }; } - static void sortFiles(File[] files , int sortMode) - { + static void sortFiles(File[] files, int sortMode) { // Should really change all this to a switch statement... - if( sortMode == SORT_AZ ){ - Arrays.sort( files , new Comparator<File>() { + if (sortMode == SORT_AZ) { + Arrays.sort(files , new Comparator<File>() { public int compare(File lhs, File rhs) { - return lhs.getName().compareTo( rhs.getName() ); + return lhs.getName().compareTo(rhs.getName()); } }); return; } - if( sortMode == SORT_ZA ){ - Arrays.sort( files , new Comparator<File>() { + if (sortMode == SORT_ZA) { + Arrays.sort(files , new Comparator<File>() { public int compare(File lhs, File rhs) { - return rhs.getName().compareTo( lhs.getName() ); + return rhs.getName().compareTo(lhs.getName()); } }); return; } - if( sortMode == SORT_OLDEST ){ - Arrays.sort( files , new Comparator<File>() { + if (sortMode == SORT_OLDEST) { + Arrays.sort(files , new Comparator<File>() { public int compare(File lhs, File rhs) { - return Long.valueOf( lhs.lastModified() ).compareTo( rhs.lastModified() ); + return Long.valueOf(lhs.lastModified()).compareTo(rhs.lastModified()); } }); return; } - if( sortMode == SORT_NEWEST ){ - Arrays.sort( files , new Comparator<File>() { + if (sortMode == SORT_NEWEST) { + Arrays.sort(files , new Comparator<File>() { public int compare(File lhs, File rhs) { - return Long.valueOf( rhs.lastModified() ).compareTo( lhs.lastModified() ); + return Long.valueOf(rhs.lastModified()).compareTo(lhs.lastModified()); } }); return; } - if( sortMode == SORT_LARGEST ){ - Arrays.sort( files , new Comparator<File>() { + if (sortMode == SORT_LARGEST) { + Arrays.sort(files , new Comparator<File>() { public int compare(File lhs, File rhs) { - return Long.valueOf( rhs.length() ).compareTo( lhs.length() ); + return Long.valueOf(rhs.length()).compareTo(lhs.length()); } }); return; } - if( sortMode == SORT_SMALLEST ){ - Arrays.sort( files , new Comparator<File>() { + if (sortMode == SORT_SMALLEST) { + Arrays.sort(files , new Comparator<File>() { public int compare(File lhs, File rhs) { - return Long.valueOf( lhs.length() ).compareTo( rhs.length() ); + return Long.valueOf(lhs.length()).compareTo(rhs.length()); } }); return; @@ -256,33 +248,31 @@ public class FileUtilities { return; } - static boolean isHidden( File file ){ - if( file.getName().startsWith(".") ) + static boolean isHidden(File file) { + if (file.getName().startsWith(".")) return true; return false; } - static boolean isThumbnail( File file ){ - if( isHidden(file) && file.getName().endsWith(".png") ) + static boolean isThumbnail(File file) { + if (isHidden(file) && file.getName().endsWith(".png")) return true; return false; } - static boolean hasThumbnail(File file) - { + static boolean hasThumbnail(File file) { String filename = file.getName(); - if( lookupExtension( filename ) == DOC ) // only do this for docs for now + if (lookupExtension(filename) == DOC) // only do this for docs for now { // Will need another method to check if Thumb is up-to-date - or extend this one? - if( new File( file.getParent() , getThumbnailName( file ) ).isFile() ) + if (new File(file.getParent() , getThumbnailName(file)).isFile()) return true; return false; // If it's a document with no thumb } return true; } - static String getThumbnailName( File file ) - { + static String getThumbnailName(File file) { return "." + file.getName().split("[.]")[0] + ".png" ; } } commit 585dfa62b369627d76f71bf5895731aa7d4a372e Author: Jan Holesovsky <ke...@collabora.com> Date: Mon Apr 20 15:33:22 2015 +0200 viewer: Revert "Copy only *-debug.apk" In 'product' builds, this fails, as there is no *-debug.apk. This reverts commit 1895fd2195ab11026e07271dbba71c0e963c0a3b. diff --git a/android/CustomTarget_lo_android.mk b/android/CustomTarget_lo_android.mk index 24225c0..07c7d11 100644 --- a/android/CustomTarget_lo_android.mk +++ b/android/CustomTarget_lo_android.mk @@ -20,7 +20,7 @@ $(loandroid3_DIR)/done : $(call gb_Postprocess_get_target,AllModulesButInstsetNa # still looks for the .apk, and we want fresh daily builds to be uploaded. # Us "foo" instead of the old INPATH mkdir -p $(BUILDDIR)/instsetoo_native/foo/bin; \ - cp $(SRCDIR)/android/experimental/LOAndroid3/bin/*-debug.apk $(BUILDDIR)/instsetoo_native/foo/bin + cp $(SRCDIR)/android/experimental/LOAndroid3/bin/*.apk $(BUILDDIR)/instsetoo_native/foo/bin $(call gb_CustomTarget_get_clean_target,android/loandroid3) : $(call gb_Output_announce,$(subst $(WORKDIR)/Clean/,,$@),$(false),MAK,2) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits