Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
276b831ceb | |||
ec5645c2a4 | |||
9ca7d62a8e | |||
28353fea8f | |||
ed285afadb | |||
3697dd51a4 | |||
ba0fb4ebaa | |||
d7a5d513c7 | |||
e540b8fda7 | |||
49f890adeb | |||
446a6da1fb |
66
.gitignore
vendored
@ -1,35 +1,61 @@
|
|||||||
# built application files
|
# Built application files
|
||||||
*.apk
|
*.apk
|
||||||
*.ap_
|
*.ap_
|
||||||
|
|
||||||
# files for the dex VM
|
# Files for the Dalvik VM
|
||||||
*.dex
|
*.dex
|
||||||
|
|
||||||
# Java class files
|
# Java class files
|
||||||
*.class
|
*.class
|
||||||
|
|
||||||
# generated files
|
# Generated files
|
||||||
bin/
|
bin/
|
||||||
gen/
|
gen/
|
||||||
|
|
||||||
# Local configuration file (sdk path, etc)
|
|
||||||
local.properties
|
|
||||||
|
|
||||||
# Eclipse project files
|
|
||||||
.classpath
|
|
||||||
.project
|
|
||||||
|
|
||||||
# Proguard folder generated by Eclipse
|
# Proguard folder generated by Eclipse
|
||||||
proguard/
|
proguard/
|
||||||
|
|
||||||
# Intellij project files
|
# Log Files
|
||||||
*.iml
|
*.log
|
||||||
*.ipr
|
|
||||||
*.iws
|
|
||||||
.idea/
|
|
||||||
|
|
||||||
# Android Studio
|
app-pro/
|
||||||
.gradle
|
|
||||||
/local.properties
|
# Built application files
|
||||||
/.idea/workspace.xml
|
/*/build/
|
||||||
.DS_Store
|
|
||||||
|
# Crashlytics configuations
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics-build.properties
|
||||||
|
crashlytics.properties
|
||||||
|
|
||||||
|
# Local configuration file (sdk path, etc)
|
||||||
|
local.properties
|
||||||
|
|
||||||
|
# Gradle generated files
|
||||||
|
.gradle/
|
||||||
|
|
||||||
|
# Signing files
|
||||||
|
.signing/
|
||||||
|
|
||||||
|
# User-specific configurations
|
||||||
|
.idea/libraries/
|
||||||
|
.idea/workspace.xml
|
||||||
|
.idea/tasks.xml
|
||||||
|
.idea/.name
|
||||||
|
.idea/compiler.xml
|
||||||
|
.idea/copyright/profiles_settings.xml
|
||||||
|
.idea/encodings.xml
|
||||||
|
.idea/misc.xml
|
||||||
|
.idea/modules.xml
|
||||||
|
.idea/scopes/scope_settings.xml
|
||||||
|
.idea/vcs.xml
|
||||||
|
*.iml
|
||||||
|
|
||||||
|
# OS-specific files
|
||||||
|
.DS_Store
|
||||||
|
.DS_Store?
|
||||||
|
._*
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
ehthumbs.db
|
||||||
|
Thumbs.db
|
||||||
|
9
.idea/copyright/Copyright_Vlad_Mihalachi.xml
generated
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<component name="CopyrightManager">
|
||||||
|
<copyright>
|
||||||
|
<option name="notice" value="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/>." />
|
||||||
|
<option name="keyword" value="Copyright" />
|
||||||
|
<option name="allowReplaceKeyword" value="Copyright" />
|
||||||
|
<option name="myName" value="Copyright Vlad Mihalachi" />
|
||||||
|
<option name="myLocal" value="true" />
|
||||||
|
</copyright>
|
||||||
|
</component>
|
23
.idea/gradle.xml
generated
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="GradleSettings">
|
||||||
|
<option name="linkedExternalProjectsSettings">
|
||||||
|
<GradleProjectSettings>
|
||||||
|
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||||
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
|
<option name="modules">
|
||||||
|
<set>
|
||||||
|
<option value="$PROJECT_DIR$" />
|
||||||
|
<option value="$PROJECT_DIR$/app" />
|
||||||
|
<option value="$PROJECT_DIR$/app-pro" />
|
||||||
|
<option value="$PROJECT_DIR$/libraries" />
|
||||||
|
<option value="$PROJECT_DIR$/libraries/FloatingActionButton" />
|
||||||
|
<option value="$PROJECT_DIR$/libraries/RootCommands" />
|
||||||
|
<option value="$PROJECT_DIR$/libraries/sharedCode" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</GradleProjectSettings>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
9
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0" is_locked="false">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<option name="myLocal" value="false" />
|
||||||
|
<inspection_tool class="AndroidLintMissingQuantity" enabled="false" level="ERROR" enabled_by_default="false" />
|
||||||
|
<inspection_tool class="AndroidLintMissingTranslation" enabled="false" level="ERROR" enabled_by_default="false" />
|
||||||
|
<inspection_tool class="AndroidLintUnusedQuantity" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
|
</profile>
|
||||||
|
</component>
|
7
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="PROJECT_PROFILE" value="Project Default" />
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="true" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
@ -1,5 +1,7 @@
|
|||||||
# Turbo Editor
|
# Turbo Editor
|
||||||
Simple, powerful and Open Source file editor for Android.
|
[](https://crowdin.com/project/turbo-client)
|
||||||
|
|
||||||
|
Simple, powerful and Open Source file editor for Android licensed under the GPLv3 license.
|
||||||
|
|
||||||
### Contribute
|
### Contribute
|
||||||
You can contribute to this project in many ways:
|
You can contribute to this project in many ways:
|
||||||
@ -55,7 +57,7 @@ See the [LICENSE][license] file that accompanies this distribution for the full
|
|||||||
[donate]: https://github.com/vmihalachi/turbo-editor#donate
|
[donate]: https://github.com/vmihalachi/turbo-editor#donate
|
||||||
[donate paypal]: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=PUQXSX6MTXHZ2
|
[donate paypal]: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=PUQXSX6MTXHZ2
|
||||||
[community googleplus]: https://plus.google.com/u/0/communities/111974095419108178946
|
[community googleplus]: https://plus.google.com/u/0/communities/111974095419108178946
|
||||||
[download playstore]: https://play.google.com/store/apps/details?id=com.vmihalachi.turboeditor
|
[download playstore]: https://play.google.com/store/apps/details?id=com.maskyn.fileeditor
|
||||||
[crowdin]: https://crowdin.net/project/turbo-client
|
[crowdin]: https://crowdin.net/project/turbo-client
|
||||||
[developer site]: http://vmihalachi.com/
|
[developer site]: http://vmihalachi.com/
|
||||||
[crowdin]: https://crowdin.net/project/turbo-client
|
[crowdin]: https://crowdin.net/project/turbo-client
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
classpath 'com.android.tools.build:gradle:0.5.+'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
apply plugin: 'android'
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
|
|
||||||
android {
|
|
||||||
compileSdkVersion 18
|
|
||||||
buildToolsVersion "18.1.0"
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
minSdkVersion 14
|
|
||||||
targetSdkVersion 18
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compile 'com.github.gabrielemariotti.changeloglib:library:1.2.0'
|
|
||||||
compile 'com.android.support:support-v13:18.0.0'
|
|
||||||
compile "commons-io:commons-io:2.4"
|
|
||||||
compile fileTree(dir: 'libs', include: '*.jar')
|
|
||||||
}
|
|
@ -1,106 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
~ Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
package="com.vmihalachi.turboeditor"
|
|
||||||
android:versionCode="2"
|
|
||||||
android:versionName="0.3"
|
|
||||||
android:installLocation="auto">
|
|
||||||
|
|
||||||
<uses-sdk
|
|
||||||
android:minSdkVersion="14"
|
|
||||||
android:targetSdkVersion="18" />
|
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET"/>
|
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
|
||||||
|
|
||||||
<application
|
|
||||||
android:allowBackup="true"
|
|
||||||
android:icon="@drawable/ic_launcher"
|
|
||||||
android:label="@string/nome_app_turbo_editor"
|
|
||||||
android:theme="@style/AppStyle">
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".activity.HomeActivity"
|
|
||||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
|
||||||
android:windowSoftInputMode="stateHidden|adjustResize"
|
|
||||||
android:hardwareAccelerated="false"
|
|
||||||
android:launchMode="singleTop"
|
|
||||||
android:alwaysRetainTaskState="true">
|
|
||||||
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
|
||||||
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER"/>
|
|
||||||
</intent-filter>
|
|
||||||
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
|
||||||
<action android:name="android.intent.action.EDIT"/>
|
|
||||||
<action android:name="android.intent.action.PICK"/>
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
|
||||||
<category android:name="android.intent.category.BROWSABLE"/>
|
|
||||||
|
|
||||||
<data android:scheme="file"/>
|
|
||||||
<data android:mimeType="text/*"/>
|
|
||||||
<data android:pathPattern="*.txt"/>
|
|
||||||
<data android:pathPattern="*.html"/>
|
|
||||||
<data android:pathPattern="*.css"/>
|
|
||||||
<data android:pathPattern="*.js"/>
|
|
||||||
<data android:pathPattern="*.php"/>
|
|
||||||
</intent-filter>
|
|
||||||
</activity>
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".activity.PreferenceAbout"
|
|
||||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
|
||||||
android:label="@string/aboutactivity_info_category"/>
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".activity.LicensesActivity"
|
|
||||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
|
||||||
android:label="@string/open_source_license"/>
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".activity.SelectFileActivity"
|
|
||||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
|
||||||
android:label="@string/open_a_file"/>
|
|
||||||
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.android.support.multiwindow"
|
|
||||||
android:value="true"/>
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W"
|
|
||||||
android:value="632.0dip"/>
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H"
|
|
||||||
android:value="598.0dip"/>
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W"
|
|
||||||
android:value="632.0dip"/>
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H"
|
|
||||||
android:value="598.0dip"/>
|
|
||||||
</application>
|
|
||||||
|
|
||||||
</manifest>
|
|
@ -1,362 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.vmihalachi.turboeditor.activity;
|
|
||||||
|
|
||||||
import android.app.ActionBar;
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.content.res.Configuration;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.IBinder;
|
|
||||||
import android.preference.PreferenceManager;
|
|
||||||
import android.support.v4.app.ActionBarDrawerToggle;
|
|
||||||
import android.support.v4.widget.DrawerLayout;
|
|
||||||
import android.text.TextUtils;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Gravity;
|
|
||||||
import android.view.Menu;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.inputmethod.InputMethodManager;
|
|
||||||
|
|
||||||
import com.vmihalachi.turboeditor.R;
|
|
||||||
import com.vmihalachi.turboeditor.event.ErrorOpeningFileEvent;
|
|
||||||
import com.vmihalachi.turboeditor.event.FileSavedEvent;
|
|
||||||
import com.vmihalachi.turboeditor.event.FileSelectedEvent;
|
|
||||||
import com.vmihalachi.turboeditor.event.NewFileOpened;
|
|
||||||
import com.vmihalachi.turboeditor.fragment.ChangelogDialogFragment;
|
|
||||||
import com.vmihalachi.turboeditor.fragment.EditorFragment;
|
|
||||||
import com.vmihalachi.turboeditor.fragment.NoFileOpenedFragment;
|
|
||||||
import com.vmihalachi.turboeditor.helper.AppInfoHelper;
|
|
||||||
|
|
||||||
import de.greenrobot.event.EventBus;
|
|
||||||
|
|
||||||
public class HomeActivity extends Activity {
|
|
||||||
|
|
||||||
private String TAG = "A0A";
|
|
||||||
public static final int SELECT_FILE_CODE = 121;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This class provides a handy way to tie together the functionality of
|
|
||||||
* {@link DrawerLayout} and the framework <code>ActionBar</code> to implement the recommended
|
|
||||||
* design for navigation drawers.
|
|
||||||
*/
|
|
||||||
protected ActionBarDrawerToggle mDrawerToggle;
|
|
||||||
/*
|
|
||||||
* The Drawer Layout
|
|
||||||
*/
|
|
||||||
protected DrawerLayout mDrawerLayout;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setContentView(R.layout.activity_home);
|
|
||||||
// setup the navigation drawer
|
|
||||||
setupNavigationDrawer();
|
|
||||||
// Replace fragment
|
|
||||||
getFragmentManager()
|
|
||||||
.beginTransaction()
|
|
||||||
.replace(R.id.fragment_editor, new NoFileOpenedFragment())
|
|
||||||
.commit();
|
|
||||||
/* First Time we open this activity */
|
|
||||||
if (savedInstanceState == null) {
|
|
||||||
// Open
|
|
||||||
mDrawerLayout.openDrawer(Gravity.START);
|
|
||||||
// Set the default title
|
|
||||||
getActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
|
|
||||||
}
|
|
||||||
// parse the intent
|
|
||||||
parseIntent(getIntent());
|
|
||||||
// show a dialog with the changelog
|
|
||||||
showChangeLog();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
protected final void onPostCreate(Bundle savedInstanceState) {
|
|
||||||
super.onPostCreate(savedInstanceState);
|
|
||||||
mDrawerToggle.syncState();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
// Register the Event Bus for events
|
|
||||||
EventBus.getDefault().register(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onPause() {
|
|
||||||
super.onPause();
|
|
||||||
// Unregister the Event Bus
|
|
||||||
EventBus.getDefault().unregister(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
protected void onDestroy() {
|
|
||||||
try {
|
|
||||||
closeKeyBoard();
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
Log.e(TAG, e.getMessage(), e);
|
|
||||||
}
|
|
||||||
super.onDestroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public final void onConfigurationChanged(Configuration newConfig) {
|
|
||||||
super.onConfigurationChanged(newConfig);
|
|
||||||
mDrawerToggle.onConfigurationChanged(newConfig);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
|
||||||
getMenuInflater().inflate(R.menu.activity_home, menu);
|
|
||||||
return super.onCreateOptionsMenu(menu);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
|
||||||
/* If we clicked on the Navigation Drawer Menu item */
|
|
||||||
if (mDrawerToggle.onOptionsItemSelected(item)) {
|
|
||||||
return true;
|
|
||||||
} else switch (item.getItemId()) {
|
|
||||||
case R.id.im_open:
|
|
||||||
startActivityForResult(new Intent(HomeActivity.this, SelectFileActivity.class)
|
|
||||||
.putExtra("path", "")
|
|
||||||
.putExtra("action", SelectFileActivity.Actions.SelectFile),
|
|
||||||
SELECT_FILE_CODE);
|
|
||||||
return true;
|
|
||||||
case R.id.im_info:
|
|
||||||
startActivity(new Intent(this, PreferenceAbout.class));
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return super.onOptionsItemSelected(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
if (resultCode == RESULT_OK && requestCode == SELECT_FILE_CODE) {
|
|
||||||
String path = data.getStringExtra("path");
|
|
||||||
if (!TextUtils.isEmpty(path)) {
|
|
||||||
EventBus.getDefault().postSticky(new NewFileOpened(path));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
protected void onNewIntent(Intent intent) {
|
|
||||||
super.onNewIntent(intent);
|
|
||||||
parseIntent(intent);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param event
|
|
||||||
*/
|
|
||||||
public void onEvent(FileSelectedEvent event) {
|
|
||||||
// Close the drawer
|
|
||||||
mDrawerLayout.closeDrawer(Gravity.LEFT);
|
|
||||||
// Replace fragment
|
|
||||||
getFragmentManager()
|
|
||||||
.beginTransaction()
|
|
||||||
.replace(R.id.fragment_editor, EditorFragment.newInstance(event.getPath()))
|
|
||||||
.commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When a file is saved
|
|
||||||
* Invoked by the EditorFragment
|
|
||||||
*
|
|
||||||
* @param event The event called
|
|
||||||
*/
|
|
||||||
public void onEvent(FileSavedEvent event) {
|
|
||||||
try {
|
|
||||||
closeKeyBoard();
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
Log.e(TAG, e.getMessage(), e);
|
|
||||||
}
|
|
||||||
// Get intent, action and MIME type
|
|
||||||
final Intent intent = getIntent();
|
|
||||||
final String action = intent.getAction();
|
|
||||||
final String type = intent.getType();
|
|
||||||
|
|
||||||
if (Intent.ACTION_VIEW.equals(action)
|
|
||||||
|| Intent.ACTION_EDIT.equals(action)
|
|
||||||
|| Intent.ACTION_PICK.equals(action)
|
|
||||||
&& type != null) {
|
|
||||||
//This Activity was called by startActivityForResult
|
|
||||||
final Intent returnIntent = new Intent();
|
|
||||||
setResult(Activity.RESULT_OK, returnIntent);
|
|
||||||
// finish the activity
|
|
||||||
finish();
|
|
||||||
} else {
|
|
||||||
//This Activity was called by startActivity
|
|
||||||
//
|
|
||||||
mDrawerLayout.openDrawer(Gravity.LEFT);
|
|
||||||
//
|
|
||||||
getActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
|
|
||||||
// Replace fragment
|
|
||||||
getFragmentManager()
|
|
||||||
.beginTransaction()
|
|
||||||
.replace(R.id.fragment_editor, new NoFileOpenedFragment())
|
|
||||||
.commit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When a file can't be opened
|
|
||||||
* Invoked by the EditorFragment
|
|
||||||
*
|
|
||||||
* @param event The event called
|
|
||||||
*/
|
|
||||||
public void onEvent(ErrorOpeningFileEvent event) {
|
|
||||||
//
|
|
||||||
mDrawerLayout.openDrawer(Gravity.LEFT);
|
|
||||||
//
|
|
||||||
getActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
|
|
||||||
// Replace fragment
|
|
||||||
getFragmentManager()
|
|
||||||
.beginTransaction()
|
|
||||||
.replace(R.id.fragment_editor, new NoFileOpenedFragment())
|
|
||||||
.commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void closeKeyBoard() throws NullPointerException {
|
|
||||||
// Central system API to the overall input method framework (IMF) architecture
|
|
||||||
InputMethodManager inputManager =
|
|
||||||
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
||||||
|
|
||||||
// Base interface for a remotable object
|
|
||||||
IBinder windowToken = getCurrentFocus().getWindowToken();
|
|
||||||
|
|
||||||
// Hide type
|
|
||||||
int hideType = InputMethodManager.HIDE_NOT_ALWAYS;
|
|
||||||
|
|
||||||
// Hide the KeyBoard
|
|
||||||
inputManager.hideSoftInputFromWindow(windowToken, hideType);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Setup the navigation drawer
|
|
||||||
*/
|
|
||||||
private void setupNavigationDrawer() {
|
|
||||||
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
|
|
||||||
/* Action Bar */
|
|
||||||
final ActionBar ab = getActionBar();
|
|
||||||
ab.setDisplayHomeAsUpEnabled(true);
|
|
||||||
ab.setHomeButtonEnabled(true);
|
|
||||||
/* Navigation drawer */
|
|
||||||
mDrawerToggle =
|
|
||||||
new ActionBarDrawerToggle(
|
|
||||||
this,
|
|
||||||
mDrawerLayout,
|
|
||||||
R.drawable.ic_drawer,
|
|
||||||
R.string.nome_app_turbo_editor,
|
|
||||||
R.string.nome_app_turbo_editor) {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onDrawerClosed(View view) {
|
|
||||||
invalidateOptionsMenu();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onDrawerOpened(View drawerView) {
|
|
||||||
invalidateOptionsMenu();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
/* link the mDrawerToggle to the Drawer Layout */
|
|
||||||
mDrawerLayout.setDrawerListener(mDrawerToggle);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show a dialog with the changelog
|
|
||||||
*/
|
|
||||||
private void showChangeLog() {
|
|
||||||
final String currentVersion = AppInfoHelper.getCurrentVersion(this);
|
|
||||||
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
|
|
||||||
final String lastVersion = preferences.getString("last_version", currentVersion);
|
|
||||||
preferences.edit().putString("last_version", currentVersion).commit();
|
|
||||||
if (!lastVersion.equals(currentVersion)) {
|
|
||||||
ChangelogDialogFragment.showChangeLogDialog(getFragmentManager());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parses the intent
|
|
||||||
*/
|
|
||||||
private void parseIntent(Intent intent) {
|
|
||||||
final String action = intent.getAction();
|
|
||||||
final String type = intent.getType();
|
|
||||||
|
|
||||||
if (Intent.ACTION_VIEW.equals(action)
|
|
||||||
|| Intent.ACTION_EDIT.equals(action)
|
|
||||||
|| Intent.ACTION_PICK.equals(action)
|
|
||||||
&& type != null) {
|
|
||||||
// Post the NewFileOpened Event
|
|
||||||
EventBus.getDefault().postSticky(new NewFileOpened(intent.getData().getPath()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
package com.vmihalachi.turboeditor.activity;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.AdapterView;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.ListView;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import com.vmihalachi.turboeditor.R;
|
|
||||||
|
|
||||||
public class LicensesActivity extends Activity implements AdapterView.OnItemClickListener {
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setContentView(R.layout.activity_licenses);
|
|
||||||
ListView listView = (ListView) findViewById(android.R.id.list);
|
|
||||||
listView.setOnItemClickListener(this);
|
|
||||||
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.open_source_libs));
|
|
||||||
listView.setAdapter(adapter);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
||||||
String openSourceLib = ((TextView) view.findViewById(android.R.id.text1)).getText().toString();
|
|
||||||
Intent browserIntent = null;
|
|
||||||
if (openSourceLib.equals("ChangeLog Library")) {
|
|
||||||
browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/gabrielemariotti/changeloglib?source=c#license"));
|
|
||||||
} else if (openSourceLib.equals("EventBus")) {
|
|
||||||
browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/greenrobot/EventBus?source=c#license"));
|
|
||||||
} else if (openSourceLib.equals("commons-io")) {
|
|
||||||
browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://commons.apache.org/proper/commons-io/"));
|
|
||||||
}
|
|
||||||
if (browserIntent != null) {
|
|
||||||
startActivity(browserIntent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,109 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.vmihalachi.turboeditor.activity;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.preference.Preference;
|
|
||||||
import android.preference.PreferenceActivity;
|
|
||||||
|
|
||||||
import com.vmihalachi.turboeditor.R;
|
|
||||||
import com.vmihalachi.turboeditor.fragment.ChangelogDialogFragment;
|
|
||||||
import com.vmihalachi.turboeditor.helper.AppInfoHelper;
|
|
||||||
|
|
||||||
public class PreferenceAbout extends PreferenceActivity {
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onCreate(final Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
addPreferencesFromResource(R.xml.about);
|
|
||||||
setupClickablePreferences();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setupClickablePreferences() {
|
|
||||||
final Preference email = findPreference("aboutactivity_authoremail"),
|
|
||||||
changelog = findPreference("aboutactivity_changelog"),
|
|
||||||
open_source_licenses = findPreference("aboutactivity_open_source_licenses"),
|
|
||||||
market = findPreference("aboutactivity_authormarket");
|
|
||||||
if (email != null) {
|
|
||||||
email.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(final Preference preference) {
|
|
||||||
Intent i = new Intent(Intent.ACTION_SEND);
|
|
||||||
i.setType("message/rfc822");
|
|
||||||
i.putExtra(Intent.EXTRA_EMAIL, new String[]{"app.feedback.mail@gmail.com"});
|
|
||||||
i.putExtra(Intent.EXTRA_SUBJECT, AppInfoHelper.getApplicationName(getBaseContext()) + " " + AppInfoHelper.getCurrentVersion(getBaseContext()));
|
|
||||||
i.putExtra(Intent.EXTRA_TEXT, "");
|
|
||||||
try {
|
|
||||||
startActivity(Intent.createChooser(i, getString(R.string.aboutactivity_authoremail_summary)));
|
|
||||||
} catch (android.content.ActivityNotFoundException ex) {
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (changelog != null) {
|
|
||||||
changelog.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(final Preference preference) {
|
|
||||||
ChangelogDialogFragment.showChangeLogDialog(getFragmentManager());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (open_source_licenses != null) {
|
|
||||||
open_source_licenses.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(final Preference preference) {
|
|
||||||
startActivity(new Intent(PreferenceAbout.this, LicensesActivity.class));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (market != null) {
|
|
||||||
market.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(final Preference preference) {
|
|
||||||
try {
|
|
||||||
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pub:Vlad+Mihalachi"))
|
|
||||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
|
||||||
} catch (Exception e) {
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,243 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.vmihalachi.turboeditor.activity;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.AsyncTask;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.Environment;
|
|
||||||
import android.text.TextUtils;
|
|
||||||
import android.view.Menu;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.AdapterView;
|
|
||||||
import android.widget.ListView;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import com.vmihalachi.turboeditor.R;
|
|
||||||
import com.vmihalachi.turboeditor.adapter.AdapterDetailedList;
|
|
||||||
import com.vmihalachi.turboeditor.util.AlphanumComparator;
|
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.AbstractMap;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
|
|
||||||
public class SelectFileActivity extends Activity implements AdapterView.OnItemClickListener {
|
|
||||||
private String currentFolder;
|
|
||||||
private ListView listView;
|
|
||||||
private boolean wantAFile, wantAFolder;
|
|
||||||
|
|
||||||
// The android SD card root path
|
|
||||||
public static final String SD_CARD_ROOT =
|
|
||||||
Environment.getExternalStorageDirectory()
|
|
||||||
.getAbsolutePath();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
setContentView(R.layout.activity_select_file);
|
|
||||||
final Actions action = (Actions) getIntent().getExtras().getSerializable("action");
|
|
||||||
wantAFile = action == Actions.SelectFile;
|
|
||||||
wantAFolder = action == Actions.SelectFolder;
|
|
||||||
|
|
||||||
this.listView = (ListView) findViewById(android.R.id.list);
|
|
||||||
this.listView.setOnItemClickListener(this);
|
|
||||||
|
|
||||||
String path = getIntent().getExtras().getString("path");
|
|
||||||
if (TextUtils.isEmpty(path)) {
|
|
||||||
new UpdateList().execute(SD_CARD_ROOT);
|
|
||||||
} else {
|
|
||||||
new UpdateList().execute(path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void returnData(String path) {
|
|
||||||
final Intent returnIntent = new Intent();
|
|
||||||
returnIntent.putExtra("path", path);
|
|
||||||
setResult(RESULT_OK, returnIntent);
|
|
||||||
// finish the activity
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onItemClick(AdapterView<?> parent,
|
|
||||||
View view, int position, long id) {
|
|
||||||
final String name = ((TextView) view.findViewById(android.R.id.title)).getText().toString();
|
|
||||||
if (name.equals("..")) {
|
|
||||||
vaiIndietro();
|
|
||||||
return;
|
|
||||||
} else if (name.equals(getString(R.string.home))) {
|
|
||||||
new UpdateList().execute(SD_CARD_ROOT);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final File selectedFile = new File(currentFolder, name);
|
|
||||||
|
|
||||||
if (selectedFile.isFile() && wantAFile) {
|
|
||||||
returnData(selectedFile.getAbsolutePath());
|
|
||||||
} else if (selectedFile.isDirectory()) {
|
|
||||||
new UpdateList().execute(selectedFile.getAbsolutePath());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
|
||||||
getMenuInflater().inflate(R.menu.activity_select_file, menu);
|
|
||||||
menu.findItem(R.id.im_button).setTitle(getString(wantAFolder ? R.string.seleziona
|
|
||||||
: android.R.string.cancel));
|
|
||||||
return super.onCreateOptionsMenu(menu);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
|
||||||
int i = item.getItemId();
|
|
||||||
if (i == R.id.im_button) {
|
|
||||||
if (wantAFolder) {
|
|
||||||
returnData(currentFolder);
|
|
||||||
} else if (wantAFile) {
|
|
||||||
returnData("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return super.onOptionsItemSelected(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
void vaiIndietro() {
|
|
||||||
if (currentFolder.equals("/")) {
|
|
||||||
new UpdateList().execute(SD_CARD_ROOT);
|
|
||||||
} else {
|
|
||||||
File tempFile = new File(currentFolder);
|
|
||||||
if (tempFile.isFile()) {
|
|
||||||
tempFile = tempFile.getParentFile()
|
|
||||||
.getParentFile();
|
|
||||||
} else {
|
|
||||||
tempFile = tempFile.getParentFile();
|
|
||||||
}
|
|
||||||
new UpdateList().execute(tempFile.getAbsolutePath());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class UpdateList extends
|
|
||||||
AsyncTask<String, Void, LinkedList<AdapterDetailedList.FileDetail>> {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
protected LinkedList<AdapterDetailedList.FileDetail> doInBackground(final String... params) {
|
|
||||||
try {
|
|
||||||
|
|
||||||
final String path = params[0];
|
|
||||||
if (TextUtils.isEmpty(path)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
File tempFile = new File(path);
|
|
||||||
if (tempFile.isFile()) {
|
|
||||||
tempFile = tempFile.getParentFile();
|
|
||||||
}
|
|
||||||
|
|
||||||
final File[] files = tempFile.listFiles();
|
|
||||||
Arrays.sort(files,
|
|
||||||
getFileNameComparator());
|
|
||||||
|
|
||||||
final LinkedList<AdapterDetailedList.FileDetail> fileDetails = new LinkedList<AdapterDetailedList.FileDetail>();
|
|
||||||
final LinkedList<AdapterDetailedList.FileDetail>
|
|
||||||
folderDetails = new LinkedList<AdapterDetailedList.FileDetail>();
|
|
||||||
final AbstractMap<String, File> tempList = new HashMap<String, File>();
|
|
||||||
currentFolder = tempFile.getAbsolutePath();
|
|
||||||
|
|
||||||
if (files != null) {
|
|
||||||
for (final File f : files) {
|
|
||||||
if (f.isHidden()) {
|
|
||||||
continue;
|
|
||||||
} else if (f.isDirectory()
|
|
||||||
&& f.canRead()) {
|
|
||||||
folderDetails.add(new AdapterDetailedList.FileDetail(f.getName(),
|
|
||||||
getString(R.string.folder),
|
|
||||||
""));
|
|
||||||
} else if (f.isFile()) {
|
|
||||||
final long fileSize = f.length();
|
|
||||||
SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy hh:mm a");
|
|
||||||
String date = format.format(f.lastModified());
|
|
||||||
fileDetails.add(new AdapterDetailedList.FileDetail(f.getName(),
|
|
||||||
FileUtils.byteCountToDisplaySize(fileSize), date));
|
|
||||||
}
|
|
||||||
tempList.put(f.getName(), f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
folderDetails.addAll(fileDetails);
|
|
||||||
return folderDetails;
|
|
||||||
} catch (Exception e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
protected void onPostExecute(final LinkedList<AdapterDetailedList.FileDetail> names) {
|
|
||||||
boolean isRoot = currentFolder.equals("/");
|
|
||||||
if (names != null) {
|
|
||||||
listView.setAdapter(new AdapterDetailedList(getBaseContext(), names, isRoot));
|
|
||||||
}
|
|
||||||
super.onPostExecute(names);
|
|
||||||
}
|
|
||||||
|
|
||||||
public final Comparator<File> getFileNameComparator() {
|
|
||||||
return new AlphanumComparator() {
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public String getTheString(Object obj) {
|
|
||||||
return ((File) obj).getName()
|
|
||||||
.toLowerCase();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum Actions {
|
|
||||||
SelectFile, SelectFolder
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.vmihalachi.turboeditor.event;
|
|
||||||
|
|
||||||
public class OpenDrawerEvent {
|
|
||||||
}
|
|
@ -1,112 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.vmihalachi.turboeditor.fragment;
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.app.DialogFragment;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.KeyEvent;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
import android.view.inputmethod.EditorInfo;
|
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import com.vmihalachi.turboeditor.R;
|
|
||||||
|
|
||||||
// ...
|
|
||||||
public class EncodingDialogFragment extends DialogFragment implements TextView.OnEditorActionListener {
|
|
||||||
|
|
||||||
private EditText mEditText;
|
|
||||||
|
|
||||||
public static EncodingDialogFragment newInstance(final String hint) {
|
|
||||||
final EncodingDialogFragment f = new EncodingDialogFragment();
|
|
||||||
// Supply num input as an argument.
|
|
||||||
final Bundle args = new Bundle();
|
|
||||||
args.putString("hint", hint);
|
|
||||||
f.setArguments(args);
|
|
||||||
return f;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
|
|
||||||
final Bundle savedInstanceState) {
|
|
||||||
|
|
||||||
final Dialog dialog = getDialog();
|
|
||||||
final String title = getString(R.string.codifica);
|
|
||||||
dialog.setTitle(title);
|
|
||||||
|
|
||||||
final View view = inflater.inflate(R.layout.dialog_fragment_edittext, container);
|
|
||||||
this.mEditText = (EditText) view.findViewById(android.R.id.edit);
|
|
||||||
|
|
||||||
// Show soft keyboard automatically
|
|
||||||
this.mEditText.setText(getArguments().getString("hint"));
|
|
||||||
this.mEditText.requestFocus();
|
|
||||||
dialog.getWindow().setSoftInputMode(
|
|
||||||
WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
|
|
||||||
this.mEditText.setOnEditorActionListener(this);
|
|
||||||
|
|
||||||
final Button button = (Button) view.findViewById(android.R.id.button1);
|
|
||||||
button.setOnClickListener(new View.OnClickListener() {
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onClick(final View v) {
|
|
||||||
returnData();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return view;
|
|
||||||
}
|
|
||||||
|
|
||||||
void returnData() {
|
|
||||||
EditDialogListener target = (EditDialogListener) getTargetFragment();
|
|
||||||
if (target == null) {
|
|
||||||
target = (EditDialogListener) getActivity();
|
|
||||||
}
|
|
||||||
target.onFinishEditDialog(this.mEditText.getText().toString(), getArguments().getString("hint"));
|
|
||||||
this.dismiss();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onEditorAction(final TextView v, final int actionId, final KeyEvent event) {
|
|
||||||
if (EditorInfo.IME_ACTION_DONE == actionId) {
|
|
||||||
returnData();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface EditDialogListener {
|
|
||||||
void onFinishEditDialog(String inputText, String hint);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,278 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.vmihalachi.turboeditor.fragment;
|
|
||||||
|
|
||||||
import android.app.ListFragment;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.util.SparseBooleanArray;
|
|
||||||
import android.view.ActionMode;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.Menu;
|
|
||||||
import android.view.MenuInflater;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.AbsListView;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.ListView;
|
|
||||||
|
|
||||||
import com.vmihalachi.turboeditor.R;
|
|
||||||
import com.vmihalachi.turboeditor.event.FileSelectedEvent;
|
|
||||||
import com.vmihalachi.turboeditor.event.NewFileOpened;
|
|
||||||
import com.vmihalachi.turboeditor.helper.PreferenceHelper;
|
|
||||||
|
|
||||||
import org.apache.commons.io.FilenameUtils;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import de.greenrobot.event.EventBus;
|
|
||||||
|
|
||||||
public class NavigationDrawerListFragment extends ListFragment implements AbsListView.MultiChoiceModeListener {
|
|
||||||
|
|
||||||
private List<String> fileNames;
|
|
||||||
private ArrayAdapter<String> arrayAdapter;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
|
||||||
// Our custom layout
|
|
||||||
View rootView = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
|
|
||||||
return rootView;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
|
||||||
super.onViewCreated(view, savedInstanceState);
|
|
||||||
getListView().setMultiChoiceModeListener(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
// Register the Event Bus for events
|
|
||||||
EventBus.getDefault().registerSticky(this);
|
|
||||||
// Refresh the list view
|
|
||||||
refreshList();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onPause() {
|
|
||||||
super.onPause();
|
|
||||||
// Unregister the Event Bus
|
|
||||||
EventBus.getDefault().unregister(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onListItemClick(ListView l, View v, int position, long id) {
|
|
||||||
super.onListItemClick(l, v, position, 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 FileSelectedEvent(filePath));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onItemCheckedStateChanged(ActionMode actionMode, int position, long l, boolean isChecked) {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
|
|
||||||
MenuInflater inflater = actionMode.getMenuInflater();
|
|
||||||
inflater.inflate(R.menu.action_mode_navigation_drawer, menu);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
|
|
||||||
switch (menuItem.getItemId()) {
|
|
||||||
case R.id.im_remove:
|
|
||||||
// File paths saved in preferences
|
|
||||||
String[] savedPaths = PreferenceHelper.getSavedPaths(getActivity());
|
|
||||||
// We get the checked positions
|
|
||||||
SparseBooleanArray checkedItems = getListView().getCheckedItemPositions();
|
|
||||||
// If we have some checked positions
|
|
||||||
if (checkedItems != null) {
|
|
||||||
for (int i = 0; i < checkedItems.size(); i++) {
|
|
||||||
// check if the value is checked
|
|
||||||
if (checkedItems.valueAt(i)) {
|
|
||||||
// remove the checked path, but don't refresh the list
|
|
||||||
removePath(savedPaths[checkedItems.keyAt(i)], false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// In the end refresh the list
|
|
||||||
refreshList();
|
|
||||||
}
|
|
||||||
// Close the action mode
|
|
||||||
actionMode.finish();
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onDestroyActionMode(ActionMode actionMode) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When a new file is opened
|
|
||||||
* Invoked by the main activity which receive the intent
|
|
||||||
*
|
|
||||||
* @param event The event called
|
|
||||||
*/
|
|
||||||
public void onEvent(NewFileOpened event) {
|
|
||||||
EventBus.getDefault().removeStickyEvent(event);
|
|
||||||
// File paths saved in preferences
|
|
||||||
String[] savedPaths = PreferenceHelper.getSavedPaths(getActivity());
|
|
||||||
for (int i = 0; i < savedPaths.length; i++) {
|
|
||||||
// We don't need to save the file path twice
|
|
||||||
if (savedPaths[i].equals(event.getFilePath())) {
|
|
||||||
// Send the event that a file was selected
|
|
||||||
EventBus.getDefault().post(new FileSelectedEvent(event.getFilePath()));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Add the path if it wasn't added before
|
|
||||||
addPath(event.getFilePath());
|
|
||||||
// Send the event that a file was selected
|
|
||||||
EventBus.getDefault().post(new FileSelectedEvent(event.getFilePath()));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addPath(String path) {
|
|
||||||
// Add a path and refresh the list
|
|
||||||
addPath(path, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addPath(String path, boolean refreshTheList) {
|
|
||||||
// File paths saved in preferences
|
|
||||||
String[] savedPaths = PreferenceHelper.getSavedPaths(getActivity());
|
|
||||||
// StringBuilder
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
for (int count = 0; count < savedPaths.length; count++) {
|
|
||||||
// Append the file path and a comma
|
|
||||||
sb.append(savedPaths[count]).append(",");
|
|
||||||
}
|
|
||||||
// Append new path
|
|
||||||
sb.append(path);
|
|
||||||
// Put the string and commit
|
|
||||||
PreferenceHelper.setSavedPaths(getActivity(), sb);
|
|
||||||
// Update list
|
|
||||||
if (refreshTheList) {
|
|
||||||
refreshList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void removePath(String path) {
|
|
||||||
// Remove the path and refresh the list
|
|
||||||
removePath(path, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void removePath(String path, boolean refresh) {
|
|
||||||
// File paths saved in preferences
|
|
||||||
String[] savedPaths = PreferenceHelper.getSavedPaths(getActivity());
|
|
||||||
// StringBuilder
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
// for cycle
|
|
||||||
for (int count = 0; count < savedPaths.length; count++) {
|
|
||||||
if (path.equals(savedPaths[count])) continue;
|
|
||||||
sb.append(savedPaths[count]).append(",");
|
|
||||||
}
|
|
||||||
// Put the string and commit
|
|
||||||
PreferenceHelper.setSavedPaths(getActivity(), sb);
|
|
||||||
// Update list
|
|
||||||
if (refresh) {
|
|
||||||
refreshList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void refreshList() {
|
|
||||||
// File paths saved in preferences
|
|
||||||
String[] savedPaths = PreferenceHelper.getSavedPaths(getActivity());
|
|
||||||
// File names for the list
|
|
||||||
fileNames = new ArrayList<String>(savedPaths.length);
|
|
||||||
// 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()) {
|
|
||||||
fileNames.add(FilenameUtils.getName(path));
|
|
||||||
sb.append(path).append(",");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// save list without empty or non existed files
|
|
||||||
PreferenceHelper.setSavedPaths(getActivity(), sb);
|
|
||||||
// Adapter
|
|
||||||
arrayAdapter = new ArrayAdapter<String>(getActivity(), R.layout.item_drawer_list, fileNames);
|
|
||||||
// Set adapter
|
|
||||||
setListAdapter(arrayAdapter);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
package com.vmihalachi.turboeditor.helper;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.pm.ApplicationInfo;
|
|
||||||
import android.content.pm.PackageInfo;
|
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
|
|
||||||
public class AppInfoHelper {
|
|
||||||
public static String getApplicationName(final Context context) {
|
|
||||||
final ApplicationInfo applicationInfo = context.getApplicationInfo();
|
|
||||||
return context.getString(applicationInfo.labelRes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getCurrentVersion(final Context context) {
|
|
||||||
try {
|
|
||||||
final PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(),
|
|
||||||
0);
|
|
||||||
return packageInfo.versionName;
|
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,74 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.vmihalachi.turboeditor.helper;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.preference.PreferenceManager;
|
|
||||||
|
|
||||||
public final class PreferenceHelper {
|
|
||||||
|
|
||||||
private PreferenceHelper() {
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getter Methods
|
|
||||||
|
|
||||||
public static SharedPreferences getPrefs(Context context) {
|
|
||||||
return PreferenceManager.getDefaultSharedPreferences(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SharedPreferences.Editor getEditor(Context context) {
|
|
||||||
return getPrefs(context).edit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean getWrapText(Context context) {
|
|
||||||
return getPrefs(context).getBoolean("editor_wrap_text", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean getSyntaxHiglight(Context context) {
|
|
||||||
return getPrefs(context).getBoolean("editor_syntax_highlight", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getEncoding(Context context) {
|
|
||||||
return getPrefs(context).getString("editor_encoding", "UTF-8");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String[] getSavedPaths(Context context) {
|
|
||||||
return getPrefs(context).getString("savedPaths", "").split(",");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setter methods
|
|
||||||
|
|
||||||
public static void setWrapText(Context context, boolean value) {
|
|
||||||
getEditor(context).putBoolean("editor_wrap_text", value).commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setSyntaxHiglight(Context context, boolean value) {
|
|
||||||
getEditor(context).putBoolean("editor_syntax_highlight", value).commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setEncoding(Context context, String value) {
|
|
||||||
getEditor(context).putString("editor_encoding", value).commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setSavedPaths(Context context, StringBuilder stringBuilder) {
|
|
||||||
getEditor(context).putString("savedPaths", stringBuilder.toString()).commit();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.vmihalachi.turboeditor.helper;
|
|
||||||
|
|
||||||
public final class StringHelper {
|
|
||||||
|
|
||||||
private StringHelper() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String join(final String... strings) {
|
|
||||||
final StringBuffer buffer = new StringBuffer();
|
|
||||||
for (String string : strings) {
|
|
||||||
if (!string.endsWith("/")) {
|
|
||||||
string += "/";
|
|
||||||
}
|
|
||||||
buffer.append(string);
|
|
||||||
}
|
|
||||||
String result = buffer.toString();
|
|
||||||
if (result.endsWith("/")) {
|
|
||||||
result = result.substring(0, result.length() - 1);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,66 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.vmihalachi.turboeditor.util;
|
|
||||||
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
public class Patterns {
|
|
||||||
public static final int COLOR_NUMBER = 0xffff6600;
|
|
||||||
public static final int COLOR_KEYWORD = 0xff2f6f9f;
|
|
||||||
public static final int COLOR_ATTR = 0xff4f9fcf;
|
|
||||||
public static final int COLOR_ATTR_VALUE = 0xffd44950;
|
|
||||||
public static final int COLOR_STRING = 0xffd44950;
|
|
||||||
public static final int COLOR_COMMENT = 0xff999999;
|
|
||||||
|
|
||||||
// Strings
|
|
||||||
public static final Pattern GENERAL_STRINGS = Pattern.compile("\"(.*?)\"|'(.*?)'");
|
|
||||||
|
|
||||||
public static final Pattern HTML_OPEN_TAGS = Pattern.compile(
|
|
||||||
"<([A-Za-z][A-Za-z0-9]*)\\b[^>]*>");
|
|
||||||
public static final Pattern HTML_CLOSE_TAGS = Pattern.compile(
|
|
||||||
"</([A-Za-z][A-Za-z0-9]*)\\b[^>]*>");
|
|
||||||
public static final Pattern HTML_ATTRS = Pattern.compile(
|
|
||||||
"(\\S+)=[\"']?((?:.(?![\"']?\\s+(?:\\S+)=|[>\"']))+.)[\"']?");
|
|
||||||
|
|
||||||
//static final Pattern CSS_STYLE_NAME= Pattern.compile(
|
|
||||||
// "[ \\t\\n\\r\\f](.+?)\\{([^\\)]+)\\}");
|
|
||||||
public static final Pattern CSS_ATTRS = Pattern.compile(
|
|
||||||
"(.+?):(.+?);");
|
|
||||||
public static final Pattern CSS_ATTR_VALUE = Pattern.compile(
|
|
||||||
":[ \t](.+?);");
|
|
||||||
|
|
||||||
public static final Pattern NUMBERS = Pattern.compile(
|
|
||||||
"\\b(\\d*[.]?\\d+)\\b");
|
|
||||||
public static final Pattern CSS_NUMBERS = Pattern.compile(
|
|
||||||
"/^auto$|^[+-]?[0-9]+\\.?([0-9]+)?(px|em|ex|%|in|cm|mm|pt|pc)?$/ig");
|
|
||||||
public static final Pattern GENERAL_KEYWORDS = Pattern.compile(
|
|
||||||
"\\b(alignas|alignof|and|and_eq|asm|auto|bitand|bitorbool|break|case|catch|char|"
|
|
||||||
+ "char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype"
|
|
||||||
+ "|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|"
|
|
||||||
+ "false|float|for|friend|function|goto|if|inline|int|mutable|namespace|new|noexcept|"
|
|
||||||
+ "not|not_eq|nullptr|operator|or|or_eq|private|protected|public|register|"
|
|
||||||
+ "reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast"
|
|
||||||
+ "|struct|switch|template|this|thread_local|throw|true|try|typedef|typeid|typename"
|
|
||||||
+ "|union|unsigned|using|var|virtual|void|volatile|wchar_t|while|xor|xor_eq)\\b");
|
|
||||||
// Comments
|
|
||||||
public static final Pattern XML_COMMENTS = Pattern.compile("(?s)<!--.*?-->");
|
|
||||||
public static final Pattern GENERAL_COMMENTS = Pattern.compile(
|
|
||||||
"/\\*(?:.|[\\n\\r])*?\\*/|//.*");
|
|
||||||
}
|
|
Before Width: | Height: | Size: 729 B |
Before Width: | Height: | Size: 393 B |
Before Width: | Height: | Size: 716 B |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 481 B |
Before Width: | Height: | Size: 332 B |
Before Width: | Height: | Size: 485 B |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 886 B |
Before Width: | Height: | Size: 327 B |
Before Width: | Height: | Size: 926 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 777 B |
Before Width: | Height: | Size: 1.3 KiB |
@ -1,34 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
~ Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:exitFadeDuration="@android:integer/config_shortAnimTime">
|
|
||||||
|
|
||||||
<item
|
|
||||||
android:drawable="@android:color/holo_blue_light"
|
|
||||||
android:state_pressed="true"/>
|
|
||||||
<item
|
|
||||||
android:drawable="@android:color/holo_blue_light"
|
|
||||||
android:state_enabled="true"
|
|
||||||
android:state_focused="true"/>
|
|
||||||
<item
|
|
||||||
android:drawable="@android:color/transparent"/>
|
|
||||||
|
|
||||||
</selector>
|
|
@ -1,7 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<view xmlns:android="http://schemas.oiandroid.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
class="it.gmariotti.changelibs.library.view.ChangeLogListView"
|
|
||||||
android:id="@+id/view"
|
|
||||||
android:layout_gravity="center" />
|
|
@ -1,42 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
~ Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:scrollbars="vertical"
|
|
||||||
android:fillViewport="true">
|
|
||||||
|
|
||||||
<view
|
|
||||||
class="com.vmihalachi.turboeditor.fragment.EditorFragment$Editor"
|
|
||||||
android:id="@id/editor"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:background="@null"
|
|
||||||
android:bufferType="normal"
|
|
||||||
android:gravity="top|left"
|
|
||||||
android:imeOptions="actionDone|flagNoFullscreen"
|
|
||||||
android:inputType="textMultiLine|textImeMultiLine|textNoSuggestions"
|
|
||||||
android:maxLength="@integer/editor_max_file_size"
|
|
||||||
android:singleLine="false"
|
|
||||||
android:text="@null"
|
|
||||||
android:textSize="@dimen/text_size_editor" />
|
|
||||||
</ScrollView>
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
~ Copyright (C) 2013 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 Turbo Editor. 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="wrap_content"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:minHeight="@dimen/item_file_list_height">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@android:id/icon"
|
|
||||||
android:layout_width="@dimen/icon_dimension"
|
|
||||||
android:layout_height="@dimen/icon_dimension"
|
|
||||||
android:padding="@dimen/icon_padding"
|
|
||||||
android:layout_alignParentLeft="true" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@android:id/title"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_toRightOf="@android:id/icon"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:textSize="@dimen/text_size_title"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:padding="@dimen/minimum_padding" />
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_toRightOf="@android:id/icon"
|
|
||||||
android:layout_below="@android:id/title"
|
|
||||||
android:padding="@dimen/minimum_padding">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@android:id/text1"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:textSize="@dimen/text_size_subtitle"
|
|
||||||
android:enabled="false"
|
|
||||||
android:ellipsize="end"/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@android:id/text2"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_weight="2"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:textSize="@dimen/text_size_subtitle"
|
|
||||||
android:enabled="false"
|
|
||||||
android:ellipsize="end"/>
|
|
||||||
</LinearLayout>
|
|
||||||
</RelativeLayout>
|
|
@ -1,16 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<changelog bulletedList="true">
|
|
||||||
|
|
||||||
<changelogversion versionName="0.3" changeDate="Sep 27, 2013">
|
|
||||||
<changelogtext>Improved the about page</changelogtext>
|
|
||||||
</changelogversion>
|
|
||||||
|
|
||||||
<changelogversion versionName="0.2" changeDate="Sep 25, 2013">
|
|
||||||
<changelogtext>Keyboard now closes when you save a file</changelogtext>
|
|
||||||
<changelogtext>Fixed some issues when launching the app</changelogtext>
|
|
||||||
</changelogversion>
|
|
||||||
|
|
||||||
<changelogversion versionName="0.1" changeDate="Sep 24, 2013">
|
|
||||||
<changelogtext>First release</changelogtext>
|
|
||||||
</changelogversion>
|
|
||||||
</changelog>
|
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string-array name="open_source_libs">
|
|
||||||
<item>ChangeLog Library</item>
|
|
||||||
<item>EventBus</item>
|
|
||||||
<item>commons-io</item>
|
|
||||||
</string-array>
|
|
||||||
</resources>
|
|
@ -1,38 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
~ Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
-->
|
|
||||||
<resources>
|
|
||||||
<!-- action bar background color -->
|
|
||||||
<color name="actionbar_background">#111111</color>
|
|
||||||
<!-- activity background color -->
|
|
||||||
<color name="activity_background">#202020</color>
|
|
||||||
<!-- activity text color -->
|
|
||||||
<color name="activity_text_color">#fff7f7f9</color>
|
|
||||||
<!-- navigation drawer background color -->
|
|
||||||
<color name="navigation_drawer_background">#1d1d1d</color>
|
|
||||||
<!-- colors used as file icons -->
|
|
||||||
<color name="file_folder">#ffbb33</color>
|
|
||||||
<color name="file_code">#00a569</color>
|
|
||||||
<color name="file_html">#00a569</color>
|
|
||||||
<color name="file_text">#717171</color>
|
|
||||||
<color name="file_archive">#aa66cc</color>
|
|
||||||
<color name="file_media_music">#ff4444</color>
|
|
||||||
<color name="file_media_picture">#33b5e5</color>
|
|
||||||
<color name="file_media_video">#ff00607d</color>
|
|
||||||
</resources>
|
|
@ -1,38 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
~ Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
-->
|
|
||||||
<resources>
|
|
||||||
<!-- menu item ids -->
|
|
||||||
<item type="id" name="im_undo"/>
|
|
||||||
<item type="id" name="im_redo"/>
|
|
||||||
<item type="id" name="im_editor"/>
|
|
||||||
<item type="id" name="im_remove"/>
|
|
||||||
<item type="id" name="im_open"/>
|
|
||||||
<item type="id" name="im_info"/>
|
|
||||||
<item type="id" name="im_button"/>
|
|
||||||
<item type="id" name="im_save"/>
|
|
||||||
<item type="id" name="im_editor_encoding"/>
|
|
||||||
<item type="id" name="im_wrap_text"/>
|
|
||||||
<item type="id" name="im_syntax_highlight"/>
|
|
||||||
<!-- layout item ids -->
|
|
||||||
<item type="id" name="drawer_layout"/>
|
|
||||||
<item type="id" name="fragment_editor"/>
|
|
||||||
<item type="id" name="drawer_list"/>
|
|
||||||
<item type="id" name="editor"/>
|
|
||||||
</resources>
|
|
@ -1,41 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--Generated by crowdin.net-->
|
|
||||||
<resources>
|
|
||||||
<string name="aboutactivity_info_category">Info</string>
|
|
||||||
<string name="aboutactivity_app_category">Application Info</string>
|
|
||||||
<string name="aboutactivity_miscellaneous_category">Miscellaneous</string>
|
|
||||||
<string name="aboutactivity_version">Version %1$s</string>
|
|
||||||
<string name="aboutactivity_author">Author</string>
|
|
||||||
<string name="aboutactivity_authorsite">Author site</string>
|
|
||||||
<string name="aboutactivity_authorsite_summary">Show author site</string>
|
|
||||||
<string name="aboutactivity_authoremail">Author mail</string>
|
|
||||||
<string name="aboutactivity_authoremail_summary">Send mail to author</string>
|
|
||||||
<string name="aboutactivity_authortwitter">Twitter</string>
|
|
||||||
<string name="aboutactivity_authortwitter_summary">Show twitter page</string>
|
|
||||||
<string name="aboutactivity_authorgoogleplus">Google Plus</string>
|
|
||||||
<string name="aboutactivity_authorgoogleplus_summary">Show Google Plus page</string>
|
|
||||||
<string name="aboutactivity_betatester">Become a beta tester</string>
|
|
||||||
<string name="aboutactivity_betatester_summary">Be a part of the community to receive beta updates</string>
|
|
||||||
<string name="aboutactivity_helptranslate">Translate the Application</string>
|
|
||||||
<string name="aboutactivity_helptranslate_summary">Correct some mistakes or add a new translation</string>
|
|
||||||
<string name="aboutactivity_readme">Read Me</string>
|
|
||||||
<string name="aboutactivity_readme_summary">Read the reference</string>
|
|
||||||
<string name="aboutactivity_faq">FAQ</string>
|
|
||||||
<string name="aboutactivity_faq_summary">Show app faq</string>
|
|
||||||
<string name="aboutactivity_changelog">ChangeLog</string>
|
|
||||||
<string name="aboutactivity_changelog_summary">Show app changelog</string>
|
|
||||||
<string name="aboutactivity_license">Terms of service</string>
|
|
||||||
<string name="aboutactivity_license_summary">Read the Terms of service</string>
|
|
||||||
<string name="aboutactivity_license_accept">Accept</string>
|
|
||||||
<string name="aboutactivity_license_refuse">Refuse</string>
|
|
||||||
<string name="aboutactivity_privacy">Privacy policy</string>
|
|
||||||
<string name="aboutactivity_privacy_summary">Read the Privacy policy</string>
|
|
||||||
<string name="aboutactivity_todo">ToDo List</string>
|
|
||||||
<string name="aboutactivity_todo_summary">Read the todo list</string>
|
|
||||||
<string name="aboutactivity_donate">Make a donation</string>
|
|
||||||
<string name="aboutactivity_donate_summary">Thank you for supporting me!</string>
|
|
||||||
<string name="aboutactivity_market">Play Store</string>
|
|
||||||
<string name="aboutactivity_market_summary">Send feedback and rate it!</string>
|
|
||||||
<string name="aboutactivity_authormarket">Author Store</string>
|
|
||||||
<string name="aboutactivity_authormarket_summary">Show author applications!</string>
|
|
||||||
</resources>
|
|
@ -1,47 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
~ Copyright (C) 2013 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 Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
-->
|
|
||||||
<resources>
|
|
||||||
<style name="AppStyle"
|
|
||||||
parent="android:Theme.Holo">
|
|
||||||
<item name="android:windowBackground">@color/activity_background</item>
|
|
||||||
<item name="android:actionBarStyle">@style/ActionBarStyle</item>
|
|
||||||
<item name="android:textColor">@color/activity_text_color</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<style name="ActionBarStyle"
|
|
||||||
parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse">
|
|
||||||
<item name="android:background">@color/actionbar_background</item>
|
|
||||||
<item name="android:backgroundStacked">@color/actionbar_background</item>
|
|
||||||
<item name="android:backgroundSplit">@color/actionbar_background</item>
|
|
||||||
<item name="android:titleTextStyle">@style/ActionBarStyle.Title.Inverse</item>
|
|
||||||
<item name="android:subtitleTextStyle">@style/ActionBarStyle.Subtitle</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<style name="ActionBarStyle.Title.Inverse"
|
|
||||||
parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
|
|
||||||
<item name="android:textColor">@android:color/primary_text_dark_nodisable</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<style name="ActionBarStyle.Subtitle"
|
|
||||||
parent="android:TextAppearance.Holo.Widget.ActionBar.Subtitle">
|
|
||||||
<item name="android:textColor">@android:color/primary_text_dark_nodisable</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
</resources>
|
|
68
app/build.gradle
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
maven { url 'http://download.crashlytics.com/maven' }
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
apply plugin: 'com.android.application'
|
||||||
|
apply plugin: 'crashlytics'
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
maven { url 'http://download.crashlytics.com/maven' }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion 20
|
||||||
|
buildToolsVersion "20.0.0"
|
||||||
|
defaultConfig {
|
||||||
|
applicationId "com.maskyn.fileeditor"
|
||||||
|
minSdkVersion 14
|
||||||
|
targetSdkVersion 20
|
||||||
|
versionCode 26
|
||||||
|
versionName "1.10"
|
||||||
|
}
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility JavaVersion.VERSION_1_7
|
||||||
|
targetCompatibility JavaVersion.VERSION_1_7
|
||||||
|
}
|
||||||
|
buildTypes {
|
||||||
|
release {
|
||||||
|
runProguard false
|
||||||
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile fileTree(dir: 'libs', include: '*.jar')
|
||||||
|
compile project(':libraries:sharedCode')
|
||||||
|
compile 'com.google.android.gms:play-services:5.0.89'
|
||||||
|
compile 'com.crashlytics.android:crashlytics:1.+'
|
||||||
|
|
||||||
|
}
|
17
app/proguard-rules.pro
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Add project specific ProGuard rules here.
|
||||||
|
# By default, the flags in this file are appended to flags specified
|
||||||
|
# in C:\Users\Vlad\AppData\Local\Android\android-sdk/tools/proguard/proguard-android.txt
|
||||||
|
# You can edit the include path and order by changing the proguardFiles
|
||||||
|
# directive in build.gradle.
|
||||||
|
#
|
||||||
|
# For more details, see
|
||||||
|
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||||
|
|
||||||
|
# Add any project specific keep options here:
|
||||||
|
|
||||||
|
# If your project uses WebView with JS, uncomment the following
|
||||||
|
# and specify the fully qualified class name to the JavaScript interface
|
||||||
|
# class:
|
||||||
|
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||||
|
# public *;
|
||||||
|
#}
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2013 Vlad Mihalachi
|
* Copyright (C) 2014 Vlad Mihalachi
|
||||||
*
|
*
|
||||||
* This file is part of Turbo Editor.
|
* This file is part of Turbo Editor.
|
||||||
*
|
*
|
||||||
@ -14,19 +14,19 @@
|
|||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.vmihalachi.turboeditor.event;
|
package com.maskyn.fileeditor;
|
||||||
|
|
||||||
public class FileSavedEvent {
|
import android.app.Application;
|
||||||
private String filePath;
|
import android.test.ApplicationTestCase;
|
||||||
|
|
||||||
public FileSavedEvent(String filePath) {
|
/**
|
||||||
this.filePath = filePath;
|
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
|
||||||
|
*/
|
||||||
|
public class ApplicationTest extends ApplicationTestCase<Application> {
|
||||||
|
public ApplicationTest() {
|
||||||
|
super(Application.class);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
public String getFilePath() {
|
|
||||||
return filePath;
|
|
||||||
}
|
|
||||||
}
|
|
138
app/src/main/AndroidManifest.xml
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
<?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/>.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="com.maskyn.fileeditor"
|
||||||
|
android:installLocation="auto">
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
|
|
||||||
|
<supports-screens
|
||||||
|
android:anyDensity="true"
|
||||||
|
android:largeScreens="true"
|
||||||
|
android:normalScreens="true"
|
||||||
|
android:resizeable="true"
|
||||||
|
android:smallScreens="true"
|
||||||
|
android:xlargeScreens="true" />
|
||||||
|
|
||||||
|
<application
|
||||||
|
android:allowBackup="true"
|
||||||
|
android:icon="@drawable/ic_launcher"
|
||||||
|
android:label="@string/nome_app_turbo_editor"
|
||||||
|
android:hardwareAccelerated="false"
|
||||||
|
android:largeHeap="true"
|
||||||
|
android:supportsRtl="true"
|
||||||
|
>
|
||||||
|
|
||||||
|
<!-- android:alwaysRetainTaskState="true" -->
|
||||||
|
|
||||||
|
<meta-data android:name="com.google.android.gms.version"
|
||||||
|
android:value="@integer/google_play_services_version"/>
|
||||||
|
<activity
|
||||||
|
android:name=".HomeActivity"
|
||||||
|
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
|
||||||
|
android:launchMode="singleTop"
|
||||||
|
android:windowSoftInputMode="stateUnspecified|adjustPan"
|
||||||
|
android:theme="@style/AppTheme.Light.Editor">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
<action android:name="android.intent.action.EDIT" />
|
||||||
|
<action android:name="android.intent.action.PICK" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
|
||||||
|
<data android:scheme="file" />
|
||||||
|
<data android:mimeType="text/*" />
|
||||||
|
<data android:pathPattern="*.txt" />
|
||||||
|
<data android:pathPattern="*.html" />
|
||||||
|
<data android:pathPattern="*.css" />
|
||||||
|
<data android:pathPattern="*.js" />
|
||||||
|
<data android:pathPattern="*.md"/>
|
||||||
|
<data android:pathPattern="*.php" />
|
||||||
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.SEND" />
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<data android:mimeType="text/plain" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
<activity
|
||||||
|
android:name="sharedcode.turboeditor.activity.PreferenceAbout"
|
||||||
|
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||||
|
android:label="@string/info"
|
||||||
|
android:parentActivityName=".HomeActivity"
|
||||||
|
android:theme="@style/AppTheme.Dark">
|
||||||
|
<meta-data
|
||||||
|
android:name="android.support.PARENT_ACTIVITY"
|
||||||
|
android:value="com.maskyn.fileeditor.activity.HomeActivity" />
|
||||||
|
</activity>
|
||||||
|
<activity
|
||||||
|
android:name="sharedcode.turboeditor.activity.LicensesActivity"
|
||||||
|
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||||
|
android:label="@string/open_source_license"
|
||||||
|
android:parentActivityName="sharedcode.turboeditor.activity.PreferenceAbout"
|
||||||
|
android:theme="@style/AppTheme.Light">
|
||||||
|
<meta-data
|
||||||
|
android:name="android.support.PARENT_ACTIVITY"
|
||||||
|
android:value="com.maskyn.fileeditor.activity.PreferenceAbout" />
|
||||||
|
</activity>
|
||||||
|
<activity
|
||||||
|
android:name="sharedcode.turboeditor.activity.SelectFileActivity"
|
||||||
|
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||||
|
android:label="@string/open_a_file"
|
||||||
|
android:parentActivityName=".HomeActivity"
|
||||||
|
android:theme="@style/AppTheme.Light">
|
||||||
|
<meta-data
|
||||||
|
android:name="android.support.PARENT_ACTIVITY"
|
||||||
|
android:value="com.maskyn.fileeditor.activity.HomeActivity" />
|
||||||
|
</activity>
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="com.sec.android.support.multiwindow"
|
||||||
|
android:value="true" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W"
|
||||||
|
android:value="632.0dip" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H"
|
||||||
|
android:value="598.0dip" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W"
|
||||||
|
android:value="632.0dip" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H"
|
||||||
|
android:value="598.0dip" />
|
||||||
|
|
||||||
|
<activity android:name="com.google.android.gms.ads.AdActivity"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
|
||||||
|
<meta-data android:name="com.crashlytics.ApiKey" android:value="672ab7531ce1e2e83c2ec6d84e8e94f2fa692c2a"/>
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
59
app/src/main/java/com/maskyn/fileeditor/AdsHelper.java
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* 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 com.maskyn.fileeditor;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import com.google.android.gms.ads.AdRequest;
|
||||||
|
import com.google.android.gms.ads.InterstitialAd;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
import sharedcode.turboeditor.preferences.PreferenceHelper;
|
||||||
|
|
||||||
|
public class AdsHelper {
|
||||||
|
private Activity activity;
|
||||||
|
private InterstitialAd interstitial;
|
||||||
|
|
||||||
|
public AdsHelper(Activity activity) {
|
||||||
|
this.activity = activity;
|
||||||
|
int today = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
|
||||||
|
int lastDayAdShowed = PreferenceHelper.getLastDayAdShowed(activity);
|
||||||
|
boolean showAd = today != lastDayAdShowed;
|
||||||
|
if (showAd) {
|
||||||
|
|
||||||
|
interstitial = new InterstitialAd(activity);
|
||||||
|
interstitial.setAdUnitId("ca-app-pub-5679083452234719/7178038180");
|
||||||
|
|
||||||
|
// Create ad request.
|
||||||
|
AdRequest adRequest = new AdRequest.Builder().build();
|
||||||
|
|
||||||
|
// Begin loading your interstitial.
|
||||||
|
interstitial.loadAd(adRequest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayInterstitial() {
|
||||||
|
if (interstitial != null && interstitial.isLoaded()) {
|
||||||
|
interstitial.show();
|
||||||
|
int today = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
|
||||||
|
PreferenceHelper.setLastDayAdShowed(activity, today);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
46
app/src/main/java/com/maskyn/fileeditor/HomeActivity.java
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* 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 com.maskyn.fileeditor;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import com.crashlytics.android.Crashlytics;
|
||||||
|
import sharedcode.turboeditor.activity.BaseHomeActivity;
|
||||||
|
import sharedcode.turboeditor.preferences.PreferenceHelper;
|
||||||
|
|
||||||
|
public class HomeActivity extends BaseHomeActivity {
|
||||||
|
|
||||||
|
private AdsHelper adsHelper;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
if(PreferenceHelper.getSendErrorReports(this))
|
||||||
|
Crashlytics.start(this);
|
||||||
|
// setup the ads
|
||||||
|
adsHelper = new AdsHelper(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void displayInterstitial() {
|
||||||
|
adsHelper.displayInterstitial();
|
||||||
|
}
|
||||||
|
}
|
37
build.gradle
@ -1 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||||
|
|
||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
jcenter()
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath 'com.android.tools.build:gradle:0.12.+'
|
||||||
|
|
||||||
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
|
// in the individual module build.gradle files
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
allprojects {
|
||||||
|
repositories {
|
||||||
|
jcenter()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
120
build/intermediates/dex-cache/cache.xml
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?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/>.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<pre-dex-items>
|
||||||
|
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\pre-dexed\debug\eventbus-2.2.1-32e81c5612ed132ff771b5425053d87f4f6c68c5.jar"
|
||||||
|
jar="C:\Users\Vlad\.gradle\caches\modules-2\files-2.1\de.greenrobot\eventbus\2.2.1\a18ff12a9ab5ae52fd30d42f134517997568231e\eventbus-2.2.1.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="a18ff12a9ab5ae52fd30d42f134517997568231e"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app-pro\build\intermediates\pre-dexed\debug\juniversalchardet-1.0.3-24b647622164ce26bc5d0be361e05056efc68e13.jar"
|
||||||
|
jar="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app-pro\build\intermediates\exploded-aar\TurboMaterialEditor.libraries\sharedCode\unspecified\libs\juniversalchardet-1.0.3.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="591d72211acc0b909b79c840e0b3ed9a0982d807"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app-pro\build\intermediates\pre-dexed\debug\support-v4-19.0.1-f87b13e7ed00736c2050eda75093bf42b0503c64.jar"
|
||||||
|
jar="C:\Users\Vlad\AppData\Local\Android\android-sdk\extras\android\m2repository\com\android\support\support-v4\19.0.1\support-v4-19.0.1.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="587da9a481ffd341d2fa091704489b89845ddacd"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\pre-dexed\debug\commons-io-2.4-63b64e68cd19031cd252ac65a3ef94421c1bf0f4.jar"
|
||||||
|
jar="C:\Users\Vlad\.gradle\caches\modules-2\files-2.1\commons-io\commons-io\2.4\b1b6ea3b7e4aa4f492509a4952029cd8e48019ad\commons-io-2.4.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="b1b6ea3b7e4aa4f492509a4952029cd8e48019ad"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\pre-dexed\debug\classes-da434e33e14290126d2ad09adf85ad0bbd76f025.jar"
|
||||||
|
jar="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\exploded-aar\TurboMaterialEditor.libraries\FloatingActionButton\unspecified\classes.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="2f3117da0016b1126fafe7fb332a45d2f910d76c"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app-pro\build\intermediates\pre-dexed\debug\classes-a52f37b7ca7cde7ab02ff10bba80d1c496284125.jar"
|
||||||
|
jar="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app-pro\build\intermediates\exploded-aar\TurboMaterialEditor.libraries\FloatingActionButton\unspecified\classes.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="2f3117da0016b1126fafe7fb332a45d2f910d76c"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\pre-dexed\debug\support-v4-19.1.0-cf7033c44b86e758f85990185111614bac3ecfa8.jar"
|
||||||
|
jar="C:\Users\Vlad\AppData\Local\Android\android-sdk\extras\android\m2repository\com\android\support\support-v4\19.1.0\support-v4-19.1.0.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="85f201b380937e61a9dce6ca90ccf6872abbfb67"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\pre-dexed\debug\juniversalchardet-1.0.3-2e38d54a78dd518320bb6abe3d8931a19ff26792.jar"
|
||||||
|
jar="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\exploded-aar\TurboMaterialEditor.libraries\sharedCode\unspecified\libs\juniversalchardet-1.0.3.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="591d72211acc0b909b79c840e0b3ed9a0982d807"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\pre-dexed\debug\classes-2ad27a3265673aeeb8f40e4322d8e19509329c96.jar"
|
||||||
|
jar="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\exploded-aar\com.github.gabrielemariotti.changeloglib\library\1.5.1\classes.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="74a89f0f8b56d9f11d70b8d8134cf4109f4797dc"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app-pro\build\intermediates\pre-dexed\debug\classes-bfc447e4dbe83598b94dbdc8e38492cbbda6ebb2.jar"
|
||||||
|
jar="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app-pro\build\intermediates\exploded-aar\TurboMaterialEditor.libraries\RootCommands\unspecified\classes.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="cdecd8167dfb75d5785decb911fc4516445dd6a6"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\pre-dexed\release\classes-579a5ce52888f504a812e0f68758a11f20a21c15.jar"
|
||||||
|
jar="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\exploded-aar\TurboMaterialEditor.libraries\sharedCode\unspecified\classes.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="a593d4ce7ccdfa1eac8d97a82db64f23614b59a1"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app-pro\build\intermediates\pre-dexed\debug\classes-0a2ec632e1127b260f2b888ca5539fd41a1a638b.jar"
|
||||||
|
jar="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app-pro\build\intermediates\exploded-aar\com.github.gabrielemariotti.changeloglib\library\1.5.1\classes.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="74a89f0f8b56d9f11d70b8d8134cf4109f4797dc"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\pre-dexed\debug\classes-a8678f35ea62f18f2f7b60a15203aa6c74b5e559.jar"
|
||||||
|
jar="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\exploded-aar\com.google.android.gms\play-services\5.0.89\classes.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="d71573c9c5ea98a8db47ad6ff993a63d492b3bfa"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app-pro\build\intermediates\pre-dexed\release\classes-3e47e18f46719c7bf296f4b49ff03aaa3d406ba6.jar"
|
||||||
|
jar="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app-pro\build\intermediates\exploded-aar\TurboMaterialEditor.libraries\sharedCode\unspecified\classes.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="a593d4ce7ccdfa1eac8d97a82db64f23614b59a1"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\pre-dexed\release\crashlytics-1.1.13-7bbec76a44aa9cc3279ec6bff22b2c929a8abf67.jar"
|
||||||
|
jar="C:\Users\Vlad\.gradle\caches\modules-2\files-2.1\com.crashlytics.android\crashlytics\1.1.13\e821eafa1bf489a26bdb71f95078c26785b37a1\crashlytics-1.1.13.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="0e821eafa1bf489a26bdb71f95078c26785b37a1"/>
|
||||||
|
<item
|
||||||
|
dex="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\pre-dexed\debug\classes-c9a98cf79b48106440348a9fa210060d1b8b2647.jar"
|
||||||
|
jar="C:\Users\Vlad\Documents\AndroidStudioProjects\TurboMaterialEditor\app\build\intermediates\exploded-aar\TurboMaterialEditor.libraries\RootCommands\unspecified\classes.jar"
|
||||||
|
jumboMode="false"
|
||||||
|
revision="20.0.0"
|
||||||
|
sha1="cdecd8167dfb75d5785decb911fc4516445dd6a6"/>
|
||||||
|
|
||||||
|
</pre-dex-items>
|
BIN
build/intermediates/model_data.bin
Normal file
37
gradle.properties
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Project-wide Gradle settings.
|
||||||
|
|
||||||
|
# IDE (e.g. Android Studio) users:
|
||||||
|
# Settings specified in this file will override any Gradle settings
|
||||||
|
# configured through the IDE.
|
||||||
|
|
||||||
|
# For more details on how to configure your build environment visit
|
||||||
|
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||||
|
|
||||||
|
# Specifies the JVM arguments used for the daemon process.
|
||||||
|
# The setting is particularly useful for tweaking memory settings.
|
||||||
|
# Default value: -Xmx10248m -XX:MaxPermSize=256m
|
||||||
|
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
||||||
|
|
||||||
|
# When configured, Gradle will run in incubating parallel mode.
|
||||||
|
# This option should only be used with decoupled projects. More details, visit
|
||||||
|
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||||
|
# org.gradle.parallel=true
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
23
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,25 @@
|
|||||||
#Thu Sep 26 13:46:28 CEST 2013
|
#
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
#Wed Apr 10 15:27:10 PDT 2013
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=http\://services.gradle.org/distributions/gradle-1.7-bin.zip
|
distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
|
||||||
|
9
libraries/FloatingActionButton/.classpath
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||||
|
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
||||||
|
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
|
||||||
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="src" path="gen"/>
|
||||||
|
<classpathentry kind="output" path="bin/classes"/>
|
||||||
|
</classpath>
|
33
libraries/FloatingActionButton/.project
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>FloatingActionButton</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
@ -0,0 +1,4 @@
|
|||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||||
|
org.eclipse.jdt.core.compiler.source=1.6
|
12
libraries/FloatingActionButton/AndroidManifest.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<manifest
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="com.faizmalkani.floatingactionbutton">
|
||||||
|
|
||||||
|
<application
|
||||||
|
android:allowBackup="true">
|
||||||
|
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
28
libraries/FloatingActionButton/build.gradle
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
apply plugin: 'com.android.library'
|
||||||
|
android {
|
||||||
|
compileSdkVersion 19
|
||||||
|
buildToolsVersion "20.0.0"
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
applicationId 'com.faizmalkani.floatingactionbutton'
|
||||||
|
minSdkVersion 14
|
||||||
|
targetSdkVersion 19
|
||||||
|
versionName "1.0"
|
||||||
|
versionCode 1
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
main {
|
||||||
|
manifest.srcFile 'AndroidManifest.xml'
|
||||||
|
java.srcDirs = ['src']
|
||||||
|
resources.srcDirs = ['src']
|
||||||
|
aidl.srcDirs = ['src']
|
||||||
|
renderscript.srcDirs = ['src']
|
||||||
|
res.srcDirs = ['res']
|
||||||
|
assets.srcDirs = ['assets']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
/**
|
||||||
|
* Automatically generated file. DO NOT MODIFY
|
||||||
|
*/
|
||||||
|
package com.faizmalkani.floatingactionbutton;
|
||||||
|
|
||||||
|
public final class BuildConfig {
|
||||||
|
public static final boolean DEBUG = Boolean.parseBoolean("true");
|
||||||
|
public static final String PACKAGE_NAME = "com.faizmalkani.floatingactionbutton";
|
||||||
|
public static final String BUILD_TYPE = "debug";
|
||||||
|
public static final String FLAVOR = "";
|
||||||
|
public static final int VERSION_CODE = 1;
|
||||||
|
public static final String VERSION_NAME = "1.0";
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
/**
|
||||||
|
* Automatically generated file. DO NOT MODIFY
|
||||||
|
*/
|
||||||
|
package com.faizmalkani.floatingactionbutton;
|
||||||
|
|
||||||
|
public final class BuildConfig {
|
||||||
|
public static final boolean DEBUG = false;
|
||||||
|
public static final String PACKAGE_NAME = "com.faizmalkani.floatingactionbutton";
|
||||||
|
public static final String BUILD_TYPE = "release";
|
||||||
|
public static final String FLAVOR = "";
|
||||||
|
public static final int VERSION_CODE = 1;
|
||||||
|
public static final String VERSION_NAME = "1.0";
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
/**
|
||||||
|
* Automatically generated file. DO NOT MODIFY
|
||||||
|
*/
|
||||||
|
package com.faizmalkani.floatingactionbutton.test;
|
||||||
|
|
||||||
|
public final class BuildConfig {
|
||||||
|
public static final boolean DEBUG = Boolean.parseBoolean("true");
|
||||||
|
public static final String PACKAGE_NAME = "com.faizmalkani.floatingactionbutton.test";
|
||||||
|
public static final String BUILD_TYPE = "debug";
|
||||||
|
public static final String FLAVOR = "";
|
||||||
|
public static final int VERSION_CODE = 1;
|
||||||
|
public static final String VERSION_NAME = "1.0";
|
||||||
|
}
|
@ -0,0 +1,173 @@
|
|||||||
|
/* AUTO-GENERATED FILE. DO NOT MODIFY.
|
||||||
|
*
|
||||||
|
* This class was automatically generated by the
|
||||||
|
* aapt tool from the resource data it found. It
|
||||||
|
* should not be modified by hand.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.faizmalkani.floatingactionbutton;
|
||||||
|
|
||||||
|
public final class R {
|
||||||
|
public static final class attr {
|
||||||
|
/** <p>Must be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>",
|
||||||
|
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int color=0x7f010001;
|
||||||
|
/** <p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int drawable=0x7f010000;
|
||||||
|
/** <p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int shadowColor=0x7f010005;
|
||||||
|
/** <p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int shadowDx=0x7f010003;
|
||||||
|
/** <p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int shadowDy=0x7f010004;
|
||||||
|
/** <p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int shadowRadius=0x7f010002;
|
||||||
|
}
|
||||||
|
public static final class styleable {
|
||||||
|
/** Attributes that can be used with a FloatingActionButton.
|
||||||
|
<p>Includes the following attributes:</p>
|
||||||
|
<table>
|
||||||
|
<colgroup align="left" />
|
||||||
|
<colgroup align="left" />
|
||||||
|
<tr><th>Attribute</th><th>Description</th></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_color com.faizmalkani.floatingactionbutton:color}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_drawable com.faizmalkani.floatingactionbutton:drawable}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowColor com.faizmalkani.floatingactionbutton:shadowColor}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowDx com.faizmalkani.floatingactionbutton:shadowDx}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowDy com.faizmalkani.floatingactionbutton:shadowDy}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowRadius com.faizmalkani.floatingactionbutton:shadowRadius}</code></td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
@see #FloatingActionButton_color
|
||||||
|
@see #FloatingActionButton_drawable
|
||||||
|
@see #FloatingActionButton_shadowColor
|
||||||
|
@see #FloatingActionButton_shadowDx
|
||||||
|
@see #FloatingActionButton_shadowDy
|
||||||
|
@see #FloatingActionButton_shadowRadius
|
||||||
|
*/
|
||||||
|
public static final int[] FloatingActionButton = {
|
||||||
|
0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003,
|
||||||
|
0x7f010004, 0x7f010005
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#color}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>",
|
||||||
|
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:color
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_color = 1;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#drawable}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:drawable
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_drawable = 0;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#shadowColor}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:shadowColor
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowColor = 5;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#shadowDx}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:shadowDx
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowDx = 3;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#shadowDy}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:shadowDy
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowDy = 4;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#shadowRadius}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:shadowRadius
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowRadius = 2;
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,173 @@
|
|||||||
|
/* AUTO-GENERATED FILE. DO NOT MODIFY.
|
||||||
|
*
|
||||||
|
* This class was automatically generated by the
|
||||||
|
* aapt tool from the resource data it found. It
|
||||||
|
* should not be modified by hand.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.faizmalkani.floatingactionbutton;
|
||||||
|
|
||||||
|
public final class R {
|
||||||
|
public static final class attr {
|
||||||
|
/** <p>Must be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>",
|
||||||
|
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int color=0x7f010001;
|
||||||
|
/** <p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int drawable=0x7f010000;
|
||||||
|
/** <p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int shadowColor=0x7f010005;
|
||||||
|
/** <p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int shadowDx=0x7f010003;
|
||||||
|
/** <p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int shadowDy=0x7f010004;
|
||||||
|
/** <p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static int shadowRadius=0x7f010002;
|
||||||
|
}
|
||||||
|
public static final class styleable {
|
||||||
|
/** Attributes that can be used with a FloatingActionButton.
|
||||||
|
<p>Includes the following attributes:</p>
|
||||||
|
<table>
|
||||||
|
<colgroup align="left" />
|
||||||
|
<colgroup align="left" />
|
||||||
|
<tr><th>Attribute</th><th>Description</th></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_color com.faizmalkani.floatingactionbutton:color}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_drawable com.faizmalkani.floatingactionbutton:drawable}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowColor com.faizmalkani.floatingactionbutton:shadowColor}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowDx com.faizmalkani.floatingactionbutton:shadowDx}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowDy com.faizmalkani.floatingactionbutton:shadowDy}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowRadius com.faizmalkani.floatingactionbutton:shadowRadius}</code></td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
@see #FloatingActionButton_color
|
||||||
|
@see #FloatingActionButton_drawable
|
||||||
|
@see #FloatingActionButton_shadowColor
|
||||||
|
@see #FloatingActionButton_shadowDx
|
||||||
|
@see #FloatingActionButton_shadowDy
|
||||||
|
@see #FloatingActionButton_shadowRadius
|
||||||
|
*/
|
||||||
|
public static final int[] FloatingActionButton = {
|
||||||
|
0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003,
|
||||||
|
0x7f010004, 0x7f010005
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#color}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>",
|
||||||
|
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:color
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_color = 1;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#drawable}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:drawable
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_drawable = 0;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#shadowColor}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:shadowColor
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowColor = 5;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#shadowDx}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:shadowDx
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowDx = 3;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#shadowDy}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:shadowDy
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowDy = 4;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.R.attr#shadowRadius}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton:shadowRadius
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowRadius = 2;
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
/* AUTO-GENERATED FILE. DO NOT MODIFY.
|
||||||
|
*
|
||||||
|
* This class was automatically generated by the
|
||||||
|
* aapt tool from the resource data it found. It
|
||||||
|
* should not be modified by hand.
|
||||||
|
*/
|
||||||
|
package com.faizmalkani.floatingactionbutton;
|
||||||
|
|
||||||
|
public final class R {
|
||||||
|
public static final class attr {
|
||||||
|
public static final int color = 0x7f010001;
|
||||||
|
public static final int drawable = 0x7f010000;
|
||||||
|
public static final int shadowColor = 0x7f010005;
|
||||||
|
public static final int shadowDx = 0x7f010003;
|
||||||
|
public static final int shadowDy = 0x7f010004;
|
||||||
|
public static final int shadowRadius = 0x7f010002;
|
||||||
|
}
|
||||||
|
public static final class styleable {
|
||||||
|
public static final int[] FloatingActionButton = { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005 };
|
||||||
|
public static final int FloatingActionButton_color = 1;
|
||||||
|
public static final int FloatingActionButton_drawable = 0;
|
||||||
|
public static final int FloatingActionButton_shadowColor = 5;
|
||||||
|
public static final int FloatingActionButton_shadowDx = 3;
|
||||||
|
public static final int FloatingActionButton_shadowDy = 4;
|
||||||
|
public static final int FloatingActionButton_shadowRadius = 2;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,173 @@
|
|||||||
|
/* AUTO-GENERATED FILE. DO NOT MODIFY.
|
||||||
|
*
|
||||||
|
* This class was automatically generated by the
|
||||||
|
* aapt tool from the resource data it found. It
|
||||||
|
* should not be modified by hand.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.faizmalkani.floatingactionbutton.test;
|
||||||
|
|
||||||
|
public final class R {
|
||||||
|
public static final class attr {
|
||||||
|
/** <p>Must be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>",
|
||||||
|
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static final int color=0x7f010001;
|
||||||
|
/** <p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static final int drawable=0x7f010000;
|
||||||
|
/** <p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static final int shadowColor=0x7f010005;
|
||||||
|
/** <p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static final int shadowDx=0x7f010003;
|
||||||
|
/** <p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static final int shadowDy=0x7f010004;
|
||||||
|
/** <p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
*/
|
||||||
|
public static final int shadowRadius=0x7f010002;
|
||||||
|
}
|
||||||
|
public static final class styleable {
|
||||||
|
/** Attributes that can be used with a FloatingActionButton.
|
||||||
|
<p>Includes the following attributes:</p>
|
||||||
|
<table>
|
||||||
|
<colgroup align="left" />
|
||||||
|
<colgroup align="left" />
|
||||||
|
<tr><th>Attribute</th><th>Description</th></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_color com.faizmalkani.floatingactionbutton.test:color}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_drawable com.faizmalkani.floatingactionbutton.test:drawable}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowColor com.faizmalkani.floatingactionbutton.test:shadowColor}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowDx com.faizmalkani.floatingactionbutton.test:shadowDx}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowDy com.faizmalkani.floatingactionbutton.test:shadowDy}</code></td><td></td></tr>
|
||||||
|
<tr><td><code>{@link #FloatingActionButton_shadowRadius com.faizmalkani.floatingactionbutton.test:shadowRadius}</code></td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
@see #FloatingActionButton_color
|
||||||
|
@see #FloatingActionButton_drawable
|
||||||
|
@see #FloatingActionButton_shadowColor
|
||||||
|
@see #FloatingActionButton_shadowDx
|
||||||
|
@see #FloatingActionButton_shadowDy
|
||||||
|
@see #FloatingActionButton_shadowRadius
|
||||||
|
*/
|
||||||
|
public static final int[] FloatingActionButton = {
|
||||||
|
0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003,
|
||||||
|
0x7f010004, 0x7f010005
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.test.R.attr#color}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>",
|
||||||
|
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton.test:color
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_color = 1;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.test.R.attr#drawable}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton.test:drawable
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_drawable = 0;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.test.R.attr#shadowColor}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be an integer value, such as "<code>100</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton.test:shadowColor
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowColor = 5;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.test.R.attr#shadowDx}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton.test:shadowDx
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowDx = 3;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.test.R.attr#shadowDy}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton.test:shadowDy
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowDy = 4;
|
||||||
|
/**
|
||||||
|
<p>This symbol is the offset where the {@link com.faizmalkani.floatingactionbutton.test.R.attr#shadowRadius}
|
||||||
|
attribute's value can be found in the {@link #FloatingActionButton} array.
|
||||||
|
|
||||||
|
|
||||||
|
<p>Must be a floating point value, such as "<code>1.2</code>".
|
||||||
|
<p>This may also be a reference to a resource (in the form
|
||||||
|
"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
|
||||||
|
theme attribute (in the form
|
||||||
|
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
|
||||||
|
containing a value of this type.
|
||||||
|
@attr name com.faizmalkani.floatingactionbutton.test:shadowRadius
|
||||||
|
*/
|
||||||
|
public static final int FloatingActionButton_shadowRadius = 2;
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="com.faizmalkani.floatingactionbutton"
|
||||||
|
android:versionCode="1"
|
||||||
|
android:versionName="1.0" >
|
||||||
|
|
||||||
|
<uses-sdk
|
||||||
|
android:minSdkVersion="14"
|
||||||
|
android:targetSdkVersion="19" />
|
||||||
|
|
||||||
|
<application android:allowBackup="true" >
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
@ -0,0 +1,13 @@
|
|||||||
|
int attr color 0x7f010001
|
||||||
|
int attr drawable 0x7f010000
|
||||||
|
int attr shadowColor 0x7f010005
|
||||||
|
int attr shadowDx 0x7f010003
|
||||||
|
int attr shadowDy 0x7f010004
|
||||||
|
int attr shadowRadius 0x7f010002
|
||||||
|
int[] styleable FloatingActionButton { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005 }
|
||||||
|
int styleable FloatingActionButton_color 1
|
||||||
|
int styleable FloatingActionButton_drawable 0
|
||||||
|
int styleable FloatingActionButton_shadowColor 5
|
||||||
|
int styleable FloatingActionButton_shadowDx 3
|
||||||
|
int styleable FloatingActionButton_shadowDy 4
|
||||||
|
int styleable FloatingActionButton_shadowRadius 2
|
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
|
||||||
|
<!-- From: file:/C:/Users/Vlad/Documents/AndroidStudioProjects/turbo-editor/libraries/FloatingActionButton/res/values/attrs.xml -->
|
||||||
|
<eat-comment />
|
||||||
|
|
||||||
|
<declare-styleable name="FloatingActionButton">
|
||||||
|
<attr name="drawable" format="integer" />
|
||||||
|
<attr name="color" format="color" />
|
||||||
|
<attr name="shadowRadius" format="float" />
|
||||||
|
<attr name="shadowDx" format="float" />
|
||||||
|
<attr name="shadowDy" format="float" />
|
||||||
|
<attr name="shadowColor" format="integer" />
|
||||||
|
</declare-styleable>
|
||||||
|
|
||||||
|
</resources>
|
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="com.faizmalkani.floatingactionbutton"
|
||||||
|
android:versionCode="1"
|
||||||
|
android:versionName="1.0" >
|
||||||
|
|
||||||
|
<uses-sdk
|
||||||
|
android:minSdkVersion="14"
|
||||||
|
android:targetSdkVersion="19" />
|
||||||
|
|
||||||
|
<application android:allowBackup="true" >
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
@ -0,0 +1,13 @@
|
|||||||
|
int attr color 0x7f010001
|
||||||
|
int attr drawable 0x7f010000
|
||||||
|
int attr shadowColor 0x7f010005
|
||||||
|
int attr shadowDx 0x7f010003
|
||||||
|
int attr shadowDy 0x7f010004
|
||||||
|
int attr shadowRadius 0x7f010002
|
||||||
|
int[] styleable FloatingActionButton { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005 }
|
||||||
|
int styleable FloatingActionButton_color 1
|
||||||
|
int styleable FloatingActionButton_drawable 0
|
||||||
|
int styleable FloatingActionButton_shadowColor 5
|
||||||
|
int styleable FloatingActionButton_shadowDx 3
|
||||||
|
int styleable FloatingActionButton_shadowDy 4
|
||||||
|
int styleable FloatingActionButton_shadowRadius 2
|
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
|
||||||
|
<!-- From: file:/C:/Users/Vlad/Documents/AndroidStudioProjects/turbo-editor/libraries/FloatingActionButton/res/values/attrs.xml -->
|
||||||
|
<eat-comment />
|
||||||
|
|
||||||
|
<declare-styleable name="FloatingActionButton">
|
||||||
|
<attr name="drawable" format="integer" />
|
||||||
|
<attr name="color" format="color" />
|
||||||
|
<attr name="shadowRadius" format="float" />
|
||||||
|
<attr name="shadowDx" format="float" />
|
||||||
|
<attr name="shadowDy" format="float" />
|
||||||
|
<attr name="shadowColor" format="integer" />
|
||||||
|
</declare-styleable>
|
||||||
|
|
||||||
|
</resources>
|
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<merger version="2" >
|
||||||
|
|
||||||
|
<dataSet config="main" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\assets" />
|
||||||
|
</dataSet>
|
||||||
|
<dataSet config="debug" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\src\debug\assets" />
|
||||||
|
</dataSet>
|
||||||
|
|
||||||
|
</merger>
|
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<merger version="2" >
|
||||||
|
|
||||||
|
<dataSet config="main" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\assets" />
|
||||||
|
</dataSet>
|
||||||
|
<dataSet config="release" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\src\release\assets" />
|
||||||
|
</dataSet>
|
||||||
|
|
||||||
|
</merger>
|
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<merger version="2" >
|
||||||
|
|
||||||
|
<dataSet config="debug" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\build\intermediates\bundles\debug\assets" />
|
||||||
|
</dataSet>
|
||||||
|
<dataSet config="main" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\src\androidTest\assets" />
|
||||||
|
</dataSet>
|
||||||
|
|
||||||
|
</merger>
|
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<merger version="2" >
|
||||||
|
|
||||||
|
<dataSet config="debug" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\build\intermediates\bundles\debug\res" >
|
||||||
|
<file
|
||||||
|
path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\build\intermediates\bundles\debug\res\values\values.xml"
|
||||||
|
qualifiers="" >
|
||||||
|
<declare-styleable name="FloatingActionButton" >
|
||||||
|
<attr
|
||||||
|
name="drawable"
|
||||||
|
format="integer" />
|
||||||
|
<attr
|
||||||
|
name="color"
|
||||||
|
format="color" />
|
||||||
|
<attr
|
||||||
|
name="shadowRadius"
|
||||||
|
format="float" />
|
||||||
|
<attr
|
||||||
|
name="shadowDx"
|
||||||
|
format="float" />
|
||||||
|
<attr
|
||||||
|
name="shadowDy"
|
||||||
|
format="float" />
|
||||||
|
<attr
|
||||||
|
name="shadowColor"
|
||||||
|
format="integer" />
|
||||||
|
</declare-styleable>
|
||||||
|
</file>
|
||||||
|
</source>
|
||||||
|
</dataSet>
|
||||||
|
<dataSet config="main" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\src\androidTest\res" />
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\build\generated\res\rs\test\debug" />
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\build\generated\res\generated\test\debug" />
|
||||||
|
</dataSet>
|
||||||
|
|
||||||
|
</merger>
|
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<merger version="2" >
|
||||||
|
|
||||||
|
<dataSet config="main" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\res" >
|
||||||
|
<file
|
||||||
|
path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\res\values\attrs.xml"
|
||||||
|
qualifiers="" >
|
||||||
|
<declare-styleable name="FloatingActionButton" >
|
||||||
|
<attr
|
||||||
|
name="drawable"
|
||||||
|
format="integer" />
|
||||||
|
<attr
|
||||||
|
name="color"
|
||||||
|
format="color" />
|
||||||
|
<attr
|
||||||
|
name="shadowRadius"
|
||||||
|
format="float" />
|
||||||
|
<attr
|
||||||
|
name="shadowDx"
|
||||||
|
format="float" />
|
||||||
|
<attr
|
||||||
|
name="shadowDy"
|
||||||
|
format="float" />
|
||||||
|
<attr
|
||||||
|
name="shadowColor"
|
||||||
|
format="integer" />
|
||||||
|
</declare-styleable>
|
||||||
|
</file>
|
||||||
|
</source>
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\build\generated\res\rs\debug" />
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\build\generated\res\generated\debug" />
|
||||||
|
</dataSet>
|
||||||
|
<dataSet config="debug" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\src\debug\res" />
|
||||||
|
</dataSet>
|
||||||
|
|
||||||
|
</merger>
|
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<merger version="2" >
|
||||||
|
|
||||||
|
<dataSet config="main" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\res" >
|
||||||
|
<file
|
||||||
|
path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\res\values\attrs.xml"
|
||||||
|
qualifiers="" >
|
||||||
|
<declare-styleable name="FloatingActionButton" >
|
||||||
|
<attr
|
||||||
|
name="drawable"
|
||||||
|
format="integer" />
|
||||||
|
<attr
|
||||||
|
name="color"
|
||||||
|
format="color" />
|
||||||
|
<attr
|
||||||
|
name="shadowRadius"
|
||||||
|
format="float" />
|
||||||
|
<attr
|
||||||
|
name="shadowDx"
|
||||||
|
format="float" />
|
||||||
|
<attr
|
||||||
|
name="shadowDy"
|
||||||
|
format="float" />
|
||||||
|
<attr
|
||||||
|
name="shadowColor"
|
||||||
|
format="integer" />
|
||||||
|
</declare-styleable>
|
||||||
|
</file>
|
||||||
|
</source>
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\build\generated\res\rs\release" />
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\build\generated\res\generated\release" />
|
||||||
|
</dataSet>
|
||||||
|
<dataSet config="release" >
|
||||||
|
<source path="C:\Users\Vlad\Documents\AndroidStudioProjects\turbo-editor\libraries\FloatingActionButton\src\release\res" />
|
||||||
|
</dataSet>
|
||||||
|
|
||||||
|
</merger>
|
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="com.faizmalkani.floatingactionbutton.test" >
|
||||||
|
|
||||||
|
<uses-sdk
|
||||||
|
android:minSdkVersion="14"
|
||||||
|
android:targetSdkVersion="19" />
|
||||||
|
|
||||||
|
<instrumentation
|
||||||
|
android:name="android.test.InstrumentationTestRunner"
|
||||||
|
android:functionalTest="false"
|
||||||
|
android:handleProfiling="false"
|
||||||
|
android:label="Tests for com.faizmalkani.floatingactionbutton.test"
|
||||||
|
android:targetPackage="com.faizmalkani.floatingactionbutton.test" />
|
||||||
|
|
||||||
|
<application android:allowBackup="true" >
|
||||||
|
<uses-library android:name="android.test.runner" />
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
|
||||||
|
<!-- From: file:/C:/Users/Vlad/Documents/AndroidStudioProjects/turbo-editor/libraries/FloatingActionButton/build/intermediates/bundles/debug/res/values/values.xml -->
|
||||||
|
<eat-comment />
|
||||||
|
|
||||||
|
<declare-styleable name="FloatingActionButton">
|
||||||
|
<attr name="drawable" format="integer" />
|
||||||
|
<attr name="color" format="color" />
|
||||||
|
<attr name="shadowRadius" format="float" />
|
||||||
|
<attr name="shadowDx" format="float" />
|
||||||
|
<attr name="shadowDy" format="float" />
|
||||||
|
<attr name="shadowColor" format="integer" />
|
||||||
|
</declare-styleable>
|
||||||
|
|
||||||
|
</resources>
|
@ -0,0 +1,13 @@
|
|||||||
|
int attr color 0x7f010001
|
||||||
|
int attr drawable 0x7f010000
|
||||||
|
int attr shadowColor 0x7f010005
|
||||||
|
int attr shadowDx 0x7f010003
|
||||||
|
int attr shadowDy 0x7f010004
|
||||||
|
int attr shadowRadius 0x7f010002
|
||||||
|
int[] styleable FloatingActionButton { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005 }
|
||||||
|
int styleable FloatingActionButton_color 1
|
||||||
|
int styleable FloatingActionButton_drawable 0
|
||||||
|
int styleable FloatingActionButton_shadowColor 5
|
||||||
|
int styleable FloatingActionButton_shadowDx 3
|
||||||
|
int styleable FloatingActionButton_shadowDy 4
|
||||||
|
int styleable FloatingActionButton_shadowRadius 2
|
@ -0,0 +1,2 @@
|
|||||||
|
Manifest-Version: 1.0
|
||||||
|
|
@ -0,0 +1,2 @@
|
|||||||
|
Manifest-Version: 1.0
|
||||||
|
|
20
libraries/FloatingActionButton/proguard-project.txt
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# To enable ProGuard in your project, edit project.properties
|
||||||
|
# to define the proguard.config property as described in that file.
|
||||||
|
#
|
||||||
|
# Add project specific ProGuard rules here.
|
||||||
|
# By default, the flags in this file are appended to flags specified
|
||||||
|
# in ${sdk.dir}/tools/proguard/proguard-android.txt
|
||||||
|
# You can edit the include path and order by changing the ProGuard
|
||||||
|
# include property in project.properties.
|
||||||
|
#
|
||||||
|
# For more details, see
|
||||||
|
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||||
|
|
||||||
|
# Add any project specific keep options here:
|
||||||
|
|
||||||
|
# If your project uses WebView with JS, uncomment the following
|
||||||
|
# and specify the fully qualified class name to the JavaScript interface
|
||||||
|
# class:
|
||||||
|
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||||
|
# public *;
|
||||||
|
#}
|
16
libraries/FloatingActionButton/project.properties
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
|
||||||
|
# This file is automatically generated by Android Tools.
|
||||||
|
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
|
||||||
|
#
|
||||||
|
# This file must be checked in Version Control Systems.
|
||||||
|
#
|
||||||
|
# To customize properties used by the Ant build system edit
|
||||||
|
# "ant.properties", and override values to adapt the script to your
|
||||||
|
# project structure.
|
||||||
|
#
|
||||||
|
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
|
||||||
|
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
|
||||||
|
|
||||||
|
# Project target.
|
||||||
|
target=android-19
|
||||||
|
android.library=true
|
14
libraries/FloatingActionButton/res/values/attrs.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<resources>
|
||||||
|
|
||||||
|
<declare-styleable name="FloatingActionButton">
|
||||||
|
<attr name="drawable" format="integer"/>
|
||||||
|
<attr name="color" format="color"/>
|
||||||
|
<attr name="shadowRadius" format="float"/>
|
||||||
|
<attr name="shadowDx" format="float"/>
|
||||||
|
<attr name="shadowDy" format="float"/>
|
||||||
|
<attr name="shadowColor" format="integer"/>
|
||||||
|
</declare-styleable>
|
||||||
|
|
||||||
|
</resources>
|
@ -0,0 +1,50 @@
|
|||||||
|
|
||||||
|
|
||||||
|
package com.faizmalkani.floatingactionbutton;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.AbsListView;
|
||||||
|
|
||||||
|
class DirectionScrollListener implements AbsListView.OnScrollListener {
|
||||||
|
|
||||||
|
private static final int DIRECTION_CHANGE_THRESHOLD = 1;
|
||||||
|
private final FloatingActionButton mFloatingActionButton;
|
||||||
|
private int mPrevPosition;
|
||||||
|
private int mPrevTop;
|
||||||
|
private boolean mUpdated;
|
||||||
|
|
||||||
|
DirectionScrollListener(FloatingActionButton floatingActionButton) {
|
||||||
|
mFloatingActionButton = floatingActionButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
|
||||||
|
final View topChild = view.getChildAt(0);
|
||||||
|
int firstViewTop = 0;
|
||||||
|
if (topChild != null) {
|
||||||
|
firstViewTop = topChild.getTop();
|
||||||
|
}
|
||||||
|
boolean goingDown;
|
||||||
|
boolean changed = true;
|
||||||
|
if (mPrevPosition == firstVisibleItem) {
|
||||||
|
final int topDelta = mPrevTop - firstViewTop;
|
||||||
|
goingDown = firstViewTop < mPrevTop;
|
||||||
|
changed = Math.abs(topDelta) > DIRECTION_CHANGE_THRESHOLD;
|
||||||
|
} else {
|
||||||
|
goingDown = firstVisibleItem > mPrevPosition;
|
||||||
|
}
|
||||||
|
if (changed && mUpdated) {
|
||||||
|
if(goingDown)
|
||||||
|
mFloatingActionButton.hideFab();
|
||||||
|
else
|
||||||
|
mFloatingActionButton.showFab();
|
||||||
|
}
|
||||||
|
mPrevPosition = firstVisibleItem;
|
||||||
|
mPrevTop = firstViewTop;
|
||||||
|
mUpdated = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onScrollStateChanged(AbsListView view, int scrollState) {
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,145 @@
|
|||||||
|
|
||||||
|
|
||||||
|
package com.faizmalkani.floatingactionbutton;
|
||||||
|
import android.animation.ObjectAnimator;
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.graphics.Bitmap;
|
||||||
|
import android.graphics.Canvas;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.graphics.Paint;
|
||||||
|
import android.graphics.Point;
|
||||||
|
import android.graphics.drawable.BitmapDrawable;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
import android.util.DisplayMetrics;
|
||||||
|
import android.view.Display;
|
||||||
|
import android.view.MotionEvent;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.WindowManager;
|
||||||
|
import android.view.animation.AccelerateInterpolator;
|
||||||
|
import android.view.animation.DecelerateInterpolator;
|
||||||
|
import android.widget.AbsListView;
|
||||||
|
|
||||||
|
public class FloatingActionButton extends View
|
||||||
|
{
|
||||||
|
Context _context;
|
||||||
|
Paint mButtonPaint, mDrawablePaint;
|
||||||
|
Bitmap mBitmap;
|
||||||
|
int mScreenHeight;
|
||||||
|
float currentY;
|
||||||
|
boolean mHidden = false;
|
||||||
|
|
||||||
|
ObjectAnimator mShowAnimation;
|
||||||
|
ObjectAnimator mHideAnimation;
|
||||||
|
|
||||||
|
public FloatingActionButton(Context context, AttributeSet attributeSet)
|
||||||
|
{
|
||||||
|
super(context, attributeSet);
|
||||||
|
_context = context;
|
||||||
|
init(Color.WHITE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressLint("NewApi")
|
||||||
|
public FloatingActionButton(Context context)
|
||||||
|
{
|
||||||
|
super(context);
|
||||||
|
_context = context;
|
||||||
|
init(Color.WHITE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setColor(int fabColor)
|
||||||
|
{
|
||||||
|
init(fabColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDrawable(Drawable fabDrawable)
|
||||||
|
{
|
||||||
|
mBitmap = ((BitmapDrawable) fabDrawable).getBitmap();
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void init(int fabColor)
|
||||||
|
{
|
||||||
|
setWillNotDraw(false);
|
||||||
|
this.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
|
||||||
|
mButtonPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||||
|
mButtonPaint.setColor(fabColor);
|
||||||
|
mButtonPaint.setStyle(Paint.Style.FILL);
|
||||||
|
mButtonPaint.setShadowLayer(10.0f, 0.0f, 3.5f, Color.argb(100, 0, 0, 0));
|
||||||
|
mDrawablePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||||
|
invalidate();
|
||||||
|
|
||||||
|
WindowManager mWindowManager = (WindowManager) _context.getSystemService(Context.WINDOW_SERVICE);
|
||||||
|
Display display = mWindowManager.getDefaultDisplay();
|
||||||
|
Point size = new Point();
|
||||||
|
display.getSize(size);
|
||||||
|
mScreenHeight = size.y;
|
||||||
|
|
||||||
|
mShowAnimation = ObjectAnimator.ofFloat(this, "Y", currentY);
|
||||||
|
mHideAnimation = ObjectAnimator.ofFloat(this, "Y", mScreenHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onDraw(Canvas canvas)
|
||||||
|
{
|
||||||
|
setClickable(true);
|
||||||
|
canvas.drawCircle(getWidth()/2, getHeight()/2,(float) (getWidth()/2.6), mButtonPaint);
|
||||||
|
canvas.drawBitmap(mBitmap, (getWidth() - mBitmap.getWidth()) / 2, (getHeight() - mBitmap.getHeight()) / 2, mDrawablePaint);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onTouchEvent(MotionEvent event)
|
||||||
|
{
|
||||||
|
if(event.getAction() == MotionEvent.ACTION_UP)
|
||||||
|
{
|
||||||
|
setAlpha(1.0f);
|
||||||
|
}
|
||||||
|
else if(event.getAction() == MotionEvent.ACTION_DOWN)
|
||||||
|
{
|
||||||
|
setAlpha(0.6f);
|
||||||
|
}
|
||||||
|
return super.onTouchEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int dpToPx(int dp)
|
||||||
|
{
|
||||||
|
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
|
||||||
|
return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void hideFab()
|
||||||
|
{
|
||||||
|
if(!mHidden && mShowAnimation != null && !mShowAnimation.isRunning())
|
||||||
|
{
|
||||||
|
currentY = getY();
|
||||||
|
mHideAnimation = ObjectAnimator.ofFloat(this, "Y", mScreenHeight);
|
||||||
|
mHideAnimation.setInterpolator(new AccelerateInterpolator());
|
||||||
|
mHideAnimation.start();
|
||||||
|
mHidden = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void showFab()
|
||||||
|
{
|
||||||
|
if(mHidden && mHideAnimation != null && !mHideAnimation.isRunning())
|
||||||
|
{
|
||||||
|
mShowAnimation = ObjectAnimator.ofFloat(this, "Y", currentY);
|
||||||
|
mShowAnimation.setInterpolator(new DecelerateInterpolator());
|
||||||
|
mShowAnimation.start();
|
||||||
|
mHidden = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isHidden(){
|
||||||
|
return mHidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void listenTo(AbsListView listView) {
|
||||||
|
if (null != listView) {
|
||||||
|
listView.setOnScrollListener(new DirectionScrollListener(this));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
33
libraries/RootCommands/.gitignore
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#Android specific
|
||||||
|
bin
|
||||||
|
gen
|
||||||
|
obj
|
||||||
|
libs/armeabi
|
||||||
|
lint.xml
|
||||||
|
local.properties
|
||||||
|
release.properties
|
||||||
|
ant.properties
|
||||||
|
*.class
|
||||||
|
*.apk
|
||||||
|
|
||||||
|
#Gradle
|
||||||
|
.gradle
|
||||||
|
build
|
||||||
|
gradle.properties
|
||||||
|
gradlew
|
||||||
|
gradlew.bat
|
||||||
|
gradle
|
||||||
|
|
||||||
|
#Maven
|
||||||
|
target
|
||||||
|
pom.xml.*
|
||||||
|
|
||||||
|
#Eclipse
|
||||||
|
.project
|
||||||
|
.classpath
|
||||||
|
.settings
|
||||||
|
.metadata
|
||||||
|
|
||||||
|
#IntelliJ IDEA
|
||||||
|
.idea
|
||||||
|
*.iml
|