1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-03 17:59:33 +02:00

Resources for filechooser

This commit is contained in:
Dmitry Yuranov 2014-04-14 18:55:54 +02:00
parent 929b353088
commit d8f0295b62
5 changed files with 81 additions and 12 deletions

View file

@ -311,6 +311,23 @@
<node name="fontPath" value="Where to seek for fonts"/> <node name="fontPath" value="Where to seek for fonts"/>
<node name="wallpaperPath" value="Where to seek for background images"/> <node name="wallpaperPath" value="Where to seek for background images"/>
<node name="tempDir" value="Where to store temporary files"/> <node name="tempDir" value="Where to store temporary files"/>
<node name="fileChooser" value="File chooser">
<node name="root" value="Root"/>
<node name="ok" value="Ok"/>
<node name="cancel" value="Cancel"/>
<node name="newFolder" value="New folder"/>
<node name="folderName" value="Folder name"/>
<node name="chooseFolder" value="Choose a folder..."/>
<node name="chooseFolders" value="Choose folders..."/>
<node name="chooseFile" value="Choose a file..."/>
<node name="menuHome" value="Home"/>
<node name="menuReload" value="Reload"/>
<node name="sortBy" value="Sort by">
<node name="name" value="Name"/>
<node name="size" value="Size"/>
<node name="date" value="Date"/>
</node>
</node>
</node> </node>
<node name="appearance" value="Appearance"> <node name="appearance" value="Appearance">
<node name="summary" value="Display settings, status bar, button lights"/> <node name="summary" value="Display settings, status bar, button lights"/>

View file

