Kaydet (Commit) b9e8e8c1 authored tarafından Jan Holesovsky's avatar Jan Holesovsky

Kill trailing whitespace, tabs -> spaces, add modelines.

Change-Id: I24154279154ba2a9d1ba6cab81d066fcba23cb4e
üst 9dfc5fe0
......@@ -66,7 +66,7 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.view.View.OnClickListener;
// Obsolete?
// Obsolete?
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.AdapterView;
......@@ -110,7 +110,7 @@ public class DocumentLoader
extends Activity
{
private static final String TAG = "DocumentLoader";
// Size of a small virtual (bitmap) device used to find out page count and
// page sizes
private static final int SMALLSIZE = 128;
......@@ -140,7 +140,7 @@ public class DocumentLoader
DocumentViewer documentViewer;
Bundle extras;
LinearLayout ll ;
LayoutInflater inflater ;
......@@ -172,29 +172,28 @@ public class DocumentLoader
}
return false;
}
@Override
public boolean onSingleTapUp(MotionEvent event){
if( getActionBar().isShowing() ){
getActionBar().hide();
}else{
getActionBar().show();
}
return true;
public boolean onSingleTapUp(MotionEvent event) {
if (getActionBar().isShowing()) {
getActionBar().hide();
} else {
getActionBar().show();
}
return true;
}
@Override
public boolean onDoubleTap(MotionEvent event){
LinearLayout ll = (LinearLayout)findViewById( R.id.navigator);
if( ll.isShown() ){
ll.setVisibility( View.GONE );
}else{
ll.setVisibility( View.VISIBLE );
}
return true;
public boolean onDoubleTap(MotionEvent event) {
LinearLayout ll = (LinearLayout)findViewById( R.id.navigator);
if (ll.isShown()) {
ll.setVisibility( View.GONE );
} else {
ll.setVisibility( View.VISIBLE );
}
return true;
}
}
class ScaleListener implements OnTouchListener
......@@ -648,14 +647,14 @@ public class DocumentLoader
}
int getPage(){
return this.currentPageNumber;
return this.currentPageNumber;
}
PageViewer(int number , int width , int height)
{
super(DocumentLoader.this);
if( number < 0)
return;
return;
this.width = width ;
this.height = height;
// Render in a bit better quality, so it makes sense to zoom.
......@@ -684,7 +683,7 @@ public class DocumentLoader
final int defaultWidthPx = 120;
final int defaultHeightPx = 120;
final int thumbnailPaddingDp = 10;
class ThumbLoadTask
extends AsyncTask<Integer, Void, Integer>
{
......@@ -710,14 +709,14 @@ public class DocumentLoader
return;
//ImageView imageView = new ImageView(DocumentLoader.this);
ImageView thumbImage = new ImageView(DocumentLoader.this);//(ImageView)findViewById( R.id.thumbnail );
ImageView thumbImage = new ImageView(DocumentLoader.this);//(ImageView)findViewById( R.id.thumbnail );
thumbImage.setImageBitmap(bm);
int paddingPx = (int) (thumbnailPaddingDp* scale + 0.5f);
thumbImage.setPadding( paddingPx , 0 , paddingPx , 0 );
thumbImage.setScaleY(-1);
Log.i( TAG, Integer.toString( thumbImage.getWidth() ) );
Log.i( TAG, Integer.toString( thumbImage.getWidth() ) );
if (getChildCount() == 1)
removeViewAt(0);
addView(thumbImage, matchParent);
......@@ -747,43 +746,43 @@ public class DocumentLoader
scale = getContext().getResources().getDisplayMetrics().density;
widthInPx = (int) (widthInDp * scale + 0.5f);
heightInPx = (int) (heightInDp* scale + 0.5f);
waitView = new TextView( DocumentLoader.this );
waitView = new TextView( DocumentLoader.this );
thumbnailView = inflater.inflate( R.layout.navigation_grid_item , null);
display(number);
}
ThumbnailView(int number)
{
super(DocumentLoader.this);
scale = getContext().getResources().getDisplayMetrics().density;
widthInPx = defaultWidthPx;
heightInPx = defaultHeightPx;
waitView = new TextView( DocumentLoader.this );
waitView = new TextView( DocumentLoader.this );
thumbnailView = inflater.inflate( R.layout.navigation_grid_item , null);
display(number);
}
}
class DocumentLoadTask
extends AsyncTask<String, Integer, Integer>
{
ProgressBar progressView;
ProgressBar progressView;
protected void onPreExecute (){//TODO have another go at putting in a progress bar (shouldn't waste time on it now)
matchParent = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
TextView waitView = new TextView(DocumentLoader.this);
TextView waitView = new TextView(DocumentLoader.this);
waitView.setTextSize(24);
waitView.setGravity(Gravity.CENTER);
waitView.setBackgroundColor(Color.WHITE);
waitView.setTextColor(Color.BLACK);
waitView.setText("Page " + (1) + ", wait...");
waitView.setText("Page " + (1) + ", wait...");
progressView = new ProgressBar( DocumentLoader.this, null, android.R.attr.progressBarStyleHorizontal);
progressView.setProgress( 10 );
......@@ -792,9 +791,9 @@ public class DocumentLoader
flipper.addView( waitView , 0 , matchParent);
flipper.showNext();
currentPage = 0;
}
protected Integer doInBackground(String... params)
}
protected Integer doInBackground(String... params)
{
try {
String url = params[0];
......@@ -862,7 +861,7 @@ public class DocumentLoader
}
protected void onProgressUpdate(Integer progress){
progressView.setProgress( progress.intValue() );
progressView.setProgress( progress.intValue() );
}
protected void onPostExecute(Integer result){
......@@ -872,19 +871,19 @@ public class DocumentLoader
documentViewer = new DocumentViewer( (ViewFlipper)findViewById( R.id.page_flipper ) );
ll = (LinearLayout)findViewById( R.id.navigator);
inflater = (LayoutInflater) getApplicationContext().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
for( int i = 0; i < result.intValue() ; i++ ){
ThumbnailView thumb = new ThumbnailView( i , (int)(120.0f / Math.sqrt(2) ) , 120 );
final int pos = i;
thumb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Context.LAYOUT_INFLATER_SERVICE);
for( int i = 0; i < result.intValue() ; i++ ){
ThumbnailView thumb = new ThumbnailView( i , (int)(120.0f / Math.sqrt(2) ) , 120 );
final int pos = i;
thumb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
documentViewer.open( pos );
}
});
ll.addView ( thumb );
}
}
});
ll.addView ( thumb );
}
}
}
......@@ -1084,7 +1083,7 @@ public class DocumentLoader
{
super.onCreate(savedInstanceState);
extras = getIntent().getExtras();
extras = getIntent().getExtras();
gestureDetector = new GestureDetector(this, new GestureListener());
scaleDetector = new ScaleListener();
......@@ -1138,9 +1137,9 @@ public class DocumentLoader
// Load the wanted document
new DocumentLoadTask().executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, "file://" + input);
/*
/*
//flipper = new ViewFlipper(this);
flipper = (ViewFlipper)findViewById( R.id.page_flipper );
flipper = (ViewFlipper)findViewById( R.id.page_flipper );
matchParent = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
// should have document load task publish pageCount before this happens: Shouldn't try to pre-fetch
......@@ -1154,26 +1153,26 @@ public class DocumentLoader
ll = (LinearLayout)findViewById( R.id.navigator);
inflater = (LayoutInflater) getApplicationContext().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
for( int i = 0; i < 2 ; i++ ){
ThumbnailView thumb = new ThumbnailView( i , (int)(120.0f / Math.sqrt(2) ) , 120 );
final int pos = i;
thumb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("nav" , Integer.toString( pos ) );
}
});
ll.addView ( thumb );
}*/
Context.LAYOUT_INFLATER_SERVICE);
for( int i = 0; i < 2 ; i++ ){
ThumbnailView thumb = new ThumbnailView( i , (int)(120.0f / Math.sqrt(2) ) , 120 );
final int pos = i;
thumb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("nav" , Integer.toString( pos ) );
}
});
ll.addView ( thumb );
}*/
}
catch (Exception e) {
e.printStackTrace(System.err);
......@@ -1236,22 +1235,23 @@ public class DocumentLoader
return true;
return false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// app icon in action bar clicked; go home
Intent intent = new Intent(this, LibreOfficeUIActivity.class);
intent.putExtras( extras );
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId()) {
case android.R.id.home:
// app icon in action bar clicked; go home
Intent intent = new Intent(this, LibreOfficeUIActivity.class);
intent.putExtras( extras );
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
// vim:set shiftwidth=4 softtabstop=4 expandtab:
......@@ -66,7 +66,7 @@ public class FileUtilities {
mExtnMap.put(".svg", DRAWING);
mExtnMap.put(".vsd", DRAWING);
mExtnMap.put(".wpg", DRAWING);
// FIXME: we need to expand this ...
// FIXME: we need to expand this ...
}
private static final String getExtension(String filename)
......@@ -133,67 +133,68 @@ public class FileUtilities {
static FilenameFilter getFilenameFilter(final int mode)
{
return new FilenameFilter() {
public boolean accept(File dir, String filename) {
if( new File( dir , filename ).isDirectory() )
return true;
return doAccept(filename, mode, "");
}
};
return new FilenameFilter() {
public boolean accept(File dir, String filename) {
if( new File( dir , filename ).isDirectory() )
return true;
return doAccept(filename, mode, "");
}
};
}
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;
}
return;
}
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;
}
return;
}
static boolean isHidden( File file ){
if( file.getName().startsWith(".") )
......
/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
......@@ -30,95 +31,95 @@ import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Color;
public class GridItemAdapter extends BaseAdapter{
Context mContext;
File[] filePaths;
File currentDirectory;
public class GridItemAdapter extends BaseAdapter {
Context mContext;
File[] filePaths;
File currentDirectory;
String TAG = "GridItemAdapter";
public GridItemAdapter(Context mContext, File[] filePaths) {
this.mContext = mContext;
this.filePaths = filePaths;
for(File fn : filePaths){
public GridItemAdapter(Context mContext, File[] filePaths) {
this.mContext = mContext;
this.filePaths = filePaths;
for(File fn : filePaths){
Log.d(TAG, fn.getName());
}
}
public GridItemAdapter(Context mContext, File currentDirectory) {
this.mContext = mContext;
this.currentDirectory = currentDirectory;
filePaths = currentDirectory.listFiles();
}
public GridItemAdapter(Context mContext, File currentDirectory, File[] filteredFiles)
{
this.mContext = mContext;
this.currentDirectory = currentDirectory;
filePaths = filteredFiles;
}
public int getCount() {
return filePaths.length;
}
public Object getItem(int position) {
return null;//filePaths[ position ];
}
}
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
public GridItemAdapter(Context mContext, File currentDirectory) {
this.mContext = mContext;
this.currentDirectory = currentDirectory;
filePaths = currentDirectory.listFiles();
}
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
public GridItemAdapter(Context mContext, File currentDirectory, File[] filteredFiles)
{
this.mContext = mContext;
this.currentDirectory = currentDirectory;
filePaths = filteredFiles;
}
View gridView;
public int getCount() {
return filePaths.length;
}
if (convertView == null) {
gridView = new View(mContext);
} else {
gridView = (View) convertView;
}
public Object getItem(int position) {
return null;//filePaths[ position ];
}
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.file_explorer_grid_item, null);
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
// set value into textview
TextView textView = (TextView) gridView
.findViewById(R.id.grid_item_label);
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(mContext);
} else {
gridView = (View) convertView;
}
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.file_explorer_grid_item, null);
// set value into textview
TextView textView = (TextView) gridView
.findViewById(R.id.grid_item_label);
textView.setText(filePaths[position].getName());
// set image based on selected text
ImageView imageView = (ImageView) gridView
.findViewById(R.id.grid_item_image);
if( filePaths[position].isDirectory() ) // Is a folder
{
// Default view is a generic folder icon.
imageView.setImageResource(R.drawable.folder);
// How should we handle empty folders / folders with no thumbnails? -> new files
gridView = inflater.inflate(R.layout.file_explorer_folder_icon, null);
org.libreoffice.ui.FolderIconView icon =
(org.libreoffice.ui.FolderIconView)gridView.findViewById(R.id.folder_icon);
icon.setDir( filePaths[position]);
textView = (TextView) gridView.findViewById(R.id.grid_item_label);
textView.setText(filePaths[position].getName());
// set image based on selected text
ImageView imageView = (ImageView) gridView
.findViewById(R.id.grid_item_image);
if( filePaths[position].isDirectory() ) // Is a folder
{
// Default view is a generic folder icon.
imageView.setImageResource(R.drawable.folder);
// How should we handle empty folders / folders with no thumbnails? -> new files
gridView = inflater.inflate(R.layout.file_explorer_folder_icon, null);
org.libreoffice.ui.FolderIconView icon =
(org.libreoffice.ui.FolderIconView)gridView.findViewById(R.id.folder_icon);
icon.setDir( filePaths[position]);
textView = (TextView) gridView.findViewById(R.id.grid_item_label);
textView.setText(filePaths[position].getName());
return gridView;
return gridView;
}
else
{
File thumbnailFile = new File( filePaths[position].getParent() , "."
+ filePaths[position].getName().split("[.]")[0] + ".png");
BitmapFactory factory = new BitmapFactory();
Bitmap thumb = factory.decodeFile( thumbnailFile.getAbsolutePath() );
if(thumb != null){
Log.i( "GRID" , "true" );
}else{
Log.i( "GRID" , thumbnailFile.getAbsolutePath() );
}
else
switch (FileUtilities.getType(filePaths[position].getName()))
{
File thumbnailFile = new File( filePaths[position].getParent() , "."
+ filePaths[position].getName().split("[.]")[0] + ".png");
BitmapFactory factory = new BitmapFactory();
Bitmap thumb = factory.decodeFile( thumbnailFile.getAbsolutePath() );
if(thumb != null){
Log.i( "GRID" , "true" );
}else{
Log.i( "GRID" , thumbnailFile.getAbsolutePath() );
}
switch (FileUtilities.getType(filePaths[position].getName()))
{
case FileUtilities.DOC:
if( thumb != null){
imageView.setImageBitmap( thumb );
......@@ -126,22 +127,24 @@ public class GridItemAdapter extends BaseAdapter{
}
imageView.setImageResource(R.drawable.writer);
break;
case FileUtilities.CALC:
case FileUtilities.CALC:
imageView.setImageResource(R.drawable.calc);
break;
case FileUtilities.DRAWING: // FIXME: only for now ...
case FileUtilities.IMPRESS:
case FileUtilities.DRAWING: // FIXME: only for now ...
case FileUtilities.IMPRESS:
imageView.setImageResource(R.drawable.impress);
break;
case FileUtilities.UNKNOWN:
default:
break; // FIXME something prettier ?
}
}
return gridView;
}
case FileUtilities.UNKNOWN:
default:
break; // FIXME something prettier ?
}
}
return gridView;
}
public void update(){
this.notifyDataSetChanged();
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
......@@ -86,30 +87,30 @@ import java.nio.ByteOrder;
public class LibreOfficeUIActivity extends Activity implements ActionBar.OnNavigationListener {
private String tag = "file_manager";
private SharedPreferences prefs;
private SharedPreferences prefs;
private File homeDirectory;
private File currentDirectory;
private int filterMode = FileUtilities.ALL;
private int viewMode;
private int sortMode;
FileFilter fileFilter;
FilenameFilter filenameFilter;
private File[] filePaths;
private static final String CURRENT_DIRECTORY_KEY = "CURRENT_DIRECTORY";
private static final String FILTER_MODE_KEY = "FILTER_MODE";
public static final String EXPLORER_VIEW_TYPE_KEY = "EXPLORER_VIEW_TYPE";
public static final String EXPLORER_PREFS_KEY = "EXPLORER_PREFS";
public static final String SORT_MODE_KEY = "SORT_MODE";
public static final int GRID_VIEW = 0;
public static final int LIST_VIEW = 1;
GridView gv;
ListView lv;
private File currentDirectory;
private int filterMode = FileUtilities.ALL;
private int viewMode;
private int sortMode;
FileFilter fileFilter;
FilenameFilter filenameFilter;
private File[] filePaths;
private static final String CURRENT_DIRECTORY_KEY = "CURRENT_DIRECTORY";
private static final String FILTER_MODE_KEY = "FILTER_MODE";
public static final String EXPLORER_VIEW_TYPE_KEY = "EXPLORER_VIEW_TYPE";
public static final String EXPLORER_PREFS_KEY = "EXPLORER_PREFS";
public static final String SORT_MODE_KEY = "SORT_MODE";
public static final int GRID_VIEW = 0;
public static final int LIST_VIEW = 1;
GridView gv;
ListView lv;
private static final String TAG = "ThumbnailGenerator";
private static final int SMALLSIZE = 128;
......@@ -134,21 +135,21 @@ public class LibreOfficeUIActivity extends Activity implements ActionBar.OnNavig
homeDirectory.mkdirs();
currentDirectory = homeDirectory;
//Load default settings
Bootstrap.setup(this);
Bootstrap.putenv("SAL_LOG=yes");
}
public void createUI(){
ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(false);//This should show current directory if anything
/*actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.file_view_modes,
android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(mSpinnerAdapter, this);
*/
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.file_view_modes,
android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(mSpinnerAdapter, this);
*/
//make the navigation spinner
Context context = actionBar.getThemedContext();
ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(context, R.array.file_view_modes, android.R.layout.simple_spinner_item);
......@@ -170,38 +171,38 @@ public class LibreOfficeUIActivity extends Activity implements ActionBar.OnNavig
actionBar.setDisplayHomeAsUpEnabled(true);
}
if( viewMode == GRID_VIEW){
// code to make a grid view
setContentView(R.layout.file_grid);
gv = (GridView)findViewById(R.id.file_explorer_grid_view);
filePaths = currentDirectory.listFiles( FileUtilities.getFileFilter( filterMode ) );
gv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
File file = filePaths[position];
if(!file.isDirectory()){
if( viewMode == GRID_VIEW){
// code to make a grid view
setContentView(R.layout.file_grid);
gv = (GridView)findViewById(R.id.file_explorer_grid_view);
filePaths = currentDirectory.listFiles( FileUtilities.getFileFilter( filterMode ) );
gv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
File file = filePaths[position];
if(!file.isDirectory()){
open(file);
}else{
}else{
openDirectory( file );
}
}
});
gv.setAdapter( new GridItemAdapter(getApplicationContext(), currentDirectory, filePaths ) );
actionBar.setSelectedNavigationItem( filterMode + 1 );//This triggers the listener which modifies the view.
}
}
});
gv.setAdapter( new GridItemAdapter(getApplicationContext(), currentDirectory, filePaths ) );
actionBar.setSelectedNavigationItem( filterMode + 1 );//This triggers the listener which modifies the view.
}else{
setContentView(R.layout.file_list);
lv = (ListView)findViewById( R.id.file_explorer_list_view);
lv.setClickable(true);
filePaths = currentDirectory.listFiles( FileUtilities.getFileFilter( filterMode ) );
lv.setAdapter( new ListItemAdapter(getApplicationContext(), filePaths) );
actionBar.setSelectedNavigationItem( filterMode + 1 );
setContentView(R.layout.file_list);
lv = (ListView)findViewById( R.id.file_explorer_list_view);
lv.setClickable(true);
filePaths = currentDirectory.listFiles( FileUtilities.getFileFilter( filterMode ) );
lv.setAdapter( new ListItemAdapter(getApplicationContext(), filePaths) );
actionBar.setSelectedNavigationItem( filterMode + 1 );
}
}
public void openDirectory(File dir ){
currentDirectory = dir;
currentDirectory = dir;
if( !currentDirectory.equals( homeDirectory )){
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
......@@ -209,68 +210,68 @@ public class LibreOfficeUIActivity extends Activity implements ActionBar.OnNavig
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled( false );
}
filePaths = currentDirectory.listFiles( FileUtilities.getFileFilter( filterMode ) );
FileUtilities.sortFiles( filePaths, sortMode );
/*
for( int i = 0; i < fileNames.length; i++){
fileNames[ i ] = filePaths[ i ].getName();
if( !FileUtilities.hasThumbnail( filePaths[ i ] ) )
{
new ThumbnailGenerator( filePaths[ i ] );
}
}
*/
if( viewMode == GRID_VIEW){
gv.setAdapter( new GridItemAdapter(getApplicationContext(), currentDirectory, filePaths ) );
}else{
lv.setAdapter( new ListItemAdapter(getApplicationContext(), filePaths) );
}
filePaths = currentDirectory.listFiles( FileUtilities.getFileFilter( filterMode ) );
FileUtilities.sortFiles( filePaths, sortMode );
/*
for( int i = 0; i < fileNames.length; i++){
fileNames[ i ] = filePaths[ i ].getName();
if( !FileUtilities.hasThumbnail( filePaths[ i ] ) )
{
new ThumbnailGenerator( filePaths[ i ] );
}
}
*/
if( viewMode == GRID_VIEW){
gv.setAdapter( new GridItemAdapter(getApplicationContext(), currentDirectory, filePaths ) );
}else{
lv.setAdapter( new ListItemAdapter(getApplicationContext(), filePaths) );
}
}
public void open(File file) {
Intent i = new Intent(Intent.ACTION_VIEW, Uri.fromFile(file));
i.setComponent(new ComponentName(
"org.libreoffice",
"org.libreoffice.LibreOfficeMainActivity"));
"org.libreoffice",
"org.libreoffice.LibreOfficeMainActivity"));
startActivity(i);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.view_menu, menu);
MenuItem item = (MenuItem)menu.findItem(R.id.menu_view_toggle);
if( viewMode == GRID_VIEW){
item.setTitle(R.string.list_view);
item.setIcon( R.drawable.light_view_as_list );
item.setTitle(R.string.list_view);
item.setIcon( R.drawable.light_view_as_list );
}else{
item.setTitle(R.string.grid_view);
item.setIcon( R.drawable.light_view_as_grid );
item.setTitle(R.string.grid_view);
item.setIcon( R.drawable.light_view_as_grid );
}
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if( !currentDirectory.equals( homeDirectory ) ){
openDirectory( currentDirectory.getParentFile() );
}
break;
case R.id.menu_view_toggle:
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{
viewMode = GRID_VIEW;
item.setTitle(R.string.list_view);//Button points to next view.
item.setIcon( R.drawable.light_view_as_list );
}
createUI();
break;
switch (item.getItemId()) {
case android.R.id.home:
if( !currentDirectory.equals( homeDirectory ) ){
openDirectory( currentDirectory.getParentFile() );
}
break;
case R.id.menu_view_toggle:
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{
viewMode = GRID_VIEW;
item.setTitle(R.string.list_view);//Button points to next view.
item.setIcon( R.drawable.light_view_as_list );
}
createUI();
break;
case R.id.menu_sort_size:
case R.id.menu_sort_az:
case R.id.menu_sort_modified:
......@@ -282,11 +283,11 @@ public class LibreOfficeUIActivity extends Activity implements ActionBar.OnNavig
default:
return super.onOptionsItemSelected(item);
}
return true;
}
return true;
}
public void createDummyFileSystem(){
boolean mExternalStorageAvailable = false;
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();
......@@ -298,145 +299,145 @@ public class LibreOfficeUIActivity extends Activity implements ActionBar.OnNavig
} else {
mExternalStorageAvailable = mExternalStorageWriteable = false;
}
if( mExternalStorageAvailable && mExternalStorageWriteable ){//can also check if its writeable
Log.d(tag, Boolean.toString( currentDirectory.mkdir() ) );
try {
File[] removeList = currentDirectory.listFiles();
for(File item : removeList){
if(item.isDirectory())
continue;//Log.d(tag, item.getPath());
item.delete();
}
new File( currentDirectory , "d0.odp" ).createNewFile();
new File( currentDirectory , "d1.odt" ).createNewFile();
new File( currentDirectory , "d2.odt" ).createNewFile();
new File( currentDirectory , "d3.odp" ).createNewFile();
new File( currentDirectory , "d4.ods" ).createNewFile();
new File( currentDirectory , "d5.odt" ).createNewFile();
new File( currentDirectory , "d6.odp" ).createNewFile();
new File( currentDirectory , "d7.odt" ).createNewFile();
new File( currentDirectory , "d8.odt" ).createNewFile();
new File( currentDirectory , "d9.odp" ).createNewFile();
new File( currentDirectory , "d10.odp" ).createNewFile();
new File( currentDirectory , "d11.odt" ).createNewFile();
new File( currentDirectory , "d12.odt" ).createNewFile();
new File( currentDirectory , "d13.odp" ).createNewFile();
new File( currentDirectory , "d14.ods" ).createNewFile();
new File( currentDirectory , "d15.odt" ).createNewFile();
File templatesDirectory = new File( currentDirectory , "Templates" );
templatesDirectory.mkdir();
new File( templatesDirectory , "template1.odt" ).createNewFile();
new File( templatesDirectory , "template2.odt" ).createNewFile();
new File( templatesDirectory , "template3.ods" ).createNewFile();
new File( templatesDirectory , "template4.odp" ).createNewFile();
File regularDirectory = new File( currentDirectory , "Folder" );
regularDirectory.mkdir();
new File( regularDirectory , "yetAnotherDoc.odt" ).createNewFile();
new File( regularDirectory , "some really long file name.ods" ).createNewFile();
File anotherRegularDirectory = new File( regularDirectory , "AnotherFolder" );
anotherRegularDirectory.mkdir();
new File( anotherRegularDirectory , "yetAnotherDoc2.odt" ).createNewFile();
//Should put a folder in at some stage.
} catch (IOException e) {
Log.d(tag, "file io failure");
e.printStackTrace();
}
//Log.d(tag, fileStore.toString());
if( mExternalStorageAvailable && mExternalStorageWriteable ){//can also check if its writeable
Log.d(tag, Boolean.toString( currentDirectory.mkdir() ) );
try {
File[] removeList = currentDirectory.listFiles();
for(File item : removeList){
if(item.isDirectory())
continue;//Log.d(tag, item.getPath());
item.delete();
}
new File( currentDirectory , "d0.odp" ).createNewFile();
new File( currentDirectory , "d1.odt" ).createNewFile();
new File( currentDirectory , "d2.odt" ).createNewFile();
new File( currentDirectory , "d3.odp" ).createNewFile();
new File( currentDirectory , "d4.ods" ).createNewFile();
new File( currentDirectory , "d5.odt" ).createNewFile();
new File( currentDirectory , "d6.odp" ).createNewFile();
new File( currentDirectory , "d7.odt" ).createNewFile();
new File( currentDirectory , "d8.odt" ).createNewFile();
new File( currentDirectory , "d9.odp" ).createNewFile();
new File( currentDirectory , "d10.odp" ).createNewFile();
new File( currentDirectory , "d11.odt" ).createNewFile();
new File( currentDirectory , "d12.odt" ).createNewFile();
new File( currentDirectory , "d13.odp" ).createNewFile();
new File( currentDirectory , "d14.ods" ).createNewFile();
new File( currentDirectory , "d15.odt" ).createNewFile();
File templatesDirectory = new File( currentDirectory , "Templates" );
templatesDirectory.mkdir();
new File( templatesDirectory , "template1.odt" ).createNewFile();
new File( templatesDirectory , "template2.odt" ).createNewFile();
new File( templatesDirectory , "template3.ods" ).createNewFile();
new File( templatesDirectory , "template4.odp" ).createNewFile();
File regularDirectory = new File( currentDirectory , "Folder" );
regularDirectory.mkdir();
new File( regularDirectory , "yetAnotherDoc.odt" ).createNewFile();
new File( regularDirectory , "some really long file name.ods" ).createNewFile();
File anotherRegularDirectory = new File( regularDirectory , "AnotherFolder" );
anotherRegularDirectory.mkdir();
new File( anotherRegularDirectory , "yetAnotherDoc2.odt" ).createNewFile();
//Should put a folder in at some stage.
} catch (IOException e) {
Log.d(tag, "file io failure");
e.printStackTrace();
}
//Log.d(tag, fileStore.toString());
}
else{
Log.d(tag, "No External Storage");
Log.d(tag, "No External Storage");
}
}
@SuppressWarnings("unused")//see android:onClick properties in view_menu.xml
public void sortFiles(MenuItem item){
switch ( item.getItemId() ) {
case R.id.menu_sort_az:
if( sortMode == FileUtilities.SORT_AZ ){
sortMode = FileUtilities.SORT_ZA;
}else{
sortMode = FileUtilities.SORT_AZ;
}
break;
case R.id.menu_sort_modified:
if( sortMode == FileUtilities.SORT_NEWEST ){
sortMode = FileUtilities.SORT_OLDEST;
}else{
sortMode = FileUtilities.SORT_NEWEST;
}
break;
case R.id.menu_sort_size:
if( sortMode == FileUtilities.SORT_LARGEST ){
sortMode = FileUtilities.SORT_SMALLEST;
}else{
sortMode = FileUtilities.SORT_LARGEST;
}
break;
default:
break;
}
this.onResume();
public void sortFiles(MenuItem item){
switch ( item.getItemId() ) {
case R.id.menu_sort_az:
if( sortMode == FileUtilities.SORT_AZ ){
sortMode = FileUtilities.SORT_ZA;
}else{
sortMode = FileUtilities.SORT_AZ;
}
break;
case R.id.menu_sort_modified:
if( sortMode == FileUtilities.SORT_NEWEST ){
sortMode = FileUtilities.SORT_OLDEST;
}else{
sortMode = FileUtilities.SORT_NEWEST;
}
break;
case R.id.menu_sort_size:
if( sortMode == FileUtilities.SORT_LARGEST ){
sortMode = FileUtilities.SORT_SMALLEST;
}else{
sortMode = FileUtilities.SORT_LARGEST;
}
break;
default:
break;
}
this.onResume();
}
public void readPreferences(){
prefs = getSharedPreferences(EXPLORER_PREFS_KEY, MODE_PRIVATE);
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") );
}
public void editPreferences(MenuItem item){
startActivity( new Intent( this , PreferenceEditor.class) );
startActivity( new Intent( this , PreferenceEditor.class) );
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
outState.putString( CURRENT_DIRECTORY_KEY , currentDirectory.getAbsolutePath() );
outState.putInt( FILTER_MODE_KEY , filterMode );
outState.putInt( EXPLORER_VIEW_TYPE_KEY , viewMode );
Log.d(tag, currentDirectory.toString() + Integer.toString(filterMode ) + Integer.toString(viewMode) );
//prefs.edit().putInt(EXPLORER_VIEW_TYPE, viewType).commit();
Log.d(tag, "savedInstanceSate");
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
outState.putString( CURRENT_DIRECTORY_KEY , currentDirectory.getAbsolutePath() );
outState.putInt( FILTER_MODE_KEY , filterMode );
outState.putInt( EXPLORER_VIEW_TYPE_KEY , viewMode );
Log.d(tag, currentDirectory.toString() + Integer.toString(filterMode ) + Integer.toString(viewMode) );
//prefs.edit().putInt(EXPLORER_VIEW_TYPE, viewType).commit();
Log.d(tag, "savedInstanceSate");
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onRestoreInstanceState(savedInstanceState);
if( savedInstanceState.isEmpty() ){
return;
}
currentDirectory = new File( savedInstanceState.getString( CURRENT_DIRECTORY_KEY ) );
filterMode = savedInstanceState.getInt( FILTER_MODE_KEY , FileUtilities.ALL ) ;
viewMode = savedInstanceState.getInt( EXPLORER_VIEW_TYPE_KEY , GRID_VIEW );
//openDirectory( currentDirectory );
Log.d(tag, "onRestoreInstanceState");
Log.d(tag, currentDirectory.toString() + Integer.toString(filterMode ) + Integer.toString(viewMode) );
// TODO Auto-generated method stub
super.onRestoreInstanceState(savedInstanceState);
if( savedInstanceState.isEmpty() ){
return;
}
currentDirectory = new File( savedInstanceState.getString( CURRENT_DIRECTORY_KEY ) );
filterMode = savedInstanceState.getInt( FILTER_MODE_KEY , FileUtilities.ALL ) ;
viewMode = savedInstanceState.getInt( EXPLORER_VIEW_TYPE_KEY , GRID_VIEW );
//openDirectory( currentDirectory );
Log.d(tag, "onRestoreInstanceState");
Log.d(tag, currentDirectory.toString() + Integer.toString(filterMode ) + Integer.toString(viewMode) );
}
@Override
protected void onPause() {
//prefs.edit().putInt(EXPLORER_VIEW_TYPE, viewType).commit();
super.onPause();
Log.d(tag, "onPause");
//prefs.edit().putInt(EXPLORER_VIEW_TYPE, viewType).commit();
super.onPause();
Log.d(tag, "onPause");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.d(tag, "onResume");
readPreferences();// intent values take precedence over prefs?
Intent i = this.getIntent();
// TODO Auto-generated method stub
super.onResume();
Log.d(tag, "onResume");
readPreferences();// intent values take precedence over prefs?
Intent i = this.getIntent();
if( i.hasExtra( CURRENT_DIRECTORY_KEY ) ){
currentDirectory = new File( i.getStringExtra( CURRENT_DIRECTORY_KEY ) );
Log.d(tag, CURRENT_DIRECTORY_KEY);
currentDirectory = new File( i.getStringExtra( CURRENT_DIRECTORY_KEY ) );
Log.d(tag, CURRENT_DIRECTORY_KEY);
}
if( i.hasExtra( FILTER_MODE_KEY ) ){
filterMode = i.getIntExtra( FILTER_MODE_KEY, FileUtilities.ALL);
......@@ -446,183 +447,183 @@ public class LibreOfficeUIActivity extends Activity implements ActionBar.OnNavig
viewMode = i.getIntExtra( EXPLORER_VIEW_TYPE_KEY, GRID_VIEW);
Log.d(tag, EXPLORER_VIEW_TYPE_KEY);
}
createUI();
openDirectory( currentDirectory );
createUI();
openDirectory( currentDirectory );
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.d(tag, "onStart");
// TODO Auto-generated method stub
super.onStart();
Log.d(tag, "onStart");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.d(tag, "onStop");
// TODO Auto-generated method stub
super.onStop();
Log.d(tag, "onStop");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.d(tag, "onDestroy");
// TODO Auto-generated method stub
super.onDestroy();
Log.d(tag, "onDestroy");
}
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
return true;
}
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
return true;
}
private int dpToPx( int dp ){
final float scale = getApplicationContext().getResources().getDisplayMetrics().density;
return (int) (dp * scale + 0.5f);
}
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;
}
final int pos = position;
listItem.setClickable(true);
listItem.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.d("LIST", "click!");
if(filePaths[ pos ].isDirectory() ){
openDirectory( filePaths[ pos ] );
}else{
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;
}
final int pos = position;
listItem.setClickable(true);
listItem.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.d("LIST", "click!");
if(filePaths[ pos ].isDirectory() ){
openDirectory( filePaths[ pos ] );
}else{
open( filePaths[ pos ] );
}
}
});
// 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);
if( filePaths[position].getName().endsWith(".odt") ){
imageView.setImageResource(R.drawable.writer);
}
if( filePaths[position].getName().endsWith(".ods") ){
imageView.setImageResource(R.drawable.calc);
}
if( filePaths[position].getName().endsWith(".odp") ){
imageView.setImageResource(R.drawable.impress);
}
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;
}
}
}
});
// 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);
if( filePaths[position].getName().endsWith(".odt") ){
imageView.setImageResource(R.drawable.writer);
}
if( filePaths[position].getName().endsWith(".ods") ){
imageView.setImageResource(R.drawable.calc);
}
if( filePaths[position].getName().endsWith(".odp") ){
imageView.setImageResource(R.drawable.impress);
}
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;
}
}
......@@ -631,15 +632,14 @@ class ListItemAdapter implements ListAdapter{
ThumbnailGenerator( File file ){
this.file = file;
String input = file.getAbsolutePath();
if (input == null)
input = "/assets/test1.odt";
// Load the wanted document
new DocumentLoadTask().executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, "file://" + input);
String input = file.getAbsolutePath();
if (input == null)
input = "/assets/test1.odt";
// Load the wanted document
new DocumentLoadTask().executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, "file://" + input);
}
class DocumentLoadTask
extends AsyncTask<String, Void, Integer>
class DocumentLoadTask extends AsyncTask<String, Void, Integer>
{
ByteBuffer renderPage(int number, int width , int height)
......@@ -701,9 +701,9 @@ class ListItemAdapter implements ListAdapter{
Log.i(TAG, "w,h Scaling with " + scaleNumerator + "/" + scaleDenominator);
device = toolkit.createScreenCompatibleDeviceUsingBuffer(width, height,
scaleNumerator, scaleDenominator,
0, 0,
wrapped_bb);
scaleNumerator, scaleDenominator,
0, 0,
wrapped_bb);
}
// Update the property that points to the device
......@@ -788,9 +788,9 @@ class ListItemAdapter implements ListAdapter{
toolkit = (XToolkitExperimental) UnoRuntime.queryInterface(XToolkitExperimental.class, toolkitService);
renderable = (XRenderable) UnoRuntime.queryInterface(XRenderable.class, doc);
if (renderable == null)
// some serious error with the rendering backend
return new Integer(0);
if (renderable == null)
// some serious error with the rendering backend
return new Integer(0);
// Set up dummySmallDevice and use it to find out the number
// of pages ("renderers").
......@@ -820,14 +820,14 @@ class ListItemAdapter implements ListAdapter{
finish();
}
return new Integer( 0 );
}
}
protected void onPostExecute(Integer result){
if (renderable == null) {
if (renderable == null) {
Log.i(TAG, "Document is un-renderable");
return; // TODO: check if this falls-back to a sensible image
}
return; // TODO: check if this falls-back to a sensible image
}
int widthInPx = dpToPx( 100 );
int heightInPx = dpToPx( (int)( 100*Math.sqrt(2) ) );
......@@ -871,75 +871,74 @@ class ListItemAdapter implements ListAdapter{
// TODO: handle exception
}
( (GridItemAdapter)gv.getAdapter() ).update();
}
}
}
class MyXController
implements XController
class MyXController implements XController
{
XFrame frame;
XModel model;
XFrame frame;
XModel model;
public void attachFrame(XFrame frame)
{
Log.i(TAG, "attachFrame");
this.frame = frame;
}
public void attachFrame(XFrame frame)
{
Log.i(TAG, "attachFrame");
this.frame = frame;
}
public boolean attachModel(XModel model)
{
Log.i(TAG, "attachModel");
this.model = model;
return true;
}
public boolean attachModel(XModel model)
{
Log.i(TAG, "attachModel");
this.model = model;
return true;
}
public boolean suspend(boolean doSuspend)
{
Log.i(TAG, "suspend");
return false;
}
public boolean suspend(boolean doSuspend)
{
Log.i(TAG, "suspend");
return false;
}
public Object getViewData()
{
Log.i(TAG, "getViewData");
return null;
}
public Object getViewData()
{
Log.i(TAG, "getViewData");
return null;
}
public void restoreViewData(Object data)
{
Log.i(TAG, "restoreViewData");
}
public void restoreViewData(Object data)
{
Log.i(TAG, "restoreViewData");
}
public XModel getModel()
{
Log.i(TAG, "getModel");
return model;
}
public XModel getModel()
{
Log.i(TAG, "getModel");
return model;
}
public XFrame getFrame()
{
Log.i(TAG, "getFrame");
return frame;
}
public XFrame getFrame()
{
Log.i(TAG, "getFrame");
return frame;
}
public void dispose()
{
Log.i(TAG, "dispose");
}
public void dispose()
{
Log.i(TAG, "dispose");
}
public void addEventListener(XEventListener listener)
{
Log.i(TAG, "addEventListener");
}
public void addEventListener(XEventListener listener)
{
Log.i(TAG, "addEventListener");
}
public void removeEventListener(XEventListener listener)
{
Log.i(TAG, "removeEventListener");
public void removeEventListener(XEventListener listener)
{
Log.i(TAG, "removeEventListener");
}
}
}
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
......@@ -25,144 +26,145 @@ 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
* 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);
if( filePaths[position].getName().endsWith(".odt") ){
imageView.setImageResource(R.drawable.writer);
}
if( filePaths[position].getName().endsWith(".ods") ){
imageView.setImageResource(R.drawable.calc);
}
if( filePaths[position].getName().endsWith(".odp") ){
imageView.setImageResource(R.drawable.impress);
}
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;
}
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);
if( filePaths[position].getName().endsWith(".odt") ){
imageView.setImageResource(R.drawable.writer);
}
if( filePaths[position].getName().endsWith(".ods") ){
imageView.setImageResource(R.drawable.calc);
}
if( filePaths[position].getName().endsWith(".odp") ){
imageView.setImageResource(R.drawable.impress);
}
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: */
/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
package org.libreoffice.ui;
import org.libreoffice.R;
......@@ -13,53 +15,55 @@ import android.util.Log;
import android.view.View;
public class PageView extends View{
private Bitmap bmp;
private Paint mPaintBlack;
private String tag = "PageView";
public PageView(Context context ) {
super(context);
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.dummy_page);
intialise();
}
public PageView(Context context, AttributeSet attrs) {
private Bitmap bmp;
private Paint mPaintBlack;
private String tag = "PageView";
public PageView(Context context ) {
super(context);
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.dummy_page);
intialise();
}
public PageView(Context context, AttributeSet attrs) {
super(context, attrs);
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.dummy_page);
Log.d( tag , bmp.toString());
intialise();
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.dummy_page);
Log.d( tag , bmp.toString());
intialise();
}
public PageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.dummy_page);//load a "page"
intialise();
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.dummy_page);//load a "page"
intialise();
}
private void intialise(){
mPaintBlack = new Paint();
mPaintBlack.setARGB(255, 0, 0, 0);
Log.d(tag, " Doing some set-up");
mPaintBlack = new Paint();
mPaintBlack.setARGB(255, 0, 0, 0);
Log.d(tag, " Doing some set-up");
}
public void setBitmap(Bitmap bmp){
this.bmp = bmp;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Log.d(tag, "Draw");
Log.d(tag, Integer.toString(bmp.getHeight()));
if( bmp != null ){
int horizontalMargin = (int) (canvas.getWidth()*0.1);
//int verticalMargin = (int) (canvas.getHeight()*0.1);
int verticalMargin = horizontalMargin;
canvas.drawBitmap(bmp, new Rect(0, 0, bmp.getWidth(), bmp.getHeight()),
new Rect(horizontalMargin,verticalMargin,canvas.getWidth()-horizontalMargin,
canvas.getHeight()-verticalMargin),
mPaintBlack);//
}
if( bmp == null)
canvas.drawText("Bmp is null!", 100, 100, new Paint());
}
public void setBitmap(Bitmap bmp){
this.bmp = bmp;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Log.d(tag, "Draw");
Log.d(tag, Integer.toString(bmp.getHeight()));
if( bmp != null ){
int horizontalMargin = (int) (canvas.getWidth()*0.1);
//int verticalMargin = (int) (canvas.getHeight()*0.1);
int verticalMargin = horizontalMargin;
canvas.drawBitmap(bmp, new Rect(0, 0, bmp.getWidth(), bmp.getHeight()),
new Rect(horizontalMargin,verticalMargin,canvas.getWidth()-horizontalMargin,
canvas.getHeight()-verticalMargin),
mPaintBlack);//
}
if( bmp == null)
canvas.drawText("Bmp is null!", 100, 100, new Paint());
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
......@@ -5,6 +6,7 @@
* 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;
......@@ -16,12 +18,14 @@ import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
public class PreferenceEditor extends PreferenceActivity {
public final static String FilterTypePrefKey = "FilterTypePreference";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource( R.xml.libreoffice_preferences );
//mPrefs = getSharedPreferences( LibreOfficeUIActivity.EXPLORER_PREFS_KEY , MODE_PRIVATE );
}
public final static String FilterTypePrefKey = "FilterTypePreference";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource( R.xml.libreoffice_preferences );
//mPrefs = getSharedPreferences( LibreOfficeUIActivity.EXPLORER_PREFS_KEY , MODE_PRIVATE );
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
......@@ -17,31 +18,33 @@ import android.os.Bundle;
import android.view.MenuItem;
public class WriterViewerActivity extends Activity{
private Bundle extras;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
extras = getIntent().getExtras();
setContentView(R.layout.main);
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// app icon in action bar clicked; go home
Intent intent = new Intent(this, LibreOfficeUIActivity.class);
intent.putExtras( extras );
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private Bundle extras;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
extras = getIntent().getExtras();
setContentView(R.layout.main);
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// app icon in action bar clicked; go home
Intent intent = new Intent(this, LibreOfficeUIActivity.class);
intent.putExtras( extras );
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment