New material things

This commit is contained in:
Vlad Mihalachi
2014-10-25 14:35:31 +02:00
parent 4d26fa7f3d
commit 78407c292a
164 changed files with 1485 additions and 1607 deletions

View File

@@ -19,8 +19,6 @@
package sharedcode.turboeditor.activity;
import android.app.ActionBar;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.ActivityNotFoundException;
import android.content.Context;
@@ -36,12 +34,18 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.preference.PreferenceManager;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.annotation.Nullable;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.ShareActionProvider;
import android.support.v7.widget.Toolbar;
import android.text.Editable;
import android.text.InputType;
import android.text.Selection;
import android.text.Spannable;
import android.text.TextPaint;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.text.method.KeyListener;
import android.text.style.ForegroundColorSpan;
@@ -54,13 +58,16 @@ import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.HorizontalScrollView;
import android.widget.ListView;
import android.widget.Toast;
import com.faizmalkani.floatingactionbutton.FloatingActionButton;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.sufficientlysecure.rootcommands.Shell;
import org.sufficientlysecure.rootcommands.Toolbox;
@@ -73,6 +80,7 @@ import java.util.regex.Pattern;
import de.greenrobot.event.EventBus;
import sharedcode.turboeditor.R;
import sharedcode.turboeditor.adapter.AdapterDrawer;
import sharedcode.turboeditor.fragment.ChangelogDialog;
import sharedcode.turboeditor.fragment.FileInfoDialog;
import sharedcode.turboeditor.fragment.FindTextDialog;
@@ -108,11 +116,12 @@ import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChan
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged.Type.THEME_CHANGE;
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged.Type.WRAP_CONTENT;
public abstract class BaseHomeActivity extends Activity implements FindTextDialog
public abstract class BaseHomeActivity extends ActionBarActivity implements FindTextDialog
.SearchDialogInterface, GoodScrollView.ScrollInterface, PageSystem.PageSystemInterface,
PageSystemButtons.PageButtonsInterface, SeekbarDialog.ISeekbarDialog, SaveFileDialog.ISaveDialog {
PageSystemButtons.PageButtonsInterface, SeekbarDialog.ISeekbarDialog, SaveFileDialog.ISaveDialog,
AdapterView.OnItemClickListener, AdapterDrawer.Callbacks{
//region EDITOR VARIABLES
//region VARIABLES
static final int
ID_SELECT_ALL = android.R.id.selectAll;
static final int ID_CUT = android.R.id.cut;
@@ -160,9 +169,18 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
private PageSystem pageSystem;
private PageSystemButtons pageSystemButtons;
private String currentEncoding = "UTF-8";
private Toolbar toolbar;
/*
Navigation Drawer
*/
private AdapterDrawer arrayAdapter;
private LinkedList<File> files;
private ListView listView;
//endregion
//region Activity facts
@Override
protected void onCreate(Bundle savedInstanceState) {
// set the windows background
@@ -171,6 +189,8 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
super.onCreate(savedInstanceState);
// setup the layout
setContentView(R.layout.activity_home);
toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
// setup the navigation drawer
setupNavigationDrawer();
// reset text editor
@@ -181,7 +201,7 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
// Open
mDrawerLayout.openDrawer(Gravity.START);
// Set the default title
getActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
getSupportActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
}
// parse the intent
parseIntent(getIntent());
@@ -201,6 +221,8 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
super.onResume();
// Register the Event Bus for events
EventBus.getDefault().registerSticky(this);
// Refresh the list view
refreshList();
}
@Override
@@ -289,7 +311,7 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
hideTextEditor();
// Set the default title
getActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
getSupportActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
EventBus.getDefault().post(new EventBusEvents.ClosedAFile());
@@ -311,13 +333,15 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
String path = "";
if (requestCode == SELECT_FILE_CODE) {
path = data.getStringExtra("path");
if(TextUtils.isEmpty(path))
path = AccessStorageApi.getPath(getBaseContext(), data.getData());
}
if (requestCode == KITKAT_OPEN_REQUEST_CODE) {
path = AccessStorageApi.getPath(getBaseContext(), data.getData());
}
if (!path.isEmpty()) {
if (!TextUtils.isEmpty(path)) {
File file = new File(path);
if (file.isFile() && file.exists()) {
EventBus.getDefault().postSticky(new EventBusEvents.NewFileToOpen(new File
@@ -327,6 +351,15 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Path of the file selected
String filePath = files.get(position).getAbsolutePath();
// Send the event that a file was selected
EventBus.getDefault().post(new EventBusEvents.NewFileToOpen(new File(filePath)));
}
//endregion
//region MENU
@@ -343,11 +376,6 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
ActionBar ab = getActionBar();
if (ab == null)
return false;
if (fileOpened && searchingText) {
MenuItem imReplace = menu.findItem(R.id.im_replace);
MenuItem imPrev = menu.findItem(R.id.im_previous_item);
@@ -379,6 +407,16 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
imUndo.setVisible(false);
imRedo.setVisible(false);
}
MenuItem item = (MenuItem) menu.findItem(R.id.im_share);
ShareActionProvider shareAction = (ShareActionProvider) MenuItemCompat
.getActionProvider(item);
File f = new File(sFilePath);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
shareIntent.setType("text/plain");
shareAction.setShareIntent(shareIntent);
}
return true;
@@ -388,7 +426,8 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
public boolean onOptionsItemSelected(MenuItem item) {
int i = item.getItemId();
if (mDrawerToggle.onOptionsItemSelected(item)) {
mDrawerLayout.closeDrawer(Gravity.RIGHT);
Toast.makeText(getBaseContext(), "drawer click", Toast.LENGTH_SHORT).show();
mDrawerLayout.closeDrawer(Gravity.END);
return true;
} else if (i == R.id.im_save) {
saveTheFile();
@@ -432,15 +471,6 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
//
}
} else if (i == R.id.im_share) {
File f = new File(sFilePath);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
shareIntent.setType("text/plain");
startActivity(Intent.createChooser(shareIntent, getString(R.string.share)));
} else if (i == R.id.im_info) {
FileInfoDialog dialogFrag = FileInfoDialog.newInstance(sFilePath);
@@ -543,25 +573,22 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
*/
private void setupNavigationDrawer() {
mDrawerLayout = (CustomDrawerLayout) findViewById(R.id.drawer_layout);
/* Action Bar */
final ActionBar ab = getActionBar();
/* Action Bar
final ActionBar ab = toolbar;
ab.setDisplayHomeAsUpEnabled(true);
ab.setHomeButtonEnabled(true);
ab.setHomeButtonEnabled(true);*/
/* Navigation drawer */
mDrawerToggle =
new ActionBarDrawerToggle(
this,
mDrawerLayout,
R.drawable.ic_drawer,
toolbar,
R.string.nome_app_turbo_editor,
R.string.nome_app_turbo_editor) {
/**
* {@inheritDoc}
*/
@Override
public void onDrawerOpened(View drawerView) {
invalidateOptionsMenu();
supportInvalidateOptionsMenu();
try {
closeKeyBoard();
} catch (NullPointerException e) {
@@ -569,17 +596,21 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
}
}
/**
* {@inheritDoc}
*/
@Override
public void onDrawerClosed(View view) {
invalidateOptionsMenu();
supportInvalidateOptionsMenu();
}
};
/* link the mDrawerToggle to the Drawer Layout */
mDrawerLayout.setDrawerListener(mDrawerToggle);
//mDrawerLayout.setFocusableInTouchMode(false);
listView = (ListView) findViewById(android.R.id.list);
listView.setEmptyView(findViewById(android.R.id.empty));
files = new LinkedList<>();
arrayAdapter = new AdapterDrawer(this, files, this);
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(this);
}
private void setupTextEditor() {
@@ -696,7 +727,7 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
}
public void updateTextSyntax() {
if (!PreferenceHelper.getSyntaxHiglight(getBaseContext()) || mEditor.hasSelection() ||
if (!PreferenceHelper.getSyntaxHighlight(getBaseContext()) || mEditor.hasSelection() ||
updateHandler == null || colorRunnable_duringEditing == null)
return;
@@ -704,6 +735,48 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
updateHandler.removeCallbacks(colorRunnable_duringScroll);
updateHandler.postDelayed(colorRunnable_duringEditing, SYNTAX_DELAY_MILLIS_LONG);
}
private void refreshList(){
refreshList(null, false, false);
}
private void refreshList(@Nullable String path, boolean add, boolean delete) {
int max_recent_files = 15;
if(add)
max_recent_files--;
// File paths saved in preferences
String[] savedPaths = PreferenceHelper.getSavedPaths(this);
int first_index_of_array = savedPaths.length > max_recent_files ? savedPaths.length - max_recent_files : 0;
savedPaths = ArrayUtils.subarray(savedPaths, first_index_of_array, savedPaths.length);
// File names for the list
files.clear();
// StringBuilder that will contain the file paths
StringBuilder sb = new StringBuilder();
// for cycle to convert paths to names
for(int i = 0; i < savedPaths.length; i++){
String savedPath = savedPaths[i];
File file = new File(savedPath);
// Check that the file exist
if (file.exists()) {
if(path != null && path.equals(savedPath) && delete)
continue;
else {
files.addFirst(file);
sb.append(savedPath).append(",");
}
}
}
if(path != null && !path.isEmpty() && add && !ArrayUtils.contains(savedPaths, path)) {
sb.append(path).append(",");
files.addFirst(new File(path));
}
// save list without empty or non existed files
PreferenceHelper.setSavedPaths(this, sb);
// Set adapter
arrayAdapter.notifyDataSetChanged();
}
//endregion
//region EVENTBUS
@@ -718,8 +791,8 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
new AsyncTask<Void, Void, Void>() {
File file;
String message;
File file = event.getFile();
String message = "";
String fileText;
String encoding;
ProgressDialog progressDialog;
@@ -729,8 +802,6 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
super.onPreExecute();
// Close the drawer
mDrawerLayout.closeDrawer(Gravity.START);
file = event.getFile();
message = "";
progressDialog = new ProgressDialog(BaseHomeActivity.this);
progressDialog.setMessage(getString(R.string.please_wait));
progressDialog.show();
@@ -742,7 +813,7 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
try {
boolean isRoot = false;
if (!file.exists()) {
if (!file.exists() || !file.isFile()) {
fileText = event.getFileText();
return null;
}
@@ -811,15 +882,20 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
String name = FilenameUtils.getName(sFilePath);
if (name.isEmpty())
getActionBar().setTitle("*");
getSupportActionBar().setTitle(R.string.new_file);
else
getActionBar().setTitle(name);
getSupportActionBar().setTitle(name);
if(!name.isEmpty()) {
refreshList(sFilePath, true, false);
}
}
}
}.execute();
EventBus.getDefault().removeStickyEvent(event);
}
public void onEvent(EventBusEvents.SavedAFile event) {
@@ -833,7 +909,8 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
} catch (NullPointerException e) {
e.printStackTrace();
}
// Get intent, action and MIME type
/*// Get intent, action and MIME type
final Intent intent = getIntent();
final String action = intent.getAction();
final String type = intent.getType();
@@ -847,7 +924,10 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
setResult(Activity.RESULT_OK, returnIntent);
// finish the activity
finish();
}
}*/
refreshList(event.getPath(), true, false);
arrayAdapter.selectView(event.getPath());
displayInterstitial();
}
@@ -862,7 +942,9 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
//
mDrawerLayout.openDrawer(Gravity.LEFT);
//
getActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
getSupportActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
//
supportInvalidateOptionsMenu();
// Replace fragment
hideTextEditor();
}
@@ -965,14 +1047,22 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
}
}
}
public void onEvent(EventBusEvents.AFileIsSelected event) {
arrayAdapter.selectView(event.getPath());
EventBus.getDefault().removeStickyEvent(event);
}
public void onEvent(EventBusEvents.ClosedAFile event) {
arrayAdapter.selectView("");
}
//endregion
//region Calls from the layout
public void OpenFile(View view) {
Intent subActivity = new Intent(BaseHomeActivity.this, SelectFileActivity.class);
subActivity.putExtra("action", SelectFileActivity.Actions.SelectFile);
AnimationUtils.startActivityWithScale(this, subActivity, true, SELECT_FILE_CODE, view);
}
@@ -1093,7 +1183,7 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
public void onScrollChanged(int l, int t, int oldl, int oldt) {
pageSystemButtons.updateVisibility(Math.abs(t) > 10);
if (!PreferenceHelper.getSyntaxHiglight(getBaseContext()) || (mEditor.hasSelection() &&
if (!PreferenceHelper.getSyntaxHighlight(getBaseContext()) || (mEditor.hasSelection() &&
!searchingText) || updateHandler == null || colorRunnable_duringScroll == null)
return;
@@ -1139,8 +1229,16 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
mEditor.canSaveFile = false;
if(openNewFile)
onEvent(new EventBusEvents.NewFileToOpen(new File(pathOfNewFile)));
else
onEvent(new EventBusEvents.CannotOpenAFile());
}
@Override
public void CancelItem(int position, boolean andCloseOpenedFile) {
refreshList(files.get(position).getAbsolutePath(), false, true);
if (andCloseOpenedFile)
EventBus.getDefault().post(new EventBusEvents.CannotOpenAFile());
}
//endregion
public static class Editor extends EditText {
@@ -1645,7 +1743,7 @@ public abstract class BaseHomeActivity extends Activity implements FindTextDialo
disableTextChangedListener();
modified = false;
if (PreferenceHelper.getSyntaxHiglight(getContext()))
if (PreferenceHelper.getSyntaxHighlight(getContext()))
setText(highlight(textToUpdate == null ? getEditableText() : Editable.Factory
.getInstance().newEditable(textToUpdate), textToUpdate != null));
else

View File

@@ -20,6 +20,7 @@
package sharedcode.turboeditor.activity;
import android.app.Activity;
import android.app.FragmentManager;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

View File

@@ -19,11 +19,13 @@
package sharedcode.turboeditor.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
@@ -32,7 +34,6 @@ import android.widget.AdapterView;
import android.widget.Filter;
import android.widget.ListView;
import android.widget.PopupMenu;
import android.widget.SearchView;
import android.widget.TextView;
import android.widget.Toast;
@@ -61,7 +62,7 @@ import sharedcode.turboeditor.util.AlphanumComparator;
import sharedcode.turboeditor.util.Build;
import sharedcode.turboeditor.util.ThemeUtils;
public class SelectFileActivity extends Activity implements SearchView.OnQueryTextListener, AdapterView.OnItemClickListener, EditTextDialog.EditDialogListener {
public class SelectFileActivity extends ActionBarActivity implements SearchView.OnQueryTextListener, AdapterView.OnItemClickListener, EditTextDialog.EditDialogListener {
private String currentFolder = PreferenceHelper.SD_CARD_ROOT;
private ListView listView;
private boolean wantAFile = true;
@@ -78,7 +79,10 @@ public class SelectFileActivity extends Activity implements SearchView.OnQueryTe
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select_file);
getActionBar().setDisplayHomeAsUpEnabled(true);
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
final Actions action = (Actions) getIntent().getExtras().getSerializable("action");
wantAFile = action == Actions.SelectFile;

View File

@@ -30,7 +30,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import sharedcode.turboeditor.R;
@@ -41,11 +41,11 @@ public class AdapterDrawer extends
// Layout Inflater
private final LayoutInflater inflater;
// List of file details
private final ArrayList<File> files;
private final List<File> files;
private String selectedPath = "";
public AdapterDrawer(Context context,
ArrayList<File> files,
List<File> files,
Callbacks callbacks) {
super(context, R.layout.item_file_list, files);
this.files = files;
@@ -80,13 +80,9 @@ public class AdapterDrawer extends
});
if (TextUtils.equals(selectedPath, files.get(position).getAbsolutePath())) {
hold.nameLabel.setTypeface(hold.nameLabel.getTypeface(), Typeface.BOLD);
convertView.setBackgroundColor((convertView.getResources()
.getColor(R.color.item_selected)));
hold.nameLabel.setTypeface(null, Typeface.BOLD);
} else {
hold.nameLabel.setTypeface(hold.nameLabel.getTypeface(), Typeface.NORMAL);
convertView.setBackgroundColor((convertView.getResources()
.getColor(android.R.color.transparent)));
hold.nameLabel.setTypeface(null, Typeface.NORMAL);
}
} else {
@@ -105,12 +101,8 @@ public class AdapterDrawer extends
if (TextUtils.equals(selectedPath, files.get(position).getAbsolutePath())) {
hold.nameLabel.setTypeface(null, Typeface.BOLD);
convertView.setBackgroundColor((convertView.getResources()
.getColor(R.color.item_selected)));
} else {
hold.nameLabel.setTypeface(null, Typeface.NORMAL);
convertView.setBackgroundColor((convertView.getResources()
.getColor(android.R.color.transparent)));
}
}
return convertView;

View File

@@ -32,6 +32,7 @@ import android.widget.EditText;
import android.widget.TextView;
import sharedcode.turboeditor.R;
import sharedcode.turboeditor.views.DialogHelper;
// ...
public class EditTextDialog extends DialogFragment implements TextView.OnEditorActionListener {
@@ -55,22 +56,25 @@ public class EditTextDialog extends DialogFragment implements TextView.OnEditorA
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Actions action = (Actions) getArguments().getSerializable("action");
final String hint;
final String title;
switch (action) {
case NewFile:
hint = getString(R.string.file);
title = getString(R.string.file);
break;
case NewFolder:
hint = getString(R.string.folder);
title = getString(R.string.folder);
break;
default:
hint = null;
title = null;
break;
}
final View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_fragment_edittext, null);
View view = new DialogHelper.Builder(getActivity())
.setTitle(title)
.setView(R.layout.dialog_fragment_edittext)
.createSkeletonView();
this.mEditText = (EditText) view.findViewById(android.R.id.edit);
this.mEditText.setHint(hint);
this.mEditText.setHint(R.string.name);
// Show soft keyboard automatically
this.mEditText.setText(getArguments().getString("hint"));

View File

@@ -23,12 +23,12 @@ import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.os.Bundle;
import android.support.v7.widget.SwitchCompat;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CompoundButton;
import android.widget.ListView;
import android.widget.Switch;
import org.mozilla.universalchardet.Constants;
@@ -77,7 +77,7 @@ public class EncodingDialog extends DialogFragment implements AdapterView.OnItem
final View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_encoding_list, null);
list = (ListView) view.findViewById(android.R.id.list);
Switch autoencoding = (Switch) view.findViewById(android.R.id.checkbox);
SwitchCompat autoencoding = (SwitchCompat) view.findViewById(android.R.id.checkbox);
autoencoding.setChecked(PreferenceHelper.getAutoEncoding(getActivity()));
autoencoding.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

View File

@@ -34,6 +34,7 @@ import java.util.Date;
import sharedcode.turboeditor.R;
import sharedcode.turboeditor.adapter.AdapterTwoItem;
import sharedcode.turboeditor.views.DialogHelper;
// ...
public class FileInfoDialog extends DialogFragment {
@@ -49,7 +50,12 @@ public class FileInfoDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_fragment_file_info, null);
View view = new DialogHelper.Builder(getActivity())
.setTitle(R.string.info)
.setView(R.layout.dialog_fragment_file_info)
.createSkeletonView();
//final View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_fragment_file_info, null);
ListView list = (ListView) view.findViewById(android.R.id.list);
File file = new File(getArguments().getString("filePath"));
@@ -76,8 +82,8 @@ public class FileInfoDialog extends DialogFragment {
list.setAdapter(new AdapterTwoItem(getActivity(), lines1, lines2));
return new AlertDialog.Builder(getActivity())
//.setTitle(title)
.setView(view)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {

View File

@@ -1,198 +0,0 @@
/*
* Copyright (C) 2014 Vlad Mihalachi
*
* This file is part of Turbo Editor.
*
* Turbo Editor is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Turbo Editor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package sharedcode.turboeditor.fragment;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import java.io.File;
import java.util.ArrayList;
import de.greenrobot.event.EventBus;
import sharedcode.turboeditor.R;
import sharedcode.turboeditor.adapter.AdapterDrawer;
import sharedcode.turboeditor.preferences.PreferenceHelper;
import sharedcode.turboeditor.util.EventBusEvents;
public class NavigationDrawer extends Fragment implements AdapterView.OnItemClickListener, AdapterDrawer.Callbacks {
private AdapterDrawer arrayAdapter;
private ArrayList<File> files;
private ListView listView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Our custom layout
View rootView = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
listView = (ListView) rootView.findViewById(android.R.id.list);
listView.setEmptyView(rootView.findViewById(android.R.id.empty));
files = new ArrayList<>();
arrayAdapter = new AdapterDrawer(getActivity(), files, this);
listView.setAdapter(arrayAdapter);
return rootView;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
listView.setOnItemClickListener(this);
}
@Override
public void onResume() {
super.onResume();
// Register the Event Bus for events
EventBus.getDefault().registerSticky(this);
// Refresh the list view
refreshList();
}
@Override
public void onPause() {
super.onPause();
// Unregister the Event Bus
EventBus.getDefault().unregister(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// File paths saved in preferences
String[] savedPaths = PreferenceHelper.getSavedPaths(getActivity());
// Path of the file selected
String filePath = savedPaths[position];
// Send the event that a file was selected
EventBus.getDefault().post(new EventBusEvents.NewFileToOpen(new File(filePath)));
}
public void onEvent(EventBusEvents.AFileIsSelected event) {
arrayAdapter.selectView(event.getPath());
EventBus.getDefault().removeStickyEvent(event);
}
public void onEvent(EventBusEvents.NewFileToOpen event) {
// File paths saved in preferences
String[] savedPaths = PreferenceHelper.getSavedPaths(getActivity());
String selectedPath = event.getFile().getAbsolutePath();
boolean pathAlreadyExist = false;
for (String savedPath : savedPaths) {
// We don't need to save the file path twice
if (savedPath.equals(selectedPath)) {
pathAlreadyExist = true;
}
}
// Add the path if it wasn't added before
if (!pathAlreadyExist)
addPath(selectedPath);
EventBus.getDefault().removeStickyEvent(event);
}
public void onEvent(EventBusEvents.SavedAFile event) {
if (addPath(event.getPath())) {
arrayAdapter.selectView(event.getPath());
}
}
public void onEvent(EventBusEvents.ClosedAFile event) {
arrayAdapter.selectView("");
}
private boolean addPath(String path) {
// File paths saved in preferences
String[] savedPaths = PreferenceHelper.getSavedPaths(getActivity());
// StringBuilder
StringBuilder sb = new StringBuilder();
boolean pathAlreadyExist = false;
for (String savedPath : savedPaths) {
// Append the file path and a comma
sb.append(savedPath).append(",");
if (savedPath.equals(path))
pathAlreadyExist = true;
}
// Append new path
if (!pathAlreadyExist)
sb.append(path);
// Put the string and commit
PreferenceHelper.setSavedPaths(getActivity(), sb);
// Update list
refreshList();
return pathAlreadyExist == false;
}
private void removePath(String path) {
// File paths saved in preferences
String[] savedPaths = PreferenceHelper.getSavedPaths(getActivity());
// StringBuilder
StringBuilder sb = new StringBuilder();
// for cycle
for (String savedPath : savedPaths) {
if (path.equals(savedPath)) continue;
sb.append(savedPath).append(",");
}
// Put the string and commit
PreferenceHelper.setSavedPaths(getActivity(), sb);
// Update list
refreshList();
}
private void refreshList() {
// File paths saved in preferences
String[] savedPaths = PreferenceHelper.getSavedPaths(getActivity());
// File names for the list
files.clear();
// StringBuilder that will contain the file paths
StringBuilder sb = new StringBuilder();
// for cycle to convert paths to names
for (String path : savedPaths) {
File file = new File(path);
// Check that the file exist
if (file.exists()) {
files.add(file);
sb.append(path).append(",");
}
}
// save list without empty or non existed files
PreferenceHelper.setSavedPaths(getActivity(), sb);
// Set adapter
arrayAdapter.notifyDataSetChanged();
}
@Override
public void CancelItem(int position, boolean andCloseOpenedFile) {
String[] savedPaths = PreferenceHelper.getSavedPaths(getActivity());
removePath(savedPaths[position]);
if (andCloseOpenedFile)
EventBus.getDefault().post(new EventBusEvents.CannotOpenAFile());
}
}

View File

@@ -1,211 +0,0 @@
/*
* Copyright (C) 2014 Vlad Mihalachi
*
* This file is part of Turbo Editor.
*
* Turbo Editor is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Turbo Editor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package sharedcode.turboeditor.preferences;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import java.util.ArrayList;
import java.util.List;
import de.greenrobot.event.EventBus;
import sharedcode.turboeditor.R;
import sharedcode.turboeditor.util.EventBusEvents;
import sharedcode.turboeditor.util.ThemeUtils;
/**
* A {@link PreferenceActivity} that presents a set of application settings. On
* handset devices, settings are presented as a single list. On tablets,
* settings are split by category, with category headers shown to the left of
* the list of settings.
* <p/>
* See <a href="http://developer.android.com/design/patterns/settings.html">
* Android Design: Settings</a> for design guidelines and the <a
* href="http://developer.android.com/guide/topics/ui/settings.html">Settings
* API Guide</a> for more information on developing a Settings UI.
*/
public class ExtraSettingsActivity extends PreferenceActivity {
/**
* Determines whether to always show the simplified settings UI, where
* settings are presented in a single list. When false, settings are shown
* as a master/detail two-pane view on tablets. When true, a single pane is
* shown on tablets.
*/
private static final boolean ALWAYS_SIMPLE_PREFS = true;
boolean encodingChanged = false,
themeChanged = false,
keyboardSuggestionsChanged = false;
/**
* A preference value change listener that updates the preference's summary
* to reflect its new value.
*/
private Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object value) {
String stringValue = value.toString();
if (preference instanceof ListPreference) {
// For list preferences, look up the correct display value in
// the preference's 'entries' list.
ListPreference listPreference = (ListPreference) preference;
int index = listPreference.findIndexOfValue(stringValue);
// Set the summary to reflect the new value.
preference.setSummary(
index >= 0
? listPreference.getEntries()[index]
: null);
}
switch (preference.getKey()) {
case "light_theme":
themeChanged = !themeChanged;
break;
case "suggestion_active":
keyboardSuggestionsChanged = !keyboardSuggestionsChanged;
break;
case "editor_encoding":
encodingChanged = true;
break;
}
return true;
}
};
/**
* Helper method to determine if the device has an extra-large screen. For
* example, 10" tablets are extra-large.
*/
private static boolean isXLargeTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
ThemeUtils.setTheme(this);
super.onCreate(savedInstanceState);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
setupSimplePreferencesScreen();
}
/**
* Shows the simplified settings UI if the device configuration if the
* device configuration dictates that a simplified, single-pane UI should be
* shown.
*/
private void setupSimplePreferencesScreen() {
if (!isSimplePreferences(this)) {
return;
}
// In the simplified UI, fragments are not used at all and we instead
// use the older PreferenceActivity APIs.
// Add 'general' preferences.
addPreferencesFromResource(R.xml.extra_options);
// Bind the summaries of EditText/List/Dialog/Ringtone preferences to
// their values. When their values change, their summaries are updated
// to reflect the new value, per the Android Design guidelines.
bindPreferenceSummaryToValue(findPreference("editor_encoding"));
String[] checkBoxPreferences = {"light_theme", "suggestion_active"};
for (String key : checkBoxPreferences) {
// Set the listener to watch for value changes.
findPreference(key).setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
}
}
/**
* {@inheritDoc}
*/
@Override
public boolean onIsMultiPane() {
return isXLargeTablet(this) && !isSimplePreferences(this);
}
/**
* Determines whether the simplified settings UI should be shown. This is
* true if this is forced via {@link #ALWAYS_SIMPLE_PREFS}, or the device
* doesn't have newer APIs like {@link PreferenceFragment}, or the device
* doesn't have an extra-large screen. In these cases, a single-pane
* "simplified" settings UI should be shown.
*/
private boolean isSimplePreferences(Context context) {
return ALWAYS_SIMPLE_PREFS
|| Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB
|| !isXLargeTablet(context);
}
@Override
protected void onDestroy() {
List<EventBusEvents.APreferenceValueWasChanged.Type> listOfChanges = new ArrayList<>();
if (themeChanged) {
listOfChanges.add(EventBusEvents.APreferenceValueWasChanged.Type.THEME_CHANGE);
}
if (keyboardSuggestionsChanged) {
listOfChanges.add(EventBusEvents.APreferenceValueWasChanged.Type.TEXT_SUGGESTIONS);
}
if (encodingChanged) {
listOfChanges.add(EventBusEvents.APreferenceValueWasChanged.Type.ENCODING);
}
if (listOfChanges.size() > 0) {
EventBus.getDefault().postSticky(new EventBusEvents.APreferenceValueWasChanged(listOfChanges));
}
super.onDestroy();
}
/**
* Binds a preference's summary to its value. More specifically, when the
* preference's value is changed, its summary (line of text below the
* preference title) is updated to reflect the value. The summary is also
* immediately updated upon calling this method. The exact display format is
* dependent on the type of preference.
*
* @see #sBindPreferenceSummaryToValueListener
*/
private void bindPreferenceSummaryToValue(Preference preference) {
// Set the listener to watch for value changes.
preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
// Trigger the listener immediately with the preference's
// current value.
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference,
PreferenceManager
.getDefaultSharedPreferences(preference.getContext())
.getString(preference.getKey(), ""));
}
}