@ -25,6 +25,8 @@ import android.content.Intent;
import android.os.Parcelable; import android.os.Parcelable;
import android.preference.Preference; import android.preference.Preference;
import java.util.HashMap;
import group.pals.android.lib.ui.filechooser.FileChooserActivity; import group.pals.android.lib.ui.filechooser.FileChooserActivity;
import group.pals.android.lib.ui.filechooser.services.IFileProvider; import group.pals.android.lib.ui.filechooser.services.IFileProvider;
import group.pals.android.lib.ui.filechooser.io.localfile.LocalFile; import group.pals.android.lib.ui.filechooser.io.localfile.LocalFile;
@ -33,19 +35,41 @@ import org.geometerplus.zlibrary.core.resources.ZLResource;
abstract class FileChooserPreference extends Preference { abstract class FileChooserPreference extends Preference {
private final int myRegCode; private final int myRegCode;
private ZLResource myRootResource;
private String myResourceName;
FileChooserPreference(Context context, ZLResource rootResource, String resourceKey, int regCode) { FileChooserPreference(Context context, ZLResource rootResource, String resourceKey, int regCode) {
super(context); super(context);
myRegCode = regCode; myRegCode = regCode;
myRootResource = rootResource;
setTitle(rootResource.getResource(resourceKey).getValue()); myResourceName = "fileChooser";
setTitle(myRootResource.getResource(resourceKey).getValue());
} }
@Override @Override
protected void onClick() { protected void onClick() {
final Intent intent = new Intent(getContext(), FileChooserActivity.class);
intent.putExtra(FileChooserActivity._Rootpath, (Parcelable)new LocalFile(getStringValue())); HashMap<String, String> textResources = new HashMap<String, String>();
textResources.put("root", myRootResource.getResource(myResourceName).getResource("root").getValue());
textResources.put("ok", myRootResource.getResource(myResourceName).getResource("ok").getValue());
textResources.put("cancel", myRootResource.getResource(myResourceName).getResource("cancel").getValue());
textResources.put("newFolder", myRootResource.getResource(myResourceName).getResource("newFolder").getValue());
textResources.put("folderName", myRootResource.getResource(myResourceName).getResource("folderName").getValue());
textResources.put("chooseFolder", myRootResource.getResource(myResourceName).getResource("chooseFolder").getValue());
textResources.put("chooseFolders", myRootResource.getResource(myResourceName).getResource("chooseFolders").getValue());
textResources.put("chooseFile", myRootResource.getResource(myResourceName).getResource("chooseFile").getValue());
textResources.put("sortBy", myRootResource.getResource(myResourceName).getResource("sortBy").getValue());
textResources.put("sortByName", myRootResource.getResource(myResourceName).getResource("sortBy").getResource("name").getValue());
textResources.put("sortBySize", myRootResource.getResource(myResourceName).getResource("sortBy").getResource("size").getValue());
textResources.put("sortByDate", myRootResource.getResource(myResourceName).getResource("sortBy").getResource("date").getValue());
textResources.put("menuHome", myRootResource.getResource(myResourceName).getResource("menuHome").getValue());
textResources.put("menuReload", myRootResource.getResource(myResourceName).getResource("menuReload").getValue());
final Intent intent = new Intent(getContext(), FileChooserActivity.class);
intent.putExtra(FileChooserActivity._TextResources, textResources);
intent.putExtra(FileChooserActivity._Rootpath, (Parcelable)new LocalFile(getStringValue()));
intent.putExtra(FileChooserActivity._ActionBar, true); intent.putExtra(FileChooserActivity._ActionBar, true);
intent.putExtra(FileChooserActivity._SaveLastLocation, false); intent.putExtra(FileChooserActivity._SaveLastLocation, false);
//intent.putExtra(FileChooserActivity._FilterMode, IFileProvider.FilterMode.AnyDirectories); //intent.putExtra(FileChooserActivity._FilterMode, IFileProvider.FilterMode.AnyDirectories);

View file

@ -22,6 +22,7 @@
android:layout_marginRight="@dimen/afc_10dp" > android:layout_marginRight="@dimen/afc_10dp" >
<TextView <TextView
android:id="@+id/afc_settings_sort_view_textview_sort_by_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
@ -51,6 +52,7 @@
android:layout_marginRight="@dimen/afc_10dp" > android:layout_marginRight="@dimen/afc_10dp" >
<TextView <TextView
android:id="@+id/afc_settings_sort_view_textview_sort_by_size"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
@ -80,6 +82,7 @@
android:layout_marginRight="@dimen/afc_10dp" > android:layout_marginRight="@dimen/afc_10dp" >
<TextView <TextView
android:id="@+id/afc_settings_sort_view_textview_sort_by_date"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"

View file

@ -21,6 +21,7 @@
android:layout_marginRight="@dimen/afc_10dp" > android:layout_marginRight="@dimen/afc_10dp" >
<TextView <TextView
android:id="@+id/afc_settings_sort_view_textview_sort_by_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
@ -48,6 +49,7 @@
android:layout_marginRight="@dimen/afc_10dp" > android:layout_marginRight="@dimen/afc_10dp" >
<TextView <TextView
android:id="@+id/afc_settings_sort_view_textview_sort_by_size"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
@ -75,6 +77,7 @@
android:layout_marginRight="@dimen/afc_10dp" > android:layout_marginRight="@dimen/afc_10dp" >
<TextView <TextView
android:id="@+id/afc_settings_sort_view_textview_sort_by_date"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"

View file

@ -35,6 +35,7 @@ import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.HashMap;
import android.Manifest; import android.Manifest;
import android.app.Activity; import android.app.Activity;
@ -203,6 +204,7 @@ public class FileChooserActivity extends Activity {
*/ */
public static final String _SelectFile = _ClassName + ".select_file"; public static final String _SelectFile = _ClassName + ".select_file";
public static final String _TextResources = _ClassName + ".text_resources";
// --------------------------------------------------------- // ---------------------------------------------------------
/** /**
@ -295,6 +297,8 @@ public class FileChooserActivity extends Activity {
private ImageView mViewFoldersView; private ImageView mViewFoldersView;
private ImageView mViewSort; private ImageView mViewSort;
private HashMap<String, String> mTextResources;
/** Called when the activity is first created. */ /** Called when the activity is first created. */
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
@ -336,8 +340,9 @@ public class FileChooserActivity extends Activity {
DisplayPrefs.setRememberLastLocation(this, false); DisplayPrefs.setRememberLastLocation(this, false);
mDoubleTapToChooseFiles = getIntent().getBooleanExtra(_DoubleTapToChooseFiles, false); mDoubleTapToChooseFiles = getIntent().getBooleanExtra(_DoubleTapToChooseFiles, false);
// load controls mTextResources = (HashMap<String, String>)getIntent().getSerializableExtra(_TextResources);
// load controls
mViewSort = (ImageView) findViewById(R.id.afc_filechooser_activity_button_sort); mViewSort = (ImageView) findViewById(R.id.afc_filechooser_activity_button_sort);
mViewFoldersView = (ImageView) findViewById(R.id.afc_filechooser_activity_button_folders_view); mViewFoldersView = (ImageView) findViewById(R.id.afc_filechooser_activity_button_folders_view);
mViewCreateFolder = (ImageView) findViewById(R.id.afc_filechooser_activity_button_create_folder); mViewCreateFolder = (ImageView) findViewById(R.id.afc_filechooser_activity_button_create_folder);
@ -397,6 +402,12 @@ public class FileChooserActivity extends Activity {
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater(); MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.afc_file_chooser_activity, menu); inflater.inflate(R.menu.afc_file_chooser_activity, menu);
MenuItem item = menu.findItem(R.id.afc_filechooser_activity_menuitem_home);
if(item != null)
item.setTitle(mTextResources.get("menuHome"));
item = menu.findItem(R.id.afc_filechooser_activity_menuitem_reload);
if(item != null)
item.setTitle(mTextResources.get("menuReload"));
return true; return true;
}// onCreateOptionsMenu() }// onCreateOptionsMenu()
@ -658,7 +669,8 @@ public class FileChooserActivity extends Activity {
setTitle(R.string.afc_title_choose_files_and_directories); setTitle(R.string.afc_title_choose_files_and_directories);
break; break;
case DirectoriesOnly: case DirectoriesOnly:
setTitle(R.string.afc_title_choose_directories); //setTitle(R.string.afc_title_choose_directories);
setTitle(mTextResources.get("chooseFolder"));
break; break;
} }
}// title of activity }// title of activity
@ -800,6 +812,8 @@ public class FileChooserActivity extends Activity {
} }
mBtnCancel.setVisibility(View.VISIBLE); mBtnCancel.setVisibility(View.VISIBLE);
mBtnCancel.setOnClickListener(mBtnCancel_ActionBar_OnClickListener); mBtnCancel.setOnClickListener(mBtnCancel_ActionBar_OnClickListener);
mBtnOk.setText(mTextResources.get("ok"));
mBtnCancel.setText(mTextResources.get("cancel"));
} }
if (mIsMultiSelection) { if (mIsMultiSelection) {
@ -906,6 +920,13 @@ public class FileChooserActivity extends Activity {
};// listener };// listener
View view = getLayoutInflater().inflate(R.layout.afc_settings_sort_view, null); View view = getLayoutInflater().inflate(R.layout.afc_settings_sort_view, null);
TextView sortTitle = (TextView) view.findViewById(R.id.afc_settings_sort_view_textview_sort_by_name);
sortTitle.setText(mTextResources.get("sortByName"));
sortTitle = (TextView) view.findViewById(R.id.afc_settings_sort_view_textview_sort_by_size);
sortTitle.setText(mTextResources.get("sortBySize"));
sortTitle = (TextView) view.findViewById(R.id.afc_settings_sort_view_textview_sort_by_date);
sortTitle.setText(mTextResources.get("sortByDate"));
for (int i = 0; i < _BtnSortIds.length; i++) { for (int i = 0; i < _BtnSortIds.length; i++) {
Button btn = (Button) view.findViewById(_BtnSortIds[i]); Button btn = (Button) view.findViewById(_BtnSortIds[i]);
btn.setOnClickListener(listener); btn.setOnClickListener(listener);
@ -916,7 +937,8 @@ public class FileChooserActivity extends Activity {
} }
} }
_dialog.setTitle(R.string.afc_title_sort_by); //_dialog.setTitle(R.string.afc_title_sort_by);
_dialog.setTitle(mTextResources.get("sortBy"));
_dialog.setView(view); _dialog.setView(view);
_dialog.show(); _dialog.show();
@ -998,7 +1020,7 @@ public class FileChooserActivity extends Activity {
View view = getLayoutInflater().inflate(R.layout.afc_simple_text_input_view, null); View view = getLayoutInflater().inflate(R.layout.afc_simple_text_input_view, null);
final EditText _textFile = (EditText) view.findViewById(R.id.afc_simple_text_input_view_text1); final EditText _textFile = (EditText) view.findViewById(R.id.afc_simple_text_input_view_text1);
_textFile.setHint(R.string.afc_hint_folder_name); _textFile.setHint(mTextResources.get("folderName"));
_textFile.setOnEditorActionListener(new TextView.OnEditorActionListener() { _textFile.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override @Override
@ -1013,7 +1035,7 @@ public class FileChooserActivity extends Activity {
}); });
_dlg.setView(view); _dlg.setView(view);
_dlg.setTitle(R.string.afc_cmd_new_folder); _dlg.setTitle(mTextResources.get("newFolder"));
_dlg.setIcon(android.R.drawable.ic_menu_add); _dlg.setIcon(android.R.drawable.ic_menu_add);
_dlg.setButton(DialogInterface.BUTTON_POSITIVE, getString(android.R.string.ok), _dlg.setButton(DialogInterface.BUTTON_POSITIVE, getString(android.R.string.ok),
new DialogInterface.OnClickListener() { new DialogInterface.OnClickListener() {
@ -1411,7 +1433,7 @@ public class FileChooserActivity extends Activity {
int count = 0; int count = 0;
while (path != null) { while (path != null) {
TextView btnLoc = (TextView) inflater.inflate(R.layout.afc_button_location, null); TextView btnLoc = (TextView) inflater.inflate(R.layout.afc_button_location, null);
btnLoc.setText(path.parentFile() != null ? "/"+path.getName() : getString(R.string.afc_root)); btnLoc.setText(path.parentFile() != null ? "/"+path.getName() : mTextResources.get("root"));
btnLoc.setTag(path); btnLoc.setTag(path);
btnLoc.setOnClickListener(mBtnLocationOnClickListener); btnLoc.setOnClickListener(mBtnLocationOnClickListener);
btnLoc.setOnLongClickListener(mBtnLocationOnLongClickListener); btnLoc.setOnLongClickListener(mBtnLocationOnLongClickListener);