diff --git a/.idea/misc.xml b/.idea/misc.xml
index 8cdb7ebe..13e60141 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 6d885aad..793741b1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -5,16 +5,13 @@ android {
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.stardust.scriptdroid"
- minSdkVersion 24
+ minSdkVersion 19
//由于不知道在API24以上如何调起其他文件编辑器应用编辑文件,只能改到API23。FileProvider貌似只能查看编辑后不能保存?
//参照ScriptFileOperation.Edit
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- jackOptions {
- enabled true
- }
}
buildTypes {
release {
@@ -23,10 +20,19 @@ android {
}
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility JavaVersion.VERSION_1_7
+ targetCompatibility JavaVersion.VERSION_1_7
encoding = 'utf-8'
}
+ dataBinding {
+ enabled = true
+ }
+}
+
+repositories {
+ flatDir {
+ dirs 'libs'
+ }
}
dependencies {
@@ -46,4 +52,21 @@ dependencies {
compile files('libs/JSTransformer.jar')
+ compile 'com.afollestad.material-dialogs:commons:0.9.2.3'
+ compile 'com.makeramen:roundedimageview:2.2.1'
+ compile 'com.rengwuxian.materialedittext:library:2.0.3'
+ compile(name:'920-common-release', ext:'aar'){
+ transitive = true
+ }
+ compile(name:'920-styles-debug', ext:'aar'){
+ transitive = true
+ }
+ compile(name:'920-file_explorer-release', ext:'aar'){
+ transitive = true
+ }
+ compile(name:'920-app-debug', ext:'aar'){
+ transitive = true
+ }
+
+
}
diff --git a/app/libs/920-app-debug.aar b/app/libs/920-app-debug.aar
new file mode 100644
index 00000000..aa73dbf9
Binary files /dev/null and b/app/libs/920-app-debug.aar differ
diff --git a/app/libs/920-common-release.aar b/app/libs/920-common-release.aar
new file mode 100644
index 00000000..e5626de0
Binary files /dev/null and b/app/libs/920-common-release.aar differ
diff --git a/app/libs/920-file_explorer-release.aar b/app/libs/920-file_explorer-release.aar
new file mode 100644
index 00000000..2e65988a
Binary files /dev/null and b/app/libs/920-file_explorer-release.aar differ
diff --git a/app/libs/920-styles-debug.aar b/app/libs/920-styles-debug.aar
new file mode 100644
index 00000000..97afc95b
Binary files /dev/null and b/app/libs/920-styles-debug.aar differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c365a792..9385ba85 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
android:resource="@xml/provider_paths"/>
+
\ No newline at end of file
diff --git a/app/src/main/java/com/stardust/scriptdroid/BaseActivity.java b/app/src/main/java/com/stardust/scriptdroid/BaseActivity.java
index cef1e52b..a70e306d 100644
--- a/app/src/main/java/com/stardust/scriptdroid/BaseActivity.java
+++ b/app/src/main/java/com/stardust/scriptdroid/BaseActivity.java
@@ -4,6 +4,8 @@ import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
+import java.util.ArrayList;
+import java.util.List;
import java.util.stream.Stream;
import static android.content.pm.PackageManager.PERMISSION_DENIED;
@@ -22,11 +24,20 @@ public class BaseActivity extends AppCompatActivity {
protected void checkPermission(String... permissions) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- String[] requestPermissions = Stream.of(permissions).filter(permission -> checkSelfPermission(permission) == PERMISSION_DENIED).toArray(String[]::new);
-
+ String[] requestPermissions = getRequestPermissions(permissions);
if (requestPermissions.length > 0)
requestPermissions(requestPermissions, 0);
}
}
+ private String[] getRequestPermissions(String[] permissions) {
+ List list = new ArrayList<>();
+ for (String permission : permissions) {
+ if (checkSelfPermission(permission) == PERMISSION_DENIED) {
+ list.add(permission);
+ }
+ }
+ return list.toArray(new String[list.size()]);
+ }
+
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/MainActivity.java b/app/src/main/java/com/stardust/scriptdroid/MainActivity.java
index 08f65a46..212e35b0 100644
--- a/app/src/main/java/com/stardust/scriptdroid/MainActivity.java
+++ b/app/src/main/java/com/stardust/scriptdroid/MainActivity.java
@@ -1,8 +1,10 @@
package com.stardust.scriptdroid;
import android.Manifest;
+import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.os.Bundle;
+import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.v7.widget.Toolbar;
import android.text.InputType;
@@ -10,7 +12,9 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
+import com.jecelyin.editor.v2.core.widget.JecEditText;
import com.stardust.scriptdroid.droid.runtime.action.ActionPerformService;
import com.stardust.scriptdroid.droid.script.file.ScriptFile;
import com.stardust.scriptdroid.droid.script.file.ScriptFileList;
@@ -23,8 +27,8 @@ import com.stardust.scriptdroid.ui.SlidingUpPanel;
import com.stardust.util.MapEntries;
import com.stardust.view.accessibility.AccessibilityServiceUtils;
+import java.io.InputStream;
import java.util.Map;
-import java.util.Optional;
public class MainActivity extends BaseActivity {
@@ -54,6 +58,7 @@ public class MainActivity extends BaseActivity {
private void checkPermissions() {
checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
goToAccessibilityPermissionSettingIfDisabled();
+ JecEditText jecEditText = new JecEditText(this);
}
private void goToAccessibilityPermissionSettingIfDisabled() {
@@ -62,19 +67,37 @@ public class MainActivity extends BaseActivity {
.content(R.string.explain_accessibility_permission)
.positiveText(R.string.text_go_to_setting)
.negativeText(R.string.text_cancel)
- .onPositive((dialog, which) -> AccessibilityServiceUtils.goToPermissionSetting(this)).show();
+ .onPositive(new MaterialDialog.SingleButtonCallback() {
+ @Override
+ public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
+ AccessibilityServiceUtils.goToPermissionSetting(MainActivity.this);
+ }
+ }).show();
}
}
private void setUpFileChooser() {
mFileChooser = new FileChooser(this);
- mFileChooser.setOnFileChoseListener(inputStream -> Optional.ofNullable(FileUtils.getPath(inputStream)).ifPresent(this::addScriptFile));
+ mFileChooser.setOnFileChoseListener(new FileChooser.OnFileChoseListener() {
+ @Override
+ public void onFileChose(InputStream inputStream) {
+ String path = FileUtils.getPath(inputStream);
+ if (path != null) {
+ MainActivity.this.addScriptFile(path);
+ }
+ }
+ });
}
private void addScriptFile(final String path) {
new MaterialDialog.Builder(this).title(R.string.text_name)
.inputType(InputType.TYPE_CLASS_TEXT)
- .input(getString(R.string.text_please_input_name), "", (dialog, input) -> addScriptFile(input.toString(), path)).show();
+ .input(getString(R.string.text_please_input_name), "", new MaterialDialog.InputCallback() {
+ @Override
+ public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
+ MainActivity.this.addScriptFile(input.toString(), path);
+ }
+ }).show();
}
private void addScriptFile(String name, String path) {
@@ -107,17 +130,35 @@ public class MainActivity extends BaseActivity {
}
private void setUpListener() {
- $(R.id.fab).setOnClickListener(view -> mSlidingUpPanel.show());
- $(R.id.import_from_file).setOnClickListener(v -> showFileChooser());
- $(R.id.create_new_file).setOnClickListener(v -> createScriptFile());
+ $(R.id.fab).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ mSlidingUpPanel.show();
+ }
+ });
+ $(R.id.import_from_file).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ MainActivity.this.showFileChooser();
+ }
+ });
+ $(R.id.create_new_file).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ MainActivity.this.createScriptFile();
+ }
+ });
}
private void createScriptFile() {
new MaterialDialog.Builder(this).title(R.string.text_name)
.inputType(InputType.TYPE_CLASS_TEXT)
- .input(getString(R.string.text_please_input_name), "", (dialog, input) -> {
- String path = ScriptFile.DEFAULT_FOLDER + input + ".js";
- createScriptFile(input.toString(), path);
+ .input(getString(R.string.text_please_input_name), "", new MaterialDialog.InputCallback() {
+ @Override
+ public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
+ String path = ScriptFile.DEFAULT_FOLDER + input + ".js";
+ MainActivity.this.createScriptFile(input.toString(), path);
+ }
}).show();
}
@@ -131,9 +172,12 @@ public class MainActivity extends BaseActivity {
}
private void showFileChooser() {
- mFileChooser.startFileManagerToChoose("*/*", (exception, mimeType) -> {
- exception.printStackTrace();
- Snackbar.make(mView, R.string.text_file_manager_not_found, Snackbar.LENGTH_SHORT).show();
+ mFileChooser.startFileManagerToChoose("*/*", new FileChooser.FileManagerNotFoundHandler() {
+ @Override
+ public void handle(ActivityNotFoundException exception, String mimeType) {
+ exception.printStackTrace();
+ Snackbar.make(mView, R.string.text_file_manager_not_found, Snackbar.LENGTH_SHORT).show();
+ }
});
}
@@ -145,8 +189,24 @@ public class MainActivity extends BaseActivity {
private final Map mOptionActionMap = new MapEntries()
- .entry(R.id.action_exit, this::finish)
- .entry(R.id.action_disable_service, this::disableAccessibilityService)
+ .entry(R.id.action_exit, new Runnable() {
+ @Override
+ public void run() {
+ MainActivity.this.finish();
+ }
+ })
+ .entry(R.id.action_disable_service, new Runnable() {
+ @Override
+ public void run() {
+ MainActivity.this.disableAccessibilityService();
+ }
+ })
+ .entry(R.id.action_test, new Runnable() {
+ @Override
+ public void run() {
+ startActivity(new Intent(MainActivity.this, TestActivity.class));
+ }
+ })
.map();
@@ -156,7 +216,9 @@ public class MainActivity extends BaseActivity {
}
private void disableAccessibilityService() {
- Optional.ofNullable(ActionPerformService.getInstance()).ifPresent(ActionPerformService::disableSelf);
+ if (ActionPerformService.getInstance() != null) {
+ ActionPerformService.getInstance().disableSelf();
+ }
Snackbar.make(mView, R.string.text_service_disabled, Snackbar.LENGTH_SHORT).show();
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/ShortcutActivity.java b/app/src/main/java/com/stardust/scriptdroid/ShortcutActivity.java
index 3508aed6..e97e3b4f 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ShortcutActivity.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ShortcutActivity.java
@@ -22,19 +22,51 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED;
*/
public class ShortcutActivity extends Activity {
+ interface BooleanSupplier {
+ boolean getAsBoolean();
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final String path = getIntent().getStringExtra("path");
- if (!ensure(() -> !TextUtils.isEmpty(path), R.string.text_path_is_empty))
+ if (!ensure(new BooleanSupplier() {
+ @Override
+ public boolean getAsBoolean() {
+ return !TextUtils.isEmpty(path);
+ }
+ }, R.string.text_path_is_empty))
return;
final File scriptFile = new File(path);
new Domino()
- .then(() -> ensure(scriptFile::exists, R.string.text_file_not_exists))
- .then(() -> ensure(this::hasStorageReadPermission, R.string.text_no_file_rw_permission))
- .then(() -> {
- runScriptFile(path);
- return true;
+ .then(new Tile() {
+ @Override
+ public boolean fall() {
+ return ShortcutActivity.this.ensure(new BooleanSupplier() {
+ @Override
+ public boolean getAsBoolean() {
+ return scriptFile.exists();
+ }
+ }, R.string.text_file_not_exists);
+ }
+ })
+ .then(new Tile() {
+ @Override
+ public boolean fall() {
+ return ShortcutActivity.this.ensure(new BooleanSupplier() {
+ @Override
+ public boolean getAsBoolean() {
+ return ShortcutActivity.this.hasStorageReadPermission();
+ }
+ }, R.string.text_no_file_rw_permission);
+ }
+ })
+ .then(new Tile() {
+ @Override
+ public boolean fall() {
+ ShortcutActivity.this.runScriptFile(path);
+ return true;
+ }
})
.fall();
}
@@ -70,7 +102,6 @@ public class ShortcutActivity extends Activity {
checkSelfPermission(READ_EXTERNAL_STORAGE) == PERMISSION_GRANTED;
}
- @FunctionalInterface
interface Tile {
boolean fall();
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/TestActivity.java b/app/src/main/java/com/stardust/scriptdroid/TestActivity.java
new file mode 100644
index 00000000..0b6a4c24
--- /dev/null
+++ b/app/src/main/java/com/stardust/scriptdroid/TestActivity.java
@@ -0,0 +1,61 @@
+package com.stardust.scriptdroid;
+
+import android.os.Bundle;
+
+import com.jecelyin.editor.v2.Pref;
+import com.jecelyin.editor.v2.common.Command;
+import com.jecelyin.editor.v2.ui.EditorDelegate;
+import com.jecelyin.editor.v2.ui.IActivity;
+import com.jecelyin.editor.v2.ui.TabManager;
+import com.jecelyin.editor.v2.view.EditorView;
+
+/**
+ * Created by Stardust on 2017/1/29.
+ */
+
+public class TestActivity extends BaseActivity implements IActivity{
+
+ public void onCreate(Bundle b) {
+ super.onCreate(b);
+ Pref.getInstance(this).setTheme(0);
+ setContentView(R.layout.edit_layout);
+ EditorDelegate editorDelegate = new EditorDelegate(0, "Hello 920 Editor", "Hello 920");
+ EditorView editorView = $(R.id.editor);
+ editorDelegate.setEditorView(editorView);
+ }
+
+ @Override
+ public void startPickPathActivity(String s, String s1) {
+
+ }
+
+ @Override
+ public void doNextCommand() {
+
+ }
+
+ @Override
+ public TabManager getTabManager() {
+ return null;
+ }
+
+ @Override
+ public void setMenuStatus(int i, int i1) {
+
+ }
+
+ @Override
+ public void onDocumentChanged(int i) {
+
+ }
+
+ @Override
+ public void doCommand(Command command) {
+
+ }
+
+ @Override
+ public void openFile(String s, String s1, int i) {
+
+ }
+}
diff --git a/app/src/main/java/com/stardust/scriptdroid/droid/Droid.java b/app/src/main/java/com/stardust/scriptdroid/droid/Droid.java
index cfce138d..e575b6f9 100644
--- a/app/src/main/java/com/stardust/scriptdroid/droid/Droid.java
+++ b/app/src/main/java/com/stardust/scriptdroid/droid/Droid.java
@@ -35,12 +35,15 @@ public class Droid {
runScriptFile(new File(path));
}
- public void runScript(String script) {
- new Thread(() -> {
- try {
- JAVA_SCRIPT_ENGINE.execute(script);
- } catch (Exception e) {
- RUNTIME.toast("错误" + e.getMessage());
+ public void runScript(final String script) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ JAVA_SCRIPT_ENGINE.execute(script);
+ } catch (Exception e) {
+ RUNTIME.toast("错误" + e.getMessage());
+ }
}
}).start();
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/droid/runtime/DroidRuntime.java b/app/src/main/java/com/stardust/scriptdroid/droid/runtime/DroidRuntime.java
index 03b2b264..4aa261e6 100644
--- a/app/src/main/java/com/stardust/scriptdroid/droid/runtime/DroidRuntime.java
+++ b/app/src/main/java/com/stardust/scriptdroid/droid/runtime/DroidRuntime.java
@@ -148,8 +148,13 @@ public class DroidRuntime implements IDroidRuntime {
@Override
- public void toast(String text) {
- mUIHandler.post(() -> Toast.makeText(App.getApp(), text, Toast.LENGTH_SHORT).show());
+ public void toast(final String text) {
+ mUIHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(App.getApp(), text, Toast.LENGTH_SHORT).show();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/stardust/scriptdroid/droid/runtime/action/Able.java b/app/src/main/java/com/stardust/scriptdroid/droid/runtime/action/Able.java
index 412e598f..ced0f07c 100644
--- a/app/src/main/java/com/stardust/scriptdroid/droid/runtime/action/Able.java
+++ b/app/src/main/java/com/stardust/scriptdroid/droid/runtime/action/Able.java
@@ -13,11 +13,36 @@ import com.stardust.util.SparseArrayEntries;
public interface Able {
SparseArray ABLE_MAP = new SparseArrayEntries()
- .entry(AccessibilityNodeInfo.ACTION_CLICK, AccessibilityNodeInfo::isClickable)
- .entry(AccessibilityNodeInfo.ACTION_LONG_CLICK, AccessibilityNodeInfo::isLongClickable)
- .entry(AccessibilityNodeInfo.ACTION_FOCUS, AccessibilityNodeInfo::isFocusable)
- .entry(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD, AccessibilityNodeInfo::isScrollable)
- .entry(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD, AccessibilityNodeInfo::isScrollable)
+ .entry(AccessibilityNodeInfo.ACTION_CLICK, new Able() {
+ @Override
+ public boolean isAble(AccessibilityNodeInfo nodeInfo) {
+ return nodeInfo.isClickable();
+ }
+ })
+ .entry(AccessibilityNodeInfo.ACTION_LONG_CLICK, new Able() {
+ @Override
+ public boolean isAble(AccessibilityNodeInfo nodeInfo) {
+ return nodeInfo.isLongClickable();
+ }
+ })
+ .entry(AccessibilityNodeInfo.ACTION_FOCUS, new Able() {
+ @Override
+ public boolean isAble(AccessibilityNodeInfo nodeInfo) {
+ return nodeInfo.isFocusable();
+ }
+ })
+ .entry(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD, new Able() {
+ @Override
+ public boolean isAble(AccessibilityNodeInfo nodeInfo) {
+ return nodeInfo.isScrollable();
+ }
+ })
+ .entry(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD, new Able() {
+ @Override
+ public boolean isAble(AccessibilityNodeInfo nodeInfo) {
+ return nodeInfo.isScrollable();
+ }
+ })
.sparseArray();
boolean isAble(AccessibilityNodeInfo node);
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/ScriptFileOperation.java b/app/src/main/java/com/stardust/scriptdroid/ui/ScriptFileOperation.java
index 824b9e6c..4cbf4723 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ui/ScriptFileOperation.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/ScriptFileOperation.java
@@ -3,6 +3,7 @@ package com.stardust.scriptdroid.ui;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
+import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import com.afollestad.materialdialogs.MaterialDialog;
@@ -91,9 +92,12 @@ public abstract class ScriptFileOperation {
public void operate(final ScriptListRecyclerView recyclerView, final ScriptFileList scriptFileList, final int position) {
String oldName = scriptFileList.get(position).name;
new MaterialDialog.Builder(recyclerView.getContext()).title("重命名")
- .input("输入新名称", oldName, (dialog, input) -> {
- scriptFileList.rename(position, input.toString());
- recyclerView.getAdapter().notifyItemChanged(position);
+ .input("输入新名称", oldName, new MaterialDialog.InputCallback() {
+ @Override
+ public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
+ scriptFileList.rename(position, input.toString());
+ recyclerView.getAdapter().notifyItemChanged(position);
+ }
}).show();
}
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/ScriptListRecyclerView.java b/app/src/main/java/com/stardust/scriptdroid/ui/ScriptListRecyclerView.java
index 81cac3f1..8d21a3bd 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ui/ScriptListRecyclerView.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/ScriptListRecyclerView.java
@@ -86,9 +86,12 @@ public class ScriptListRecyclerView extends RecyclerView {
private void initScriptFileOperationPopupMenu() {
mScriptFileOperationPopupMenu = new ScriptFileOperationPopupMenu(getContext());
- mScriptFileOperationPopupMenu.setOnItemClickListener((view, position) -> {
- ScriptFileOperation.getOperation(position).operate(ScriptListRecyclerView.this, mScriptFileList, mOperateFileIndex);
- mScriptFileOperationPopupMenu.dismiss();
+ mScriptFileOperationPopupMenu.setOnItemClickListener(new ScriptFileOperationPopupMenu.OnItemClickListener() {
+ @Override
+ public void onClick(View view, int position) {
+ ScriptFileOperation.getOperation(position).operate(ScriptListRecyclerView.this, mScriptFileList, mOperateFileIndex);
+ mScriptFileOperationPopupMenu.dismiss();
+ }
});
}
@@ -99,7 +102,12 @@ public class ScriptListRecyclerView extends RecyclerView {
private void showOperationDialog(final int position) {
new MaterialDialog.Builder(getContext()).items(ScriptFileOperation.getOperationNames())
- .itemsCallback((dialog, itemView, operation, text) -> ScriptFileOperation.getOperation(operation).operate(ScriptListRecyclerView.this, mScriptFileList, position)).show();
+ .itemsCallback(new MaterialDialog.ListCallback() {
+ @Override
+ public void onSelection(MaterialDialog dialog, View itemView, int operation, CharSequence text) {
+ ScriptFileOperation.getOperation(operation).operate(ScriptListRecyclerView.this, mScriptFileList, position);
+ }
+ }).show();
}
private void showOrDismissOperationPopupMenu(View v) {
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/SlidingUpPanel.java b/app/src/main/java/com/stardust/scriptdroid/ui/SlidingUpPanel.java
index 5da55754..60cb63e0 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ui/SlidingUpPanel.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/SlidingUpPanel.java
@@ -56,7 +56,12 @@ public class SlidingUpPanel extends FrameLayout {
public void dismiss() {
mContentContainer.startAnimation(mSlideDownAnimation);
- postDelayed(() -> setVisibility(GONE), mSlideDownAnimation.getDuration());
+ postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ SlidingUpPanel.this.setVisibility(GONE);
+ }
+ }, mSlideDownAnimation.getDuration());
mShowing = false;
}
@@ -85,7 +90,12 @@ public class SlidingUpPanel extends FrameLayout {
private void initShadow() {
mShadow = findViewById(R.id.shadow);
- mShadow.setOnClickListener(v -> dismiss());
+ mShadow.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ SlidingUpPanel.this.dismiss();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/stardust/util/MapEntries.java b/app/src/main/java/com/stardust/util/MapEntries.java
index 23c618fb..2730238b 100644
--- a/app/src/main/java/com/stardust/util/MapEntries.java
+++ b/app/src/main/java/com/stardust/util/MapEntries.java
@@ -12,7 +12,7 @@ public class MapEntries {
private Map mMap;
public MapEntries() {
- this(new TreeMap<>());
+ this(new TreeMap());
}
public MapEntries(Map map) {
diff --git a/app/src/main/res/drawable/divider.xml b/app/src/main/res/drawable/divider.xml
new file mode 100644
index 00000000..dcf30bcf
--- /dev/null
+++ b/app/src/main/res/drawable/divider.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/divider_drak.xml b/app/src/main/res/drawable/divider_drak.xml
new file mode 100644
index 00000000..3fc12436
--- /dev/null
+++ b/app/src/main/res/drawable/divider_drak.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/edit_layout.xml b/app/src/main/res/layout/edit_layout.xml
new file mode 100644
index 00000000..e8c2daff
--- /dev/null
+++ b/app/src/main/res/layout/edit_layout.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
index ca351e53..d096a821 100644
--- a/app/src/main/res/menu/menu_main.xml
+++ b/app/src/main/res/menu/menu_main.xml
@@ -15,8 +15,14 @@
app:showAsAction="never"/>
+
+
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
index 55344e51..9ee8f7d7 100644
--- a/app/src/main/res/values/attrs.xml
+++ b/app/src/main/res/values/attrs.xml
@@ -1,3 +1,28 @@
+
+
+
+ 4dp
+ 12sp
+ 8dp
+ 8dp
+ 12sp
+ 8dp
+ 0dp
+ 0dp
+
+
+
+
+
+ Vince Mi
+ https://github.com/vinc3m1
+ true
+ A fast ImageView (and Drawable) that supports rounded corners (and ovals or circles) based on the original example from Romain Guy.
+ RoundedImageView
+ 1.3.0
+ https://github.com/vinc3m1/RoundedImageView
+ apache_2_0
+ https://github.com/vinc3m1/RoundedImageView.git
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2903c800..f7f31270 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -17,4 +17,5 @@
路径为空
文件不存在
无文件读写权限
+ 内嵌920测试