View File

@@ -49,7 +49,7 @@ public final class PreferenceHelper {
return getPrefs(context).getBoolean("editor_line_numbers", true);
}
public static boolean getSyntaxHiglight(Context context) {
public static boolean getSyntaxHighlight(Context context) {
return getPrefs(context).getBoolean("editor_syntax_highlight", false);
}
@@ -105,7 +105,7 @@ public final class PreferenceHelper {
return getPrefs(context).getBoolean("ignore_back_button", false);
}
public static boolean getPageSystemEnabled(Context context) {
public static boolean getSplitText(Context context) {
return getPrefs(context).getBoolean("page_system_active", true);
}
@@ -122,7 +122,7 @@ public final class PreferenceHelper {
getEditor(context).putBoolean("editor_line_numbers", value).commit();
}
public static void setSyntaxHiglight(Context context, boolean value) {
public static void setSyntaxHighlight(Context context, boolean value) {
getEditor(context).putBoolean("editor_syntax_highlight", value).commit();
}
@@ -158,4 +158,31 @@ public final class PreferenceHelper {
getEditor(context).putBoolean("has_donated", value);
}
public static void setLightTheme(Context context, boolean value) {
getEditor(context).putBoolean("light_theme", value).commit();
}
public static void setSuggestionsActive(Context context, boolean value) {
getEditor(context).putBoolean("suggestion_active", value).commit();
}
public static void setAutoSave(Context context, boolean value) {
getEditor(context).putBoolean("auto_save", value).commit();
}
public static void setIgnoreBackButton(Context context, boolean value) {
getEditor(context).putBoolean("ignore_back_button", value).commit();
}
public static void setSplitText(Context context, boolean value) {
getEditor(context).putBoolean("page_system_active", value).commit();
}
public static void setSendErrorReport(Context context, boolean value) {
getEditor(context).putBoolean("ignore_back_button", value).commit();
}
public static void setEncoding(Context context, String value) {
getEditor(context).putString("editor_encoding", value).commit();
}
}

View File

@@ -20,32 +20,34 @@
package sharedcode.turboeditor.preferences;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.SwitchCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import de.greenrobot.event.EventBus;
import sharedcode.turboeditor.R;
import sharedcode.turboeditor.fragment.EncodingDialog;
import sharedcode.turboeditor.fragment.SeekbarDialog;
import sharedcode.turboeditor.util.AnimationUtils;
import sharedcode.turboeditor.util.ProCheckUtils;
import sharedcode.turboeditor.util.ViewUtils;
import sharedcode.turboeditor.views.DialogHelper;
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged;
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged.Type.ENCODING;
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged.Type.FONT_SIZE;
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged.Type.LINE_NUMERS;
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged.Type.MONOSPACE;
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged.Type.READ_ONLY;
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged.Type.SYNTAX;
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged.Type.TEXT_SUGGESTIONS;
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged.Type.THEME_CHANGE;
import static sharedcode.turboeditor.util.EventBusEvents.APreferenceValueWasChanged.Type.WRAP_CONTENT;
public class SettingsFragment extends Fragment implements SeekbarDialog.ISeekbarDialog {
public class SettingsFragment extends Fragment implements SeekbarDialog.ISeekbarDialog, EncodingDialog.DialogListener {
// Editor Variables
private boolean sLineNumbers;
@@ -54,71 +56,100 @@ public class SettingsFragment extends Fragment implements SeekbarDialog.ISeekbar
private boolean sUseMonospace;
private boolean sReadOnly;
private boolean sLightTheme;
private boolean sSuggestions;
private boolean sAutoSave;
private boolean sIgnoreBackButton;
private boolean sSplitText;
private boolean sErrorReports;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sUseMonospace = PreferenceHelper.getUseMonospace(getActivity());
sColorSyntax = PreferenceHelper.getSyntaxHiglight(getActivity());
sColorSyntax = PreferenceHelper.getSyntaxHighlight(getActivity());
sWrapContent = PreferenceHelper.getWrapContent(getActivity());
sLineNumbers = PreferenceHelper.getLineNumbers(getActivity());
sReadOnly = PreferenceHelper.getReadOnly(getActivity());
sLightTheme = PreferenceHelper.getLightTheme(getActivity());
sSuggestions = PreferenceHelper.getSuggestionActive(getActivity());
sAutoSave = PreferenceHelper.getAutoSave(getActivity());
sIgnoreBackButton = PreferenceHelper.getIgnoreBackButton(getActivity());
sSplitText = PreferenceHelper.getSplitText(getActivity());
sErrorReports = PreferenceHelper.getSendErrorReports(getActivity());
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Our custom layout
View rootView = inflater.inflate(R.layout.fragment_settings, container, false);
final CheckBox switchLineNumbers, switchSyntax, switchWrapContent, switchMonospace, switchReadOnly;
switchLineNumbers = (CheckBox) rootView.findViewById(R.id.switch_line_numbers);
switchSyntax = (CheckBox) rootView.findViewById(R.id.switch_syntax);
switchWrapContent = (CheckBox) rootView.findViewById(R.id.switch_wrap_content);
switchMonospace = (CheckBox) rootView.findViewById(R.id.switch_monospace);
switchReadOnly = (CheckBox) rootView.findViewById(R.id.switch_read_only);
final View rootView = inflater.inflate(R.layout.fragment_settings, container, false);
final SwitchCompat swLineNumbers, swSyntax, swWrapContent, swMonospace, swReadOnly;
final SwitchCompat swLightTheme, swSuggestions, swAutoSave, swIgnoreBackButton, swSplitText, swErrorReports;
swLineNumbers = (SwitchCompat) rootView.findViewById(R.id.switch_line_numbers);
swSyntax = (SwitchCompat) rootView.findViewById(R.id.switch_syntax);
swWrapContent = (SwitchCompat) rootView.findViewById(R.id.switch_wrap_content);
swMonospace = (SwitchCompat) rootView.findViewById(R.id.switch_monospace);
swReadOnly = (SwitchCompat) rootView.findViewById(R.id.switch_read_only);
switchLineNumbers.setChecked(sLineNumbers);
switchSyntax.setChecked(sColorSyntax);
switchWrapContent.setChecked(sWrapContent);
switchMonospace.setChecked(sUseMonospace);
switchReadOnly.setChecked(sReadOnly);
swLightTheme = (SwitchCompat) rootView.findViewById(R.id.switch_light_theme);
swSuggestions = (SwitchCompat) rootView.findViewById(R.id.switch_suggestions_active);
swAutoSave = (SwitchCompat) rootView.findViewById(R.id.switch_auto_save);
swIgnoreBackButton = (SwitchCompat) rootView.findViewById(R.id.switch_ignore_backbutton);
swSplitText = (SwitchCompat) rootView.findViewById(R.id.switch_page_system);
swErrorReports = (SwitchCompat) rootView.findViewById(R.id.switch_send_error_reports);
TextView fontSizeView, donateView, extraOptionsView;
swLineNumbers.setChecked(sLineNumbers);
swSyntax.setChecked(sColorSyntax);
swWrapContent.setChecked(sWrapContent);
swMonospace.setChecked(sUseMonospace);
swReadOnly.setChecked(sReadOnly);
swLightTheme.setChecked(sLightTheme);
swSuggestions.setChecked(sSuggestions);
swAutoSave.setChecked(sAutoSave);
swIgnoreBackButton.setChecked(sIgnoreBackButton);
swSplitText.setChecked(sSplitText);
swErrorReports.setChecked(sErrorReports);
TextView fontSizeView, encodingView, donateView, extraOptionsView;
fontSizeView = (TextView) rootView.findViewById(R.id.drawer_button_font_size);
encodingView = (TextView) rootView.findViewById(R.id.drawer_button_encoding);
extraOptionsView = (TextView) rootView.findViewById(R.id.drawer_button_extra_options);
donateView = (TextView) rootView.findViewById(R.id.drawer_button_go_pro);
if(ProCheckUtils.isPro(getActivity(), false))
ViewUtils.setVisible(donateView, false);
switchLineNumbers.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
swLineNumbers.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
sLineNumbers = isChecked;
PreferenceHelper.setLineNumbers(getActivity(), isChecked);
EventBus.getDefault().post(new APreferenceValueWasChanged(LINE_NUMERS));
}
});
switchSyntax.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
swSyntax.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
sColorSyntax = isChecked;
PreferenceHelper.setSyntaxHiglight(getActivity(), isChecked);
PreferenceHelper.setSyntaxHighlight(getActivity(), isChecked);
EventBus.getDefault().post(new APreferenceValueWasChanged(SYNTAX));
}
});
switchWrapContent.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
swWrapContent.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
sWrapContent = isChecked;
PreferenceHelper.setWrapContent(getActivity(), isChecked);
EventBus.getDefault().post(new APreferenceValueWasChanged(WRAP_CONTENT));
}
});
switchMonospace.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
swMonospace.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
sUseMonospace = isChecked;
@@ -128,10 +159,9 @@ public class SettingsFragment extends Fragment implements SeekbarDialog.ISeekbar
}
});
switchReadOnly.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
swReadOnly.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
sReadOnly = isChecked;
PreferenceHelper.setReadOnly(getActivity(), isChecked);
EventBus.getDefault().post(new APreferenceValueWasChanged(READ_ONLY));
}
@@ -151,11 +181,21 @@ public class SettingsFragment extends Fragment implements SeekbarDialog.ISeekbar
}
});
encodingView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EncodingDialog dialogFrag = EncodingDialog.newInstance();
dialogFrag.setTargetFragment(SettingsFragment.this, 0);
dialogFrag.show(getFragmentManager().beginTransaction(), "dialog");
}
});
extraOptionsView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AnimationUtils.startActivityWithScale(getActivity(), new Intent(getActivity(),
ExtraSettingsActivity.class), false, 0, v);
View otherOptions = rootView.findViewById(R.id.other_options);
boolean isVisible = otherOptions.getVisibility() == View.VISIBLE;
ViewUtils.setVisible(otherOptions, !isVisible);
}
});
@@ -166,6 +206,22 @@ public class SettingsFragment extends Fragment implements SeekbarDialog.ISeekbar
}
});
swLightTheme.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
PreferenceHelper.setLightTheme(getActivity(), isChecked);
EventBus.getDefault().post(new APreferenceValueWasChanged(THEME_CHANGE));
}
});
swSuggestions.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
PreferenceHelper.setSuggestionsActive(getActivity(), isChecked);
EventBus.getDefault().post(new APreferenceValueWasChanged(TEXT_SUGGESTIONS));
}
});
return rootView;
}
@@ -175,4 +231,10 @@ public class SettingsFragment extends Fragment implements SeekbarDialog.ISeekbar
EventBus.getDefault().post(new APreferenceValueWasChanged(FONT_SIZE));
}
@Override
public void onEncodingSelected(String result) {
PreferenceHelper.setEncoding(getActivity(), result);
EventBus.getDefault().post(new APreferenceValueWasChanged(ENCODING));
}
}

View File

@@ -43,7 +43,7 @@ public class PageSystem {
int to;
int indexOfReturn;
int textLenght = text.length();
boolean pageSystemEnabled = PreferenceHelper.getPageSystemEnabled(context);
boolean pageSystemEnabled = PreferenceHelper.getSplitText(context);
if (pageSystemEnabled && textLenght > maxLenghtInOnePage) {
while (i < textLenght && pageSystemEnabled) {
to = i + charForPage;

View File

@@ -87,7 +87,7 @@ public class EventBusEvents {
}
public enum Type {
FONT_SIZE, ENCODING, SYNTAX, WRAP_CONTENT, MONOSPACE, LINE_NUMERS, THEME_CHANGE, TEXT_SUGGESTIONS, READ_ONLY
FONT_SIZE, ENCODING, SYNTAX, WRAP_CONTENT, MONOSPACE, LINE_NUMERS, THEME_CHANGE, TEXT_SUGGESTIONS, READ_ONLY,
}
}

View File

@@ -35,6 +35,15 @@ public class ThemeUtils {
}
}
public static void setPreferenceTheme(Activity activity){
boolean light = PreferenceHelper.getLightTheme(activity);
if (light) {
activity.setTheme(R.style.PreferenceLight);
} else {
activity.setTheme(R.style.PreferenceDark);
}
}
public static void setWindowsBackground(Activity activity) {
boolean whiteTheme = PreferenceHelper.getLightTheme(activity);
if (whiteTheme) {

View File

@@ -24,7 +24,7 @@ import android.support.v4.widget.DrawerLayout;
import android.util.AttributeSet;
import android.view.KeyEvent;
public class CustomDrawerLayout extends DrawerLayout {
public class CustomDrawerLayout extends DrawerLayout{
public CustomDrawerLayout(Context context) {
super(context);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:width="12dp" />
<solid android:color="@android:color/transparent" />
</shape>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:height="4dp" />
<gradient
android:angle="270"
android:endColor="@android:color/transparent"
android:startColor="@color/gradient_start" />
</shape>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2014 Vlad Mihalachi
~
~ This file is part of Turbo Editor.
~
~ Turbo Editor is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ Turbo Editor is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
<item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_disabled_holo_dark" />
<item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/list_selector_disabled_holo_dark" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_dark" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_dark" />
<item android:state_focused="true" android:drawable="@color/navigation_drawer_button_inverted" />
<item android:drawable="@android:color/transparent" />
</selector>

View File

@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2014 Vlad Mihalachi
~
~ This file is part of Turbo Editor.
~
~ Turbo Editor is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ Turbo Editor is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
<item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_disabled_holo_dark" />
<item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/list_selector_disabled_holo_dark" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_dark" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_dark" />
<item android:state_focused="true" android:drawable="@color/navigation_drawer_button" />
<item android:drawable="@color/navigation_drawer_button" />
</selector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 B

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:width="16dp" />
<gradient
android:endColor="@android:color/transparent"
android:startColor="@color/gradient_light_start" />
</shape>

View File

@@ -17,17 +17,23 @@
~ You should have received a copy of the GNU General Public License
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/toolbar"/>
<sharedcode.turboeditor.views.CustomDrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="@dimen/text_size_mega_title"
android:fontFamily="sans-serif-light"
@@ -36,81 +42,311 @@
android:textColor="@android:color/secondary_text_dark"
android:id="@id/no_file_opened_messagge"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@id/text_editor"
android:visibility="gone">
<sharedcode.turboeditor.views.GoodScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:fillViewport="true"
android:id="@id/vertical_scroll"
android:background="@null">
<HorizontalScrollView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:scrollbars="horizontal"
android:fillViewport="true"
android:id="@id/horizontal_scroll"
android:background="@null">
android:layout_height="match_parent"
android:id="@id/text_editor"
android:visibility="gone">
<view
class="sharedcode.turboeditor.activity.BaseHomeActivity$Editor"
android:id="@id/editor"
<sharedcode.turboeditor.views.GoodScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:bufferType="spannable"
android:textCursorDrawable="@null"
android:cursorVisible="true"
android:gravity="top|start"
android:singleLine="false"
android:background="@null"
android:text=""
android:textIsSelectable="true" />
</HorizontalScrollView>
</sharedcode.turboeditor.views.GoodScrollView>
android:scrollbars="vertical"
android:fillViewport="true"
android:id="@id/vertical_scroll"
android:background="@null">
<com.faizmalkani.floatingactionbutton.FloatingActionButton
android:id="@+id/fabNext"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_gravity="bottom|right"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:visibility="invisible"/>
<HorizontalScrollView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:scrollbars="horizontal"
android:fillViewport="true"
android:id="@id/horizontal_scroll"
android:background="@null">
<com.faizmalkani.floatingactionbutton.FloatingActionButton
android:id="@+id/fabPrev"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_gravity="bottom|right"
android:layout_marginBottom="16dp"
android:layout_marginRight="100dp"
android:layout_marginEnd="90dp"
android:visibility="invisible"/>
<view
class="sharedcode.turboeditor.activity.BaseHomeActivity$Editor"
android:id="@id/editor"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:bufferType="spannable"
android:textCursorDrawable="@null"
android:cursorVisible="true"
android:gravity="top|start"
android:singleLine="false"
android:background="@null"
android:text=""
android:textIsSelectable="true" />
</HorizontalScrollView>
</sharedcode.turboeditor.views.GoodScrollView>
</FrameLayout>
<com.faizmalkani.floatingactionbutton.FloatingActionButton
android:id="@+id/fabNext"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_gravity="bottom|right"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:visibility="invisible"/>
<fragment android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:name="sharedcode.turboeditor.fragment.NavigationDrawer"
android:id="@id/drawer_files"
android:layout_gravity="start"
tools:layout="@layout/fragment_navigation_drawer"
/>
<com.faizmalkani.floatingactionbutton.FloatingActionButton
android:id="@+id/fabPrev"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_gravity="bottom|right"
android:layout_marginBottom="16dp"
android:layout_marginRight="100dp"
android:layout_marginEnd="90dp"
android:visibility="invisible"/>
</FrameLayout>
<RelativeLayout
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:background="@color/navigation_drawer_background_inverted"
android:id="@id/drawer_files"
android:layout_gravity="start"
>
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fadingEdge="none"
android:cacheColorHint="@android:color/transparent"
android:layout_above="@id/drawer_buttons"
android:divider="@color/divider"
android:listSelector="?selectableItemBackground"
android:choiceMode="singleChoice"
android:background="@null"
/>
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="@dimen/text_size_mega_title"
android:fontFamily="sans-serif-light"
android:text="@string/recent_files"
android:textColor="@android:color/secondary_text_dark"
android:layout_above="@id/drawer_buttons" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="192dp"
android:id="@id/drawer_buttons"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<View
android:background="@color/divider_inverted"
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
<TextView
android:layout_width="match_parent"
android:layout_height="48dp"
android:text="@string/new_file"
android:gravity="center_vertical"
android:paddingStart="20dp"
android:paddingLeft="20dp"
android:paddingEnd="20dp"
android:paddingRight="20dp"
android:textSize="12sp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"
android:clickable="true"
android:onClick="CreateFile"
android:background="?selectableItemBackground"/>
<TextView
android:layout_width="match_parent"
android:layout_height="48dp"
android:text="@string/open_a_file"
android:gravity="center_vertical"
android:paddingStart="20dp"
android:paddingLeft="20dp"
android:paddingEnd="20dp"
android:paddingRight="20dp"
android:textSize="12sp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"
android:clickable="true"
android:onClick="OpenFile"
android:background="?selectableItemBackground"/>
<TextView
android:layout_width="match_parent"
android:layout_height="48dp"
android:text="@string/preferenze"
android:gravity="center_vertical"
android:paddingStart="20dp"
android:paddingLeft="20dp"
android:paddingEnd="20dp"
android:paddingRight="20dp"
android:textSize="12sp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"
android:clickable="true"
android:onClick="OpenSettings"
android:background="?selectableItemBackground"/>
<TextView
android:layout_width="match_parent"
android:layout_height="48dp"
android:text="@string/info"
android:gravity="center_vertical"
android:paddingStart="20dp"
android:paddingLeft="20dp"
android:paddingEnd="20dp"
android:paddingRight="20dp"
android:textSize="12sp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"
android:clickable="true"
android:onClick="OpenInfo"
android:background="?selectableItemBackground"/>
<!--<RelativeLayout
android:layout_width="match_parent"
android:layout_height="52dp"
android:orientation="horizontal"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:clickable="true"
android:gravity="center_vertical"
android:onClick="OpenFile"
android:background="@drawable/item_background_holo_dark"
android:layout_toLeftOf="@+id/ic_add_dark"
>
<ImageView
android:layout_width="35dp"
android:layout_height="35dp"
android:src="@drawable/ic_file_dark"
android:paddingStart="16dp"
android:paddingLeft="16dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/open_a_file"
android:gravity="center_vertical"
android:paddingStart="20dp"
android:paddingLeft="20dp"
android:paddingEnd="20dp"
android:paddingRight="20dp"
android:textSize="12sp"
android:textAllCaps="true"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
</LinearLayout>
<View
android:background="@color/divider_inverted"
android:layout_width="@dimen/line_dimension"
android:layout_height="match_parent"
android:layout_toLeftOf="@id/ic_add_dark"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"/>
<ImageView
android:id="@+id/ic_add_dark"
android:layout_width="64dp"
android:layout_height="match_parent"
android:src="@drawable/ic_add_dark"
android:padding="14dp"
android:layout_alignParentRight="true"
android:clickable="true"
android:onClick="CreateFile"
android:background="@drawable/item_background_holo_dark"
/>
</RelativeLayout>
<View
android:background="@color/divider_inverted"
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="52dp"
android:orientation="horizontal"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:clickable="true"
android:gravity="center_vertical"
android:onClick="OpenSettings"
android:background="@drawable/item_background_holo_dark"
android:layout_toLeftOf="@+id/ic_info_dark"
>
<ImageView
android:layout_width="35dp"
android:layout_height="35dp"
android:src="@drawable/ic_settings_dark"
android:paddingStart="16dp"
android:paddingLeft="16dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/preferenze"
android:gravity="center_vertical"
android:paddingStart="20dp"
android:paddingLeft="20dp"
android:paddingEnd="20dp"
android:paddingRight="20dp"
android:textSize="12sp"
android:textAllCaps="true"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
</LinearLayout>
<View
android:background="@color/divider_inverted"
android:layout_width="@dimen/line_dimension"
android:layout_height="match_parent"
android:layout_toLeftOf="@id/ic_info_dark"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"/>
<ImageView
android:id="@+id/ic_info_dark"
android:layout_width="64dp"
android:layout_height="match_parent"
android:src="@drawable/ic_info_dark"
android:padding="14dp"
android:layout_alignParentRight="true"
android:clickable="true"
android:onClick="OpenInfo"
android:background="@drawable/item_background_holo_dark"
/>
</RelativeLayout>-->
</LinearLayout>
</RelativeLayout>
<fragment android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:name="sharedcode.turboeditor.preferences.SettingsFragment"
android:id="@id/drawer_settings"
android:layout_gravity="end"
tools:layout="@layout/fragment_navigation_drawer"/>
android:layout_gravity="end"/>
</sharedcode.turboeditor.views.CustomDrawerLayout>
</LinearLayout>

View File

@@ -18,27 +18,43 @@
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:cacheColorHint="@null"
android:id="@android:id/list"
android:layout_width="match_parent"
<LinearLayout
android:layout_height="match_parent"
android:smoothScrollbar="true"/>
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<com.faizmalkani.floatingactionbutton.FloatingActionButton
android:id="@+id/fabbutton"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_gravity="bottom|right"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"/>
<include layout="@layout/toolbar"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:cacheColorHint="@null"
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:smoothScrollbar="true"
android:listSelector="?selectableItemBackground"
android:divider="@null"
android:layout_marginLeft="@dimen/list_horizontal_margin"
android:layout_marginRight="@dimen/list_horizontal_margin"
android:layout_marginStart="@dimen/list_horizontal_margin"
android:layout_marginEnd="@dimen/list_horizontal_margin"/>
<com.faizmalkani.floatingactionbutton.FloatingActionButton
android:id="@+id/fabbutton"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_gravity="bottom|right"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"/>
</FrameLayout>
</LinearLayout>

View File

@@ -24,7 +24,7 @@
android:layout_gravity="center"
android:orientation="vertical">
<Switch
<android.support.v7.widget.SwitchCompat
android:id="@android:id/checkbox"
android:layout_width="match_parent"
android:layout_height="56dp"
@@ -34,7 +34,7 @@
android:paddingRight="16dp"
android:text="@string/enable_autoencoding"
android:textSize="12sp"
android:textColor="@color/navigation_drawer_button_text_color"
android:textColor="@color/textColor"
android:textAllCaps="true"/>
<ListView

View File

@@ -28,10 +28,10 @@
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:drawablePadding="8dp"

View File

@@ -1,192 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2014 Vlad Mihalachi
~
~ This file is part of Turbo Editor.
~
~ Turbo Editor is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ Turbo Editor is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/navigation_drawer_background_inverted"
>
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fadingEdge="none"
android:cacheColorHint="@android:color/transparent"
android:layout_above="@id/drawer_buttons"
android:divider="@color/divider"
android:listSelector="@android:color/transparent"
android:choiceMode="singleChoice"
android:background="@null"
/>
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="@dimen/text_size_mega_title"
android:fontFamily="sans-serif-light"
android:text="@string/recent_files"
android:textColor="@android:color/secondary_text_dark"
android:layout_above="@id/drawer_buttons" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="104dp"
android:id="@id/drawer_buttons"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<View
android:background="@color/divider_inverted"
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="52dp"
android:orientation="horizontal"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:clickable="true"
android:gravity="center_vertical"
android:onClick="OpenFile"
android:background="@drawable/item_background_holo_dark"
android:layout_toLeftOf="@+id/ic_add_dark"
>
<ImageView
android:layout_width="35dp"
android:layout_height="35dp"
android:src="@drawable/ic_file_dark"
android:paddingStart="16dp"
android:paddingLeft="16dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/open_a_file"
android:gravity="center_vertical"
android:paddingStart="20dp"
android:paddingLeft="20dp"
android:paddingEnd="20dp"
android:paddingRight="20dp"
android:textSize="12sp"
android:textAllCaps="true"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
</LinearLayout>
<View
android:background="@color/divider_inverted"
android:layout_width="@dimen/line_dimension"
android:layout_height="match_parent"
android:layout_toLeftOf="@id/ic_add_dark"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"/>
<ImageView
android:id="@+id/ic_add_dark"
android:layout_width="64dp"
android:layout_height="match_parent"
android:src="@drawable/ic_add_dark"
android:padding="14dp"
android:layout_alignParentRight="true"
android:clickable="true"
android:onClick="CreateFile"
android:background="@drawable/item_background_holo_dark"
/>
</RelativeLayout>
<View
android:background="@color/divider_inverted"
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="52dp"
android:orientation="horizontal"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:clickable="true"
android:gravity="center_vertical"
android:onClick="OpenSettings"
android:background="@drawable/item_background_holo_dark"
android:layout_toLeftOf="@+id/ic_info_dark"
>
<ImageView
android:layout_width="35dp"
android:layout_height="35dp"
android:src="@drawable/ic_settings_dark"
android:paddingStart="16dp"
android:paddingLeft="16dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/preferenze"
android:gravity="center_vertical"
android:paddingStart="20dp"
android:paddingLeft="20dp"
android:paddingEnd="20dp"
android:paddingRight="20dp"
android:textSize="12sp"
android:textAllCaps="true"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
</LinearLayout>
<View
android:background="@color/divider_inverted"
android:layout_width="@dimen/line_dimension"
android:layout_height="match_parent"
android:layout_toLeftOf="@id/ic_info_dark"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"/>
<ImageView
android:id="@+id/ic_info_dark"
android:layout_width="64dp"
android:layout_height="match_parent"
android:src="@drawable/ic_info_dark"
android:padding="14dp"
android:layout_alignParentRight="true"
android:clickable="true"
android:onClick="OpenInfo"
android:background="@drawable/item_background_holo_dark"
/>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>

View File

@@ -23,7 +23,8 @@
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/navigation_drawer_background_inverted">
android:background="@color/navigation_drawer_background_inverted"
android:paddingTop="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -36,29 +37,22 @@
android:layout_width="match_parent"
android:layout_height="72dp"
android:text="@string/donate"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:gravity="center_vertical"
android:textSize="12sp"
android:textAllCaps="true"
android:clickable="true"
android:background="@drawable/item_background_holo_dark"
android:background="?selectableItemBackground"
android:textColor="@color/indigo"/>
<View
android:background="@color/divider_inverted"
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
<CheckBox android:button="@null" android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
<android.support.v7.widget.SwitchCompat
android:gravity="center_vertical"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/line_numbers"
android:textAllCaps="true"
android:textSize="12sp"
android:id="@id/switch_line_numbers"
android:layout_gravity="center_horizontal"
@@ -69,18 +63,12 @@
android:textColor="@color/navigation_drawer_button_text_color_inverted"
/>
<View
android:background="@color/divider_inverted"
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
<CheckBox android:button="@null" android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
<android.support.v7.widget.SwitchCompat
android:gravity="center_vertical"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/menu_syntax_highlight"
android:textAllCaps="true"
android:textSize="12sp"
android:id="@id/switch_syntax"
android:layout_gravity="center_horizontal"
@@ -90,18 +78,12 @@
android:paddingRight="16dp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<View
android:background="@color/divider_inverted"
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
<CheckBox android:button="@null" android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
<android.support.v7.widget.SwitchCompat
android:gravity="center_vertical"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/wrap_content"
android:textAllCaps="true"
android:textSize="12sp"
android:id="@id/switch_wrap_content"
android:layout_gravity="center_horizontal"
@@ -111,19 +93,12 @@
android:paddingRight="16dp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<View
android:background="@color/divider_inverted"
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
<CheckBox android:button="@null" android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
<android.support.v7.widget.SwitchCompat
android:gravity="center_vertical"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/use_monospace"
android:textAllCaps="true"
android:textSize="12sp"
android:id="@id/switch_monospace"
android:layout_gravity="center_horizontal"
@@ -133,18 +108,12 @@
android:paddingRight="16dp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<View
android:background="@color/divider_inverted"
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
<CheckBox android:button="@null" android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
<android.support.v7.widget.SwitchCompat
android:gravity="center_vertical"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/read_only"
android:textAllCaps="true"
android:textSize="12sp"
android:id="@id/switch_read_only"
android:layout_gravity="center_horizontal"
@@ -154,55 +123,145 @@
android:paddingRight="16dp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<View
android:background="@color/divider_inverted"
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
<TextView
<TextView
android:id="@id/drawer_button_font_size"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/font_size"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:gravity="center_vertical"
android:textSize="12sp"
android:textAllCaps="true"
android:clickable="true"
android:background="@drawable/item_background_holo_dark"
android:background="?selectableItemBackground"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<View
android:background="@color/divider_inverted"
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
<TextView
android:id="@id/drawer_button_extra_options"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/extra_options"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:gravity="center_vertical"
android:textSize="12sp"
android:textAllCaps="true"
android:clickable="true"
android:background="@drawable/item_background_holo_dark"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
android:background="?selectableItemBackground"
android:textColor="@color/navigation_drawer_button_text_color_inverted"
android:drawableRight="@drawable/abc_spinner_mtrl_am_alpha"/>
<View
android:background="@color/divider_inverted"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/line_dimension"/>
android:layout_height="match_parent"
android:id="@+id/other_options"
android:visibility="gone"
android:orientation="vertical">
<android.support.v7.widget.SwitchCompat
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/light_theme"
android:textSize="12sp"
android:id="@id/switch_light_theme"
android:layout_gravity="center_horizontal"
android:paddingEnd="16dp"
android:paddingStart="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<android.support.v7.widget.SwitchCompat
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/keyboard_suggestions_and_swipe"
android:textSize="12sp"
android:id="@id/switch_suggestions_active"
android:layout_gravity="center_horizontal"
android:paddingEnd="16dp"
android:paddingStart="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<android.support.v7.widget.SwitchCompat
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/auto_save"
android:textSize="12sp"
android:id="@id/switch_auto_save"
android:layout_gravity="center_horizontal"
android:paddingEnd="16dp"
android:paddingStart="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<TextView
android:id="@id/drawer_button_encoding"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/codifica"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:gravity="center_vertical"
android:textSize="12sp"
android:clickable="true"
android:background="?selectableItemBackground"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<android.support.v7.widget.SwitchCompat
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/ignore_back_button"
android:textSize="12sp"
android:id="@id/switch_ignore_backbutton"
android:layout_gravity="center_horizontal"
android:paddingEnd="16dp"
android:paddingStart="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<android.support.v7.widget.SwitchCompat
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/split_text_if_too_long"
android:textSize="12sp"
android:id="@id/switch_page_system"
android:layout_gravity="center_horizontal"
android:paddingEnd="16dp"
android:paddingStart="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<android.support.v7.widget.SwitchCompat
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="@string/send_error_reports"
android:textSize="12sp"
android:id="@id/switch_send_error_reports"
android:layout_gravity="center_horizontal"
android:paddingEnd="16dp"
android:paddingStart="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
</LinearLayout>
</LinearLayout>
</ScrollView>

View File

@@ -18,7 +18,7 @@
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<LinearLayout
android:layout_height="72dp"
android:layout_height="64dp"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
@@ -29,20 +29,20 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:textSize="18sp"
android:paddingStart="@dimen/item_drawer_list_padding"
android:paddingEnd="@dimen/item_drawer_list_padding"
android:paddingLeft="@dimen/item_drawer_list_padding"
android:paddingRight="@dimen/item_drawer_list_padding"
android:textSize="16sp"
android:paddingStart="16dp"
android:paddingEnd="8dp"
android:paddingLeft="16dp"
android:paddingRight="8dp"
android:maxLines="1"
android:textColor="@color/navigation_drawer_button_text_color_inverted"
android:ellipsize="end"/>
android:textColor="@color/navigation_drawer_button_text_color_inverted"/>
<ImageView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="30dp"
android:layout_height="match_parent"
android:id="@id/button_remove_from_list"
android:src="@drawable/ic_close_dark"/>
android:src="@drawable/ic_close_dark"
android:padding="15dp"/>
</LinearLayout>

View File

@@ -18,7 +18,14 @@
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_pressed_holo_dark" />
<item android:drawable="@drawable/list_longpressed_holo_dark" />
</transition>
<android.support.v7.widget.Toolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_awesome_toolbar"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

View File

@@ -22,25 +22,25 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@id/im_select_folder"
android:showAsAction="ifRoom"
app:showAsAction="ifRoom"
android:title="@string/seleziona">
</item>
<item
android:id="@id/im_set_as_working_folder"
android:showAsAction="ifRoom"
app:showAsAction="ifRoom"
android:icon="@drawable/ic_action_bookmark_outline"
android:title="@string/set_as_working_folder">
</item>
<item
android:id="@id/im_is_working_folder"
android:showAsAction="ifRoom"
app:showAsAction="ifRoom"
android:icon="@drawable/ic_action_bookmark"
android:title="@string/is_the_working_folder">
</item>
<item
android:id="@id/im_search"
android:actionViewClass="android.widget.SearchView"
android:showAsAction="ifRoom|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView"
android:icon="@drawable/ic_action_search"
android:title="@string/find">
</item>

View File

@@ -22,44 +22,45 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@id/im_save"
android:showAsAction="ifRoom"
app:showAsAction="ifRoom"
android:icon="@drawable/ic_action_save"
android:title="@string/salva"/>
<item
android:id="@id/im_undo"
android:showAsAction="ifRoom"
app:showAsAction="ifRoom"
android:icon="@drawable/ic_action_undo"
android:title="@string/testo_indietro"
/>
<item
android:id="@id/im_redo"
android:showAsAction="ifRoom"
app:showAsAction="ifRoom"
android:icon="@drawable/ic_action_redo"
android:title="@string/testo_rifai"
/>
<item
android:id="@id/im_search"
android:showAsAction="never"
app:showAsAction="never"
android:title="@string/find"
/>
<item
android:id="@id/im_goto_line"
android:showAsAction="never"
app:showAsAction="never"
android:title="@string/goto_line"
/>
<item
android:id="@id/im_view_it_on_browser"
android:showAsAction="never"
app:showAsAction="never"
android:title="@string/view_it_on_the_web"
/>
<item
android:id="@id/im_share"
android:showAsAction="never"
app:showAsAction="never"
android:title="@string/share"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
/>
<item
android:id="@id/im_info"
android:showAsAction="never"
app:showAsAction="never"
android:title="@string/info"
/>

View File

@@ -30,29 +30,29 @@
</item>-->
<item
android:id="@id/im_cancel"
android:showAsAction="always"
app:showAsAction="always"
android:title="@android:string/cancel">
</item>
<item
android:id="@id/im_previous_item"
android:showAsAction="always"
app:showAsAction="always"
android:title="@string/previous">
</item>
<item
android:id="@id/im_next_item"
android:showAsAction="always"
app:showAsAction="always"
android:title="@string/next">
</item>
<item
android:id="@id/im_replace"
android:showAsAction="always"
app:showAsAction="always"
android:title="@string/replace">
</item>
<!--<item
android:id="@id/im_cancel"
android:icon="@drawable/ic_action_close"
android:title="@android:string/cancel"
android:title="@app:tring/cancel"
app:showAsAction="always">
</item>-->
</menu>

View File

@@ -24,10 +24,10 @@
<item
android:id="@id/im_new_file"
android:title="@string/file"
android:showAsAction="ifRoom"/>
app:showAsAction="ifRoom"/>
<item
android:id="@id/im_new_folder"
android:title="@string/folder"
android:showAsAction="ifRoom"/>
app:showAsAction="ifRoom"/>
</menu>

View File

@@ -20,11 +20,12 @@
<changelog bulletedList="true">
<changelogversion versionName="1.13" changeDate="Oct 17, 2014">
<changelogversion versionName="1.13" changeDate="Oct 25, 2014">
<changelogtext>Turbo Editor is a free and open source app. Now you can show your appreciation and support development by donating :)</changelogtext>
<changelogtext>New visual changes</changelogtext>
<changelogtext>New visual changes to make the app more "Material"</changelogtext>
<changelogtext>New save dialog when you are about to close a file</changelogtext>
<changelogtext>Many enchantments and fixes</changelogtext>
<changelogtext>Have feedback? Please use xda or the email. Thanks!</changelogtext>
</changelogversion>
<changelogversion versionName="1.12" changeDate="Oct 9, 2014">

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">فتح</string>
<string name="file_saved_with_success">تم حفظ الملف % 1$ s مع النجاح!</string>
<string name="open_a_file">فتح ملف</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Obre</string>
<string name="file_saved_with_success">L\'arxiu %1$s s\'ha desat amb èxit!</string>
<string name="open_a_file">Obre un arxiu</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Otevřít</string>
<string name="file_saved_with_success">Soubor %1$s byl úspěšně uložen!</string>
<string name="open_a_file">Otevřít soubor</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Öffnen</string>
<string name="file_saved_with_success">Die Datei %1$s wurde erfolgreich gespeichert!</string>
<string name="open_a_file">Datei öffnen</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Άνοιγμα</string>
<string name="file_saved_with_success">Το αρχείο %1$s αποθηκεύτηκε με επιτυχία!</string>
<string name="open_a_file">Άνοιγμα αρχείου</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Abrir</string>
<string name="file_saved_with_success">¡El archivo %1$s fue guardado exitosamente!</string>
<string name="open_a_file">Abrir archivo</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Avaa</string>
<string name="file_saved_with_success">Tiedosto \'%1$s\' on tallennettu onnistuneesti!</string>
<string name="open_a_file">Avaa tiedosto</string>
<string name="no">Ei</string>
<string name="new_file">Uusi tiedosto</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -31,7 +31,7 @@
<string name="folder">Dossier </string>
<string name="light_theme">Thème clair</string>
<string name="goto_line">Aller à la ligne</string>
<string name="goto_page">Go to Page&#8230;</string>
<string name="goto_page">Aller à la Page&#8230;</string>
<string name="find">Rechercher</string>
<string name="replace">Remplacer</string>
<string name="share">Partager</string>
@@ -71,4 +71,6 @@
<string name="open">Ouvrir</string>
<string name="file_saved_with_success">Le fichier %1$s a été enregistré avec succès !</string>
<string name="open_a_file">Ouvrir un fichier</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Megnyit</string>
<string name="file_saved_with_success">A(z) %1$s fájl sikeresen mentve!</string>
<string name="open_a_file">Fájl megnyitása</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Buka</string>
<string name="file_saved_with_success">File %1$s berhasil disimpan!</string>
<string name="open_a_file">Buka file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Apri</string>
<string name="file_saved_with_success">Il file %1$s è stato salvato con successo!</string>
<string name="open_a_file">Apri un file</string>
<string name="no">No</string>
<string name="new_file">Nuovo file</string>
</resources>

View File

@@ -21,11 +21,11 @@
<resources>
<string name="close">Chiudi</string>
<string name="about_action">Informazioni</string>
<string name="about_message"><![CDATA[Turbo Editor è un'app gratuita ed <a href="http://github.com/vmihalachi/turbo-editor">open source</a>.
<string name="about_message"><![CDATA[Turbo Editor e un\'app gratuita ed <a href="http://github.com/vmihalachi/turbo-editor">open source</a>.
Copyright 2013-2014 <a href="https://plus.google.com/+VladMihalachi">Vlad Mihalachi</a>. Tutti i diritti riservati.<br/>
<br/>
Grazie mille a tutti quelli che
<a href="http://crowdin.net/project/turbo-client">hanno aiutato con le traduzioni</a> o hanno donato</a>.<br/>
<br/>
Se vuoi inviare consigli qui c'e il link al <a href="http://forum.xda-developers.com/android/apps-games/app-turbo-editor-text-editor-t2832016">XDA Thread</a>]]></string>
Se vuoi inviare consigli qui c\'e il link al <a href="http://forum.xda-developers.com/android/apps-games/app-turbo-editor-text-editor-t2832016">XDA Thread</a>]]></string>
</resources>

View File

@@ -21,7 +21,7 @@
<resources>
<string name="donation_action">Dona</string>
<string name="donation_title">Fai una donazione allo sviluppatore</string>
<string name="donation_info"><![CDATA[Turbo Editor è un'app gratuita e <a href="http://github.com/vmihalachi/turbo-editor/">open source</a>.
<string name="donation_info"><![CDATA[Turbo Editor è un\'app gratuita e <a href="http://github.com/vmihalachi/turbo-editor/">open source</a>.
Puoi mostrare il tuo apprezzamento e aiutare nello sviluppo donando:]]></string>
<string name="donation_item_bought">Hai già effettuato la donazione di questo elemento.</string>
<string name="donation_2">Un gelato</string>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -31,7 +31,7 @@
<string name="folder">フォルダー</string>
<string name="light_theme">ライトテーマ</string>
<string name="goto_line">行へ移動</string>
<string name="goto_page">Go to Page&#8230;</string>
<string name="goto_page">ページを移動&#8230;</string>
<string name="find">検索</string>
<string name="replace">置換</string>
<string name="share">共有</string>
@@ -71,4 +71,6 @@
<string name="open">開く</string>
<string name="file_saved_with_success">ファイル %1$s は保存されました!</string>
<string name="open_a_file">ファイルを開く</string>
<string name="no">いいえ</string>
<string name="new_file">新しいファイル</string>
</resources>

View File

@@ -19,16 +19,15 @@
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<resources>
<string name="close">Close</string>
<string name="about_action">About</string>
<string name="close">閉じる</string>
<string name="about_action">アプリについて</string>
<string name="about_message"><![CDATA[
Turbo Editor is a free and <a href="http://github.com/vmihalachi/turbo-editor">open source</a> app.
Turbo Editor はフリーで <a href="http://github.com/vmihalachi/turbo-editor">オープン ソース</a> のアプリです.
Copyright 2013-2014 <a href="https://plus.google.com/+VladMihalachi">Vlad Mihalachi</a>. All Rights Reserved.<br/>
<br/>
Many thanks to all who
<a href="http://crowdin.net/project/turbo-client">helped with translations</a> or
donated to me</a>.<br/>
<a href="http://crowdin.net/project/turbo-client">翻訳にご協力いただいた</a> あるいは
私に寄付をいただいた</a> すべての方に非常に感謝いたします.<br/>
<br/>
If you want to send feedback here is the <a href="http://forum.xda-developers.com/android/apps-games/app-turbo-editor-text-editor-t2832016">XDA thread</a>
フィードバックを送りたい方は、こちら <a href="http://forum.xda-developers.com/android/apps-games/app-turbo-editor-text-editor-t2832016">XDA スレッド</a>
]]></string>
</resources>

View File

@@ -20,18 +20,18 @@
-->
<resources>
<string name="donation_action">寄付</string>
<string name="donation_title">Donate to developer</string>
<string name="donation_title">開発者に寄付</string>
<string name="donation_info"><![CDATA[
Turbo Editor is a free and <a href="http://github.com/vmihalachi/turbo-editor/">open source</a> app.
You can show your appreciation and support development by donating:
Turbo Editor はフリーで <a href="http://github.com/vmihalachi/turbo-editor/">オープン ソース</a> のアプリです.
あなたの寄付によって感謝の気持ちを表したり、開発をサポートすることができます:
]]></string>
<string name="donation_item_bought">You\'ve donated for this item already.</string>
<string name="donation_2">An ice cream</string>
<string name="donation_4">Cup of coffee</string>
<string name="donation_10">Electricity bills</string>
<string name="donation_20">The right pillow</string>
<string name="donation_50">Solid-state drive</string>
<string name="donation_99">Sound system</string>
<string name="donation_error_iab_setup">Failed to setup in-app-billing service!</string>
<string name="donation_no_responsibility">Notice that Google is not responsible for that payments method.</string>
<string name="donation_item_bought">既にこのアイテムに寄付しています。</string>
<string name="donation_2">アイスクリーム</string>
<string name="donation_4">コーヒー1杯</string>
<string name="donation_10">電気代</string>
<string name="donation_20">ちょうど良い枕</string>
<string name="donation_50">SSD</string>
<string name="donation_99">サウンドシステム</string>
<string name="donation_error_iab_setup">アプリ内課金サービスのセットアップに失敗しました。</string>
<string name="donation_no_responsibility">この決済についてはGoogleが責任を負わないことに注意してください。</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">열기</string>
<string name="file_saved_with_success">파일 %1$s 저장 완료!</string>
<string name="open_a_file">파일 열기</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Openen</string>
<string name="file_saved_with_success">Het bestand %1$s is met succes opgeslagen!</string>
<string name="open_a_file">Open een bestand</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Open</string>
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
<string name="open_a_file">Open a file</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Otwórz</string>
<string name="file_saved_with_success">Plik %1$s został pomyślnie zapisany!</string>
<string name="open_a_file">Otwórz plik</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -71,4 +71,6 @@
<string name="open">Abrir</string>
<string name="file_saved_with_success">O arquivo %1$s foi salvo com sucesso!</string>
<string name="open_a_file">Abrir um arquivo</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -31,7 +31,7 @@
<string name="folder">Pasta</string>
<string name="light_theme">Tema claro</string>
<string name="goto_line">Ir para a linha</string>
<string name="goto_page">Go to Page&#8230;</string>
<string name="goto_page">Ir para a página&#8230;</string>
<string name="find">Localizar</string>
<string name="replace">Substituir</string>
<string name="share">Partilhar</string>
@@ -71,4 +71,6 @@
<string name="open">Abrir</string>
<string name="file_saved_with_success">O ficheiro %1$s foi gravado com sucesso!</string>
<string name="open_a_file">Abrir um ficheiro</string>
<string name="no">No</string>
<string name="new_file">New file</string>
</resources>

View File

@@ -19,16 +19,16 @@
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<resources>
<string name="close">Close</string>
<string name="about_action">About</string>
<string name="close">Fechar </string>
<string name="about_action">Sobre</string>
<string name="about_message"><![CDATA[
Turbo Editor is a free and <a href="http://github.com/vmihalachi/turbo-editor">open source</a> app.
Copyright 2013-2014 <a href="https://plus.google.com/+VladMihalachi">Vlad Mihalachi</a>. All Rights Reserved.<br/>
O Turbo Editor é uma <a href="http://github.com/vmihalachi/turbo-editor">aplicação livre</a>.
Copyright 2013-2014 <a href="https://plus.google.com/+VladMihalachi">Vlad Mihalachi</a>. Todos os direitos reservados.<br/>
<br/>
Many thanks to all who
<a href="http://crowdin.net/project/turbo-client">helped with translations</a> or
donated to me</a>.<br/>
Muito obrigado a todos os que
<a href="http://crowdin.net/project/turbo-client">ajudaram a traduzir</a> ou
efetuaram donativos</a>.<br/>
<br/>
If you want to send feedback here is the <a href="http://forum.xda-developers.com/android/apps-games/app-turbo-editor-text-editor-t2832016">XDA thread</a>
Se quiser fazer algum comentário aceda ao <a href="http://forum.xda-developers.com/android/apps-games/app-turbo-editor-text-editor-t2832016">fórum XDA</a>.
]]></string>
</resources>

Some files were not shown because too many files have changed in this diff Show More