refactor: remove unused resources, cleanup the code structure

This commit is contained in:
hyb1996 2017-10-19 13:33:21 +08:00
parent d95b85cb2e
commit 51cda012d2
96 changed files with 11 additions and 1485 deletions

View File

@ -9,8 +9,8 @@ android {
applicationId "com.stardust.scriptdroid"
minSdkVersion 17
targetSdkVersion 23
versionCode 208
versionName "3.0.0 Alpha9"
versionCode 209
versionName "3.0.0 Alpha10"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
ndk {
@ -82,9 +82,6 @@ dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
// Storio (Sqlite api library)
annotationProcessor 'com.pushtorefresh.storio:sqlite-annotations-processor:1.12.3'
compile 'com.pushtorefresh.storio:sqlite-annotations:1.12.3'
// Android Annotations
annotationProcessor "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"

View File

@ -1,97 +0,0 @@
package com.stardust.scriptdroid.statics;
import android.support.test.InstrumentationRegistry;
import com.stardust.autojs.script.JavaScriptFileSource;
import com.stardust.autojs.script.ScriptSource;
import com.stardust.autojs.script.StringScriptSource;
import com.stardust.util.MapEntries;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Created by Stardust on 2017/5/5.
*/
public class SQLiteStaticsStorageTest {
private SQLiteStaticsStorage mStorage;
@Before
public void setUp() throws Exception {
mStorage = new SQLiteStaticsStorage(InstrumentationRegistry.getTargetContext());
}
@Test
public void record() throws Exception {
testOneRecord();
testTwoRecord();
testRepeatedRecord();
}
@Test
public void testOneRecord() {
mStorage.clear();
mStorage.record(new StringScriptSource("Name", "Script"));
assertEquals(mStorage.getAll(), new MapEntries<String, String>()
.entry("Name.js", "1")
.map());
}
@Test
public void testTwoRecord() {
mStorage.clear();
mStorage.record(new StringScriptSource("Name", "Script"));
mStorage.record(new JavaScriptFileSource("/test/test.js"));
assertEquals(mStorage.getAll(), new MapEntries<String, String>()
.entry("Name.js", "1")
.entry("/test/test.js", "1")
.map());
}
@Test
public void testRepeatedRecord() {
mStorage.clear();
mStorage.record(new JavaScriptFileSource("/test/test.js"));
mStorage.record(new StringScriptSource("Name", "Script"));
mStorage.record(new JavaScriptFileSource("/test/test.js"));
mStorage.record(new JavaScriptFileSource("/test/test.js"));
assertEquals(mStorage.getAll(), new MapEntries<String, String>()
.entry("Name.js", "1")
.entry("/test/test.js", "3")
.map());
}
@Test
public void getMax() throws Exception {
mStorage.clear();
put(new JavaScriptFileSource("/test/test.js"), 50);
put(new StringScriptSource("Name4", "Script"), 10);
put(new StringScriptSource("Name5", "Script"), 5);
put(new StringScriptSource("Name6", "Script"), 4);
put(new StringScriptSource("Name7", "Script"), 3);
put(new StringScriptSource("Name8", "Script"), 1);
put(new StringScriptSource("Name9", "Script"), 1);
put(new StringScriptSource("Name3", "Script"), 20);
put(new StringScriptSource("Name1", "Script"), 100);
assertEquals(mStorage.getMax(5), new MapEntries<String, String>()
.entry("Name1.js", "100")
.entry("/test/test.js", "50")
.entry("Name3.js", "20")
.entry("Name4.js", "10")
.entry("Name5.js", "5")
.map());
}
private void put(ScriptSource source, int times) {
for (int i = 0; i < times; i++) {
mStorage.record(source);
}
}
}

View File

@ -99,7 +99,6 @@
<service android:name="com.stardust.scriptdroid.external.ScriptExecutionIntentService"/>
<service android:name="com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService"/>
<activity android:name=".external.tasker.TaskPrefEditActivity_"/>

View File

@ -1,29 +1,18 @@
package com.stardust.scriptdroid;
import android.app.Activity;
import android.app.Application;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.multidex.MultiDexApplication;
import android.view.KeyEvent;
import com.flurry.android.FlurryAgent;
import com.squareup.leakcanary.LeakCanary;
import com.stardust.app.SimpleActivityLifecycleCallbacks;
import com.stardust.app.VolumeChangeObserver;
import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.scriptdroid.autojs.key.GlobalKeyObserver;
import com.stardust.scriptdroid.autojs.record.GlobalRecorder;
import com.stardust.scriptdroid.statics.ScriptStatics;
import com.stardust.scriptdroid.tool.CrashHandler;
import com.stardust.scriptdroid.tool.JsBeautifierFactory;
import com.stardust.scriptdroid.tool.Logcat;
import com.stardust.scriptdroid.ui.error.ErrorReportActivity;
import com.stardust.theme.ThemeColor;
import com.stardust.theme.ThemeColorManager;
import com.stardust.util.ScreenMetrics;
import com.stardust.util.UiHandler;
import com.stardust.view.accessibility.AccessibilityService;
import com.stardust.view.accessibility.OnKeyListener;
import java.lang.ref.WeakReference;
@ -52,7 +41,9 @@ public class App extends MultiDexApplication {
}
private void setUpStaticsTool() {
ScriptStatics.init(this);
new FlurryAgent.Builder()
.withLogEnabled(BuildConfig.DEBUG)
.build(this, "D42MH48ZN4PJC5TKNYZD");
}

View File

@ -39,7 +39,6 @@ import com.stardust.autojs.core.record.accessibility.AccessibilityActionRecorder
import com.stardust.view.accessibility.AccessibilityService;
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.scriptdroid.ui.console.JraskaConsole;
import com.stardust.view.accessibility.AccessibilityServiceUtils;
import com.stardust.view.accessibility.LayoutInspector;
import com.stardust.view.accessibility.NotificationListener;

View File

@ -5,7 +5,6 @@ import com.stardust.autojs.execution.ScriptExecution;
import com.stardust.autojs.execution.ScriptExecutionListener;
import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.statics.ScriptStatics;
/**
* Created by Stardust on 2017/5/3.
@ -17,7 +16,6 @@ public class ScriptExecutionGlobalListener implements ScriptExecutionListener {
@Override
public void onStart(ScriptExecution execution) {
execution.getEngine().setTag(ENGINE_TAG_START_TIME, System.currentTimeMillis());
ScriptStatics.recordScript(execution.getSource());
}
@Override

View File

@ -4,22 +4,18 @@ import android.content.Context;
import android.os.Looper;
import android.support.annotation.NonNull;
import android.view.ContextThemeWrapper;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Toast;
import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
import com.stardust.app.DialogUtils;
import com.stardust.autojs.core.inputevent.InputEventCodes;
import com.stardust.autojs.core.inputevent.ShellKeyObserver;
import com.stardust.autojs.core.record.Recorder;
import com.stardust.autojs.core.record.accessibility.AccessibilityActionRecorder;
import com.stardust.autojs.core.record.inputevent.InputEventRecorder;
import com.stardust.autojs.core.record.inputevent.InputEventToAutoFileRecorder;
import com.stardust.autojs.core.record.inputevent.InputEventToRootAutomatorRecorder;
import com.stardust.autojs.core.record.inputevent.TouchRecorder;
import com.stardust.autojs.runtime.api.Shell;
import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.Pref;
import com.stardust.scriptdroid.R;
@ -28,8 +24,6 @@ import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.scriptdroid.ui.common.ScriptOperations;
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
import com.stardust.util.ClipboardUtil;
import com.stardust.view.accessibility.AccessibilityService;
import com.stardust.view.accessibility.OnKeyListener;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;

View File

@ -1,139 +0,0 @@
package com.stardust.scriptdroid.statics;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import com.pushtorefresh.storio.sqlite.SQLiteTypeMapping;
import com.pushtorefresh.storio.sqlite.StorIOSQLite;
import com.pushtorefresh.storio.sqlite.impl.DefaultStorIOSQLite;
import com.pushtorefresh.storio.sqlite.queries.DeleteQuery;
import com.pushtorefresh.storio.sqlite.queries.Query;
import com.stardust.autojs.script.ScriptSource;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by Stardust on 2017/5/5.
*/
public class SQLiteStaticsStorage implements ScriptStaticsStorage {
private static final int VERSION = 1;
private static final String DATABASE_NAME = "Ever.db";
static final String TABLE_NAME = "FinalEating";
private StorIOSQLite mStorIOSQLite;
public SQLiteStaticsStorage(Context context) {
mStorIOSQLite = DefaultStorIOSQLite.builder()
.sqliteOpenHelper(new SQLiteOpenHelper(context))
.addTypeMapping(ScriptStaticsRecord.class, new ScriptStaticsRecordSQLiteTypeMapping())
.build();
}
@Override
public void record(ScriptSource source) {
int times = getTimes(source) + 1;
mStorIOSQLite.put()
.object(new ScriptStaticsRecord(source.toString(), times))
.prepare()
.executeAsBlocking();
}
public int getTimes(ScriptSource source) {
ScriptStaticsRecord record = mStorIOSQLite.get()
.object(ScriptStaticsRecord.class)
.withQuery(Query.builder()
.table(TABLE_NAME)
.where("name = ?")
.whereArgs(source.toString())
.build())
.prepare()
.executeAsBlocking();
if (record != null) {
return record.times;
} else {
return 0;
}
}
@Override
public Map<String, String> getAll() {
List<ScriptStaticsRecord> records = mStorIOSQLite.get()
.listOfObjects(ScriptStaticsRecord.class)
.withQuery(Query.builder()
.table(TABLE_NAME)
.orderBy("times")
.build())
.prepare()
.executeAsBlocking();
return toMap(records);
}
private Map<String, String> toMap(List<ScriptStaticsRecord> records) {
Map<String, String> map = new HashMap<>();
for (ScriptStaticsRecord record : records) {
map.put(record.name, String.valueOf(record.times));
}
return map;
}
@Override
public Map<String, String> getMax(int size) {
List<ScriptStaticsRecord> records = mStorIOSQLite.get()
.listOfObjects(ScriptStaticsRecord.class)
.withQuery(Query.builder()
.table(TABLE_NAME)
.orderBy("times DESC")
.limit(size)
.build())
.prepare()
.executeAsBlocking();
return toMap(records);
}
@Override
public void clear() {
mStorIOSQLite.delete()
.byQuery(DeleteQuery.builder()
.table(TABLE_NAME)
.build())
.prepare()
.executeAsBlocking();
}
@Override
public void close() {
try {
mStorIOSQLite.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static class SQLiteOpenHelper extends android.database.sqlite.SQLiteOpenHelper {
SQLiteOpenHelper(Context context) {
super(context, DATABASE_NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME + "(\n"
+ "name TEXT NOT NULL PRIMARY KEY, "
+ "times INTEGER"
+ ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
}

View File

@ -1,49 +0,0 @@
package com.stardust.scriptdroid.statics;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.text.format.DateUtils;
import com.flurry.android.FlurryAgent;
import com.stardust.autojs.script.ScriptSource;
import com.stardust.scriptdroid.BuildConfig;
/**
* Created by Stardust on 2017/5/5.
*/
public class ScriptStatics {
private static final String KEY_MILLIS = "Sorry, I should have left";
private static ScriptStaticsStorage storage;
private static SharedPreferences preferences;
public static void init(Context context) {
storage = new SQLiteStaticsStorage(context);
new FlurryAgent.Builder()
.withLogEnabled(BuildConfig.DEBUG)
.build(context, "D42MH48ZN4PJC5TKNYZD");
preferences = PreferenceManager.getDefaultSharedPreferences(context);
}
public static void recordScript(ScriptSource source) {
storage.record(source);
sendStaticsIfNeeded();
}
private static void sendStaticsIfNeeded() {
long millis = preferences.getLong(KEY_MILLIS, 0);
if (!DateUtils.isToday(millis)) {
preferences.edit().putLong(KEY_MILLIS, System.currentTimeMillis()).apply();
FlurryAgent.logEvent("ScriptStatics", storage.getMax(10));
}
}
@Override
protected void finalize() throws Throwable {
super.finalize();
storage.close();
}
}

View File

@ -1,27 +0,0 @@
package com.stardust.scriptdroid.statics;
import com.pushtorefresh.storio.sqlite.annotations.StorIOSQLiteColumn;
import com.pushtorefresh.storio.sqlite.annotations.StorIOSQLiteCreator;
import com.pushtorefresh.storio.sqlite.annotations.StorIOSQLiteType;
/**
* Created by Stardust on 2017/5/5.
*/
@StorIOSQLiteType(table = SQLiteStaticsStorage.TABLE_NAME)
public class ScriptStaticsRecord {
@StorIOSQLiteColumn(name = "name", key = true)
public String name;
@StorIOSQLiteColumn(name = "times")
public int times;
public ScriptStaticsRecord(String name, int times) {
this.name = name;
this.times = times;
}
public ScriptStaticsRecord() {
}
}

View File

@ -1,22 +0,0 @@
package com.stardust.scriptdroid.statics;
import com.stardust.autojs.script.ScriptSource;
import java.util.Map;
/**
* Created by Stardust on 2017/5/5.
*/
public interface ScriptStaticsStorage {
void record(ScriptSource source);
Map<String, String> getAll();
Map<String, String> getMax(int size);
void clear();
void close();
}

View File

@ -1,4 +1,4 @@
package com.stardust.app;
package com.stardust.scriptdroid.ui.common;
import android.content.Context;
import android.preference.PreferenceManager;

View File

@ -90,4 +90,4 @@ public class OperationDialogBuilder extends MaterialDialog.Builder {
}
}
}
}

View File

@ -5,7 +5,6 @@ import android.support.annotation.NonNull;
import android.support.design.widget.TextInputEditText;
import android.view.View;
import android.view.Window;
import android.widget.Toast;
import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;

View File

@ -21,7 +21,6 @@ import com.stardust.scriptdroid.script.ScriptFile;
import com.stardust.scriptdroid.script.Scripts;
import com.stardust.scriptdroid.script.StorageFileProvider;
import com.stardust.scriptdroid.script.sample.Sample;
import com.stardust.scriptdroid.ui.main.scripts.MyScriptListFragment;
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
import org.reactivestreams.Publisher;

View File

@ -23,13 +23,11 @@ import com.stardust.scriptdroid.script.ScriptFile;
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.scriptdroid.ui.floating.layoutinspector.LayoutBoundsFloatyWindow;
import com.stardust.scriptdroid.ui.floating.layoutinspector.LayoutHierarchyFloatyWindow;
import com.stardust.scriptdroid.ui.floating.layoutinspector.LayoutHierarchyView;
import com.stardust.scriptdroid.ui.main.scripts.ScriptListView;
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
import com.stardust.util.ClipboardUtil;
import com.stardust.view.accessibility.LayoutInspector;
import org.androidannotations.annotations.Click;
import org.greenrobot.eventbus.EventBus;
import butterknife.ButterKnife;

View File

@ -18,7 +18,6 @@ import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
import com.qq.e.comm.DownloadService;
import com.stardust.app.FragmentPagerAdapterBuilder;
import com.stardust.app.NotAskAgainDialog;
import com.stardust.app.OnActivityResultDelegate;
import com.stardust.enhancedfloaty.FloatyService;
import com.stardust.pio.PFile;
@ -26,6 +25,7 @@ import com.stardust.scriptdroid.BuildConfig;
import com.stardust.scriptdroid.Pref;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.scriptdroid.ui.common.NotAskAgainDialog;
import com.stardust.scriptdroid.ui.floating.FloatyWindowManger;
import com.stardust.scriptdroid.script.StorageFileProvider;
import com.stardust.scriptdroid.ui.main.community.CommunityFragment_;

View File

@ -290,7 +290,7 @@ public class DrawerFragment extends android.support.v4.app.Fragment {
}
@Subscribe
void onCircularMenuStateChange(CircularMenu.StateChangeEvent event) {
public void onCircularMenuStateChange(CircularMenu.StateChangeEvent event) {
mFloatingWindowItem.getSwitchCompat().setChecked(event.getCurrentState() != CircularMenu.STATE_CLOSED);
}

View File

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:state_pressed="true">
<set>
<objectAnimator android:duration="100"
android:propertyName="translationZ"
android:valueTo="4dp"
android:valueType="floatType"/>
<objectAnimator android:duration="0"
android:propertyName="elevation"
android:valueTo="2dp"
android:valueType="floatType"/>
</set>
</item>
<item>
<set>
<objectAnimator android:duration="0"
android:propertyName="translationZ"
android:valueTo="0"
android:valueType="floatType"/>
<objectAnimator android:duration="0"
android:propertyName="elevation"
android:valueTo="0"
android:valueType="floatType"/>
</set>
</item>
</selector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 924 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@android:color/white"/>
<item
android:bottom="214dp"
android:drawable="@drawable/autojs_logo"
android:gravity="center"
android:left="100dp"
android:right="100dp"
android:tileMode="repeat"
android:top="214dp">
</item>
</layer-list>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:endColor="#dedede"
android:startColor="@android:color/transparent"/>
</shape>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="2"
android:useLevel="false">
<solid android:color="@color/colorPrimary"/>
</shape>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 901 B

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<size android:height="0.5dp"/>
<solid android:color="#10000000"/>
</shape>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size
android:width="100dp"
android:height="0.77dp"/>
<solid android:color="#efefef"/>
</shape>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 989 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 666 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:foreground="?android:selectableItemBackground">
<ImageView
android:id="@+id/icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginBottom="4dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="4dp"
android:contentDescription="@string/_app_name"
android:scaleType="fitCenter"
android:src="@drawable/ic_folder_yellow_100px"/>
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="8dp"
android:layout_marginRight="80dp"
android:layout_toRightOf="@id/icon"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"
tools:text="示例脚本"/>
</RelativeLayout>

View File

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:foreground="?android:selectableItemBackground"
tools:background="@color/colorPrimary">
<ImageView
android:id="@+id/icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginBottom="4dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="4dp"
android:contentDescription="@string/_app_name"
android:scaleType="fitCenter"
android:src="@drawable/ic_node_js_black"/>
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="8dp"
android:layout_marginRight="54dp"
android:layout_toRightOf="@id/icon"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"
tools:text="正在运行的服务"/>
<LinearLayout
android:id="@+id/edit"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="12dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center"
android:contentDescription="@string/_app_name"
android:src="@drawable/ic_edit_white"/>
</LinearLayout>
</RelativeLayout>

View File

@ -1,117 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:theme="@style/AppTheme">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/layout_hierarchy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:padding="16dp"
android:text="@string/text_layout_hierarchy"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#c4c4c4"/>
<TextView
android:id="@+id/layout_bounds"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:padding="16dp"
android:text="@string/text_layout_bounds"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#c4c4c4"/>
<TextView
android:id="@+id/stop_all_running_scripts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:padding="16dp"
android:text="@string/text_close_all_running_scripts"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#c4c4c4"/>
<TextView
android:id="@+id/open_launcher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:padding="16dp"
android:text="@string/text_open_launcher"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#c4c4c4"/>
<TextView
android:id="@+id/open_accessibility_settings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:padding="16dp"
android:text="@string/text_accessibility_settings"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#c4c4c4"/>
<TextView
android:id="@+id/current_package"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:padding="16dp"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#c4c4c4"/>
<TextView
android:id="@+id/current_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:padding="16dp"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#c4c4c4"/>
</LinearLayout>
</ScrollView>

View File

@ -1,101 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:theme="@style/AppTheme"
tools:background="@color/colorPrimary">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@drawable/floating_menu_divider"
android:orientation="vertical"
android:showDividers="middle">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/text_script_record"
android:textColor="@android:color/primary_text_dark"
android:textSize="20sp"/>
<RelativeLayout
android:id="@+id/sw_root_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:padding="16dp">
<com.stardust.widget.PrefSwitch
android:id="@+id/sw_recorded_by_root"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textOff="@string/text_off"
android:textOn="@string/text_on"
app:defaultValue="false"
app:key="@string/key_record_with_root"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/sw_recorded_by_root"
android:gravity="center_vertical"
android:text="@string/text_record_with_root"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/sw_record_toast_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:padding="16dp">
<com.stardust.widget.PrefSwitch
android:id="@+id/sw_record_toast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textOff="@string/text_off"
android:textOn="@string/text_on"
app:defaultValue="true"
app:key="@string/key_record_toast"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/sw_record_toast"
android:text="@string/text_record_msg"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
</RelativeLayout>
<com.stardust.widget.ViewSwitcher
android:id="@+id/view_switcher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:measureAllChildren="false">
<include layout="@layout/floating_window_record_start"/>
<include layout="@layout/floating_window_record_pause"/>
</com.stardust.widget.ViewSwitcher>
</LinearLayout>
</ScrollView>

View File

@ -1,88 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@drawable/floating_menu_divider"
android:orientation="vertical"
android:showDividers="middle|end">
<LinearLayout
android:id="@+id/pause_or_resume_record"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:paddingBottom="16dp"
android:paddingLeft="8dp"
android:paddingTop="16dp">
<ImageView
android:id="@+id/img_pause_or_resume"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginRight="8dp"
android:src="@drawable/ic_pause_white_24dp"/>
<TextView
android:id="@+id/text_pause_or_resume"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text_pause_record"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/stop_record"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:paddingBottom="16dp"
android:paddingLeft="8dp"
android:paddingTop="16dp">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginRight="8dp"
android:src="@drawable/ic_stop_white_36pt"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text_stop_record"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/discard_record"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:paddingBottom="16dp"
android:paddingLeft="8dp"
android:paddingTop="16dp">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginRight="8dp"
android:src="@drawable/ic_close_white_24dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text_discard_record"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
</LinearLayout>
</LinearLayout>

View File

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@drawable/floating_menu_divider"
android:orientation="vertical"
android:showDividers="middle|end">
<LinearLayout
android:id="@+id/start_record"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:paddingBottom="16dp"
android:paddingLeft="8dp"
android:paddingTop="16dp">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginRight="8dp"
android:src="@drawable/ic_play_arrow_white_48dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text_start_record"
android:textColor="@android:color/primary_text_dark"
android:textSize="16sp"/>
</LinearLayout>
</LinearLayout>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.stardust.scriptdroid.ui.main.sample_list.SampleScriptListRecyclerView
android:id="@+id/script_list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="?selectableItemBackground"
android:gravity="center_vertical"
android:orientation="vertical"
android:paddingLeft="36dp"
android:paddingRight="16dp"
android:textColor="#444444"
android:textSize="16sp">
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:gravity="center"/>
<TextView
android:id="@+id/function_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:gravity="center"/>
</RelativeLayout>

View File

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="170dp"
android:layout_marginBottom="5dp"
android:background="@drawable/profile_bg">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_above="@+id/username"
android:layout_marginBottom="16dp"
android:layout_marginLeft="8dp"
android:scaleType="fitXY"
android:src="@drawable/profile_avatar_placeholder"
app:riv_border_color="@android:color/white"
app:riv_border_width="1dp"
app:riv_corner_radius="32dp"/>
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="16dp"
android:layout_marginLeft="8dp"
android:gravity="center"
android:text="@string/not_login"
android:textColor="@android:color/white"
android:textSize="16sp"/>
</RelativeLayout>

View File

@ -1,119 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/text_name"/>
</android.support.design.widget.TextInputLayout>
<RadioGroup
android:id="@+id/options"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton
android:id="@+id/option_new_file"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/air_baseline"
android:checked="true"
android:paddingLeft="16dp"
android:button="@null"
android:text="@string/text_file"
android:textSize="16sp"/>
<com.github.aakira.expandablelayout.ExpandableRelativeLayout
android:id="@+id/layout_new_file"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
app:ael_expanded="true"
app:ael_orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.AppCompatCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:paddingLeft="3dp"
android:text="@string/text_auto_mode"/>
<android.support.v7.widget.AppCompatCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="3dp"
android:text="@string/text_ui_mode"/>
<android.support.v7.widget.AppCompatCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="3dp"
android:text="@string/text_console"/>
</LinearLayout>
</com.github.aakira.expandablelayout.ExpandableRelativeLayout>
<RadioButton
android:id="@+id/option_new_dir"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:text="@string/text_directory"
android:textSize="16sp"/>
<RadioButton
android:id="@+id/option_import"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:text="@string/text_import"
android:textSize="16sp"/>
<com.github.aakira.expandablelayout.ExpandableRelativeLayout
android:id="@+id/layout_import"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
app:ael_orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text_choose_file"/>
</LinearLayout>
</com.github.aakira.expandablelayout.ExpandableRelativeLayout>
</RadioGroup>
</LinearLayout>

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="?selectableItemBackground"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<com.stardust.widget.LevelBeamView
android:id="@+id/level"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:textColor="@android:color/primary_text_light"
android:textSize="16sp"
tools:text="示例文件"/>
</LinearLayout>

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="56dp"
android:gravity="center_vertical"
android:background="?selectableItemBackground"
android:orientation="horizontal"
android:padding="16dp">
<com.stardust.widget.LevelBeamView
android:id="@+id/level"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"/>
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_toRightOf="@id/level"
android:textColor="@android:color/primary_text_light"
android:textSize="16sp"
tools:text="示例文件"/>
</RelativeLayout>

View File

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:foreground="?android:selectableItemBackground">
<ImageView
android:id="@+id/icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginBottom="4dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="4dp"
android:contentDescription="@string/_app_name"
android:scaleType="fitCenter"
android:src="@drawable/ic_folder_yellow_100px"/>
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="8dp"
android:layout_marginRight="80dp"
android:layout_toRightOf="@id/icon"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@android:color/secondary_text_light"
android:textSize="16sp"
tools:text="示例脚本"/>
</RelativeLayout>

View File

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:foreground="?android:selectableItemBackground">
<ImageView
android:id="@+id/icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginBottom="4dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="4dp"
android:contentDescription="@string/_app_name"
android:scaleType="fitCenter"
android:src="@drawable/ic_node_js_black"/>
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="8dp"
android:layout_marginRight="80dp"
android:layout_toRightOf="@id/icon"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@android:color/secondary_text_light"
android:textSize="16sp"
tools:text="正在运行的服务"/>
<LinearLayout
android:id="@+id/run"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="12dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center"
android:contentDescription="@string/_app_name"
android:src="@drawable/ic_ali_run"/>
</LinearLayout>
</RelativeLayout>

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.stardust.scriptdroid.ui.main.scripts.ScriptListRecyclerView
android:id="@+id/script_list_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.v4.widget.SwipeRefreshLayout>
</merge>

View File

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffffff"
android:orientation="vertical"
tools:showIn="@layout/activity_edit">
<com.jecelyin.editor.v2.view.EditorView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/editor"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<com.jecelyin.editor.v2.core.widget.JecEditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffffff"
android:enabled="true"
android:gravity="start|top"
android:inputType="textMultiLine"
android:padding="5dp"
android:scrollbarThumbVertical="@android:color/transparent"
android:scrollbarTrackVertical="@null"
android:scrollbars="vertical"/>
<me.zhanghai.android.materialprogressbar.MaterialProgressBar
android:id="@+id/progress_view"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="90dp"
android:indeterminate="true"
android:visibility="gone"/>
<com.stardust.scriptdroid.ui.edit.completion.InputMethodEnhanceBar
android:id="@+id/input_method_enhance_bar"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:background="#e7ebec"/>
</com.jecelyin.editor.v2.view.EditorView>
</LinearLayout>

View File

@ -1,64 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text_directory"
android:textColor="#828384"
android:textSize="12sp"/>
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/directory_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="6dp"
android:paddingRight="6dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text_file"
android:textColor="#828384"
android:textSize="12sp"/>
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/script_file_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
</ScrollView>

View File

@ -1,11 +0,0 @@
click 点击
longClick 长按
scrollUp 上滑
scrollDown 下滑
toast 提示
launch 运行
launchApp 运行应用
select 选择
input 输入
sleep 暂停运行
notStopped 非暂停

View File

@ -1,9 +1,7 @@
<resources>
<string name="_app_name">Auto.js</string>
<string name="action_settings">Settings</string>
<string name="text_accessibility_service_description">Required by the script automatic operation (click, long press, slide, etc.).</string>
<string name="text_new_file">New File</string>
<string name="text_import_from_file">Import File</string>
<string name="text_create_fail">Creation failed</string>
<string name="text_please_input_name">Input name</string>
<string name="text_name">Name</string>
@ -27,8 +25,6 @@
<string name="text_setting">Settings</string>
<string name="text_exit">Exit</string>
<string name="text_auto_operate_service">Accessibility Service</string>
<string name="text_syntax_and_api">Help</string>
<string name="text_close_all_running_scripts">Stop all running scripts</string>
<string name="text_about">About</string>
<string name="text_licenses">Open Sources Licenses</string>
<string name="text_do_not_remind_again">Don\'t show again</string>
@ -42,7 +38,6 @@
<string name="text_floating_window">Floating Window</string>
<string name="text_error_report">Bug Report</string>
<string name="text_press_again_to_exit">Press again to exit</string>
<string name="text_common_function">Common using functions</string>
<string name="text_no_running_script">No running scipts</string>
<string name="text_already_stop_n_scripts">%d script(s) is(are) stopped</string>
<string name="text_start_running">Running</string>
@ -70,9 +65,6 @@
<string name="text_issue_report">Feedback</string>
<string name="text_script_record">Record touches</string>
<string name="text_start_record">Start</string>
<string name="text_stop_record">Stop</string>
<string name="text_pause_record">Pause</string>
<string name="text_resume_record">Resume</string>
<string name="text_recorded">Recording stopped</string>
<string name="text_copy_to_clip">Copy</string>
<string name="text_file_write_fail">File writing failed</string>
@ -97,29 +89,15 @@
<string name="text_select_image">Choose a picture</string>
<string name="text_help">Help</string>
<string name="text_no_floating_window_permission">No floating window permission</string>
<string name="text_layout_hierarchy">View layout hierarchy</string>
<string name="text_layout_bounds">View layout bounds</string>
<string name="text_no_accessibility_permission_to_capture">Accessibility service is not activated</string>
<string name="text_sample_script">Samples</string>
<string name="text_my_script">My Scripts</string>
<string name="hint_no_script">Click ADD to create your first script~(。・・)</string>
<string name="text_reset_background">Reset background settings</string>
<string name="text_record_with_root">Recording with Rooting</string>
<string name="text_record_msg">Recording Prompt</string>
<string name="text_text_changed">Text Changed</string>
<string name="text_scrolled">Scrolled</string>
<string name="text_long_clicked">Long Clicked</string>
<string name="text_clicked">Clicked</string>
<string name="text_open_launcher">Open Application</string>
<string name="text_copy_to_my_scripts">Import to my scripts</string>
<string name="text_import_succeed">Import successful</string>
<string name="text_no_root_script_record">Record without root</string>
<string name="text_script_record_with_root">Record with root</string>
<string name="text_use_key_to_start_record">Key to start</string>
<string name="text_use_key_to_stop_record">Key to stop</string>
<string name="text_none">NONE</string>
<string name="key_start_record_trigger">key_start_record_trigger</string>
<string name="key_stop_record_trigger">key_stop_record_trigger</string>
<string name="text_current_activity">Current Activity:</string>
<string name="text_current_package">Current Package:</string>
<string name="go_to_accessibility_settings"><![CDATA[Settings->Accessibility Services->UiAutomator]]></string>
@ -127,9 +105,6 @@
<string name="key_use_volume_control_running">key_use_volume_control_running</string>
<string name="text_use_volume_to_stop_running">Stop all scripts when volume changes</string>
<string name="text_need_to_enable_accessibility_service">Need to enable Accessibility Service</string>
<string name="text_on">ON</string>
<string name="text_off">OFF</string>
<string name="text_please_choose_file_to_import">Select script file to import</string>
<string name="text_refresh">Refresh</string>
<string name="notice_no_running_script"><![CDATA[No running script φ(>ω<*)]]></string>
<string name="text_checking_update">Checking for updates</string>
@ -138,20 +113,12 @@
<string name="text_version_too_old">Version too old</string>
<string name="warning_version_too_old">This version is deprecated</string>
<string name="text_release_notes">Release Notes</string>
<string-array name="record_control_keys">
<item>None</item>
<item>Volume Up</item>
<item>Volume Down</item>
<item>Camera</item>
</string-array>
<string name="text_update">Update</string>
<string name="text_task_manage">Tasks</string>
<string name="text_root_script_record"></string>
<string name="text_processing">Processing</string>
<string name="text_pre_execute_script">Pre-execute script</string>
<string name="text_check_for_updates">Check for updates</string>
<string name="text_new_directory">New Directory</string>
<string name="text_already_reset">已重置</string>
<string name="text_layout_inspector_is_dumping">布局分析中,请稍后点击</string>

View File

@ -2,5 +2,4 @@
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
(such as screen margins) for screens with more than 820dp of available width. This
would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
<dimen name="activity_horizontal_margin">64dp</dimen>
</resources>

View File

@ -1,13 +1,9 @@
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="level_beam_view_padding_left">3dp</dimen>
<dimen name="level_beam_view_line_width">6dp</dimen>
<dimen name="level_beam_view_line_offset">2dp</dimen>
<dimen name="level_beam_view_padding_right">-4dp</dimen>
<dimen name="script_and_folder_list_divider_left_margin">0dp</dimen>
<dimen name="script_and_folder_list_divider_right_margin">0dp</dimen>
<dimen name="floating_icon_size">56dp</dimen>
<dimen name="floating_icon_margin">0dp</dimen>
</resources>

View File

@ -1,8 +1,6 @@
<resources>
<string name="_app_name">Auto.js</string>
<string name="action_settings">设置</string>
<string name="text_new_file">新建文件</string>
<string name="text_import_from_file">从文件导入</string>
<string name="text_create_fail">创建失败</string>
<string name="text_please_input_name">请输入名称</string>
<string name="text_name">名称</string>
@ -26,8 +24,6 @@
<string name="text_setting">设置</string>
<string name="text_exit">退出</string>
<string name="text_auto_operate_service">无障碍服务</string>
<string name="text_syntax_and_api">帮助</string>
<string name="text_close_all_running_scripts">关闭所有正在运行的脚本</string>
<string name="text_about">关于</string>
<string name="text_licenses">开放源代码许可</string>
<string name="text_do_not_remind_again">不再提示</string>
@ -43,7 +39,6 @@
<string name="text_floating_window">悬浮窗</string>
<string name="text_error_report">错误报告</string>
<string name="text_press_again_to_exit">再按一次退出程序</string>
<string name="text_common_function">常用函数</string>
<string name="sorry_for_crash">很抱歉(ಥ _ ಥ)程序遇到未知错误,即将停止运行\n错误代码</string>
<string name="text_no_running_script">没有正在运行的脚本</string>
<string name="text_already_stop_n_scripts">已停止%d个正在运行的脚本</string>
@ -73,9 +68,6 @@
<string name="text_issue_report">问题反馈</string>
<string name="text_script_record">录制脚本</string>
<string name="text_start_record">开始录制</string>
<string name="text_stop_record">停止录制</string>
<string name="text_pause_record">暂停录制</string>
<string name="text_resume_record">继续录制</string>
<string name="text_recorded">录制结束</string>
<string name="text_copy_to_clip">复制到剪贴板</string>
<string name="text_file_write_fail">文件写入失败</string>
@ -99,31 +91,16 @@
<string name="text_theme_color">主题色</string>
<string name="text_select_image">选择图片</string>
<string name="text_help">帮助</string>
<string name="text_root_script_record">录制脚本(root)</string>
<string name="text_no_floating_window_permission">没有悬浮窗权限</string>
<string name="text_layout_hierarchy">布局层次分析</string>
<string name="text_layout_bounds">布局范围查看</string>
<string name="text_no_accessibility_permission_to_capture">无障碍服务未启动</string>
<string name="text_sample_script">示例脚本</string>
<string name="text_my_script">我的脚本</string>
<string name="hint_no_script">点击右上角新建第一个脚本吧~(。・・)</string>
<string name="text_reset_background">重置背景图片设置</string>
<string name="text_record_with_root">使用root权限录制</string>
<string name="text_record_msg">录制提示</string>
<string name="text_text_changed">文字改变</string>
<string name="text_scrolled">滑动</string>
<string name="text_long_clicked">长按</string>
<string name="text_clicked">点击</string>
<string name="text_open_launcher">打开主界面</string>
<string name="text_copy_to_my_scripts">导入到我的脚本</string>
<string name="text_import_succeed">导入成功</string>
<string name="text_no_root_script_record">免Root脚本录制</string>
<string name="text_script_record_with_root">Root脚本录制</string>
<string name="text_use_key_to_start_record">开始录制按键</string>
<string name="text_use_key_to_stop_record">结束录制按键</string>
<string name="text_none">NONE</string>
<string name="key_start_record_trigger">key_start_record_trigger</string>
<string name="key_stop_record_trigger">key_stop_record_trigger</string>
<string name="text_current_activity">当前活动:</string>
<string name="text_current_package">当前应用包名:</string>
<string name="go_to_accessibility_settings"><![CDATA[请打开设置->无障碍服务->AutoJs并开启]]></string>
@ -131,16 +108,10 @@
<string name="key_use_volume_control_running">key_use_volume_control_running</string>
<string name="text_use_volume_to_stop_running">音量上键停止所有脚本</string>
<string name="text_need_to_enable_accessibility_service">需要启用无障碍服务</string>
<string name="key_run_mode">运行方式</string>
<string name="text_on">已开启</string>
<string name="text_off">已关闭</string>
<string name="text_task_manage">任务管理</string>
<string name="text_name_should_not_be_empty">名称不能为空</string>
<string name="text_new_directory">新文件夹</string>
<string name="text_import_fail">导入失败</string>
<string name="delete_confirm">确定要删除吗</string>
<string name="text_no_brower">没有浏览器耶o(╯□╰)o快去安装一个吧</string>
<string name="text_please_choose_file_to_import">请选择要导入的脚本</string>
<string name="text_refresh">刷新</string>
<string name="notice_no_running_script"><![CDATA[没有正在运行的脚本 φ(>ω<*)]]></string>
<string name="text_please_choose_a_script">请选择脚本</string>
@ -172,14 +143,11 @@
<string name="text_layout_inspector_is_dumping">布局分析中,请稍后点击</string>
<string name="text_force_stop">强制停止</string>
<string name="text_execution_finished" formatted="false">\n------------\n[%s]运行结束,用时%f秒</string>
<string name="text_record_format_error">录制格式错误</string>
<string name="text_again"></string>
<string name="text_again_and_again">又双</string>
<string name="text_again_and_again_again">又双叒</string>
<string name="text_again_and_again_again_again">又双叒叕</string>
<string name="debug">连接电脑</string>
<string name="text_connected">已连接</string>
<string name="text_disconnected">已断开连接</string>
<string name="text_server_address">服务器地址</string>
<string name="text_annunciation">声明</string>
<string name="text_about_me_and_repo">关于项目与开发者</string>
@ -189,9 +157,7 @@
<string name="text_show_layout_hierarchy">在布局层次中查看</string>
<string name="text_show_layout_bounds">在布局范围中查看</string>
<string name="text_more">更多</string>
<string name="text_share">分享</string>
<string name="format_skip">跳过 %d</string>
<string name="text_can_close_ad_in_settings">广告可以在设置中关闭</string>
<string name="key_ad_showing_mode">key_ad_showing_mode</string>
<string name="text_ad">广告</string>
<string name="show_ad">欣赏广告</string>
@ -206,17 +172,13 @@
<string name="hint_loop_delay">延迟多少秒后开始循环</string>
<string name="text_number_format_error">格式错误</string>
<string name="text_accessibility_settings">打开无障碍服务</string>
<string name="text_discard_record">放弃录制</string>
<string name="text_inspect_failed">布局抓取失败,请关闭悬浮窗后动一下页面重试</string>
<string name="script_anr">没有相应,要强制停止吗</string>
<string name="text_enable_accessibitliy_service_by_root_failed">使用root权限开启失败</string>
<string name="text_on_progress">处理中</string>
<string name="text_delete_failed">删除失败</string>
<string name="text_enable_accessibility_service_by_root_ing">正在使用root权限启用无障碍服务</string>
<string name="text_edit_script">编辑脚本</string>
<string name="text_run_script">运行脚本</string>
<string name="text_import_script">导入脚本文件</string>
<string name="key_record_with_root">key_record_with_root</string>
<string name="key_record_toast">key_record_toast</string>
<string name="key_root_record_out_file_type">key_root_record_out_file_type</string>
<string name="text_root_record_out_file_type">Root录制生成文件类型</string>
@ -225,8 +187,6 @@
<string name="summary_stable_mode">开启后布局分析更稳定,但小部分脚本可能无法正常运行。重启无障碍服务生效</string>
<string name="text_stable_mode">稳定模式</string>
<string name="key_enable_observe_key">key_enable_observe_key</string>
<string name="summary_enable_observe_key">不启动则无法使用events的按键事件; 启用后软件崩溃等情况会造成按键失灵。重启无障碍服务生效</string>
<string name="text_enable_observe_key">启用按键监听</string>
<string name="text_directory">文件夹</string>
<string name="text_file">文件</string>
<string name="text_tutorial">教程</string>
@ -237,10 +197,6 @@
<string name="text_volume_down_control">音量下键控制</string>
<string name="text_others">其他</string>
<string name="text_import">导入</string>
<string name="text_auto_mode">auto模式</string>
<string name="text_ui_mode">ui模式</string>
<string name="text_new">新建</string>
<string name="text_choose_file">选择文件</string>
<string name="text_click_too_frequently">您的操作太快啦ヽ(#`Д´)ノ</string>
<string name="text_connecting">连接中…</string>
<string name="text_username">用户名</string>
@ -254,7 +210,6 @@
<string name="text_type">类型</string>
<string name="text_donate">捐赠</string>
<string name="text_editor_theme">编辑器主题</string>
<string name="text_util">工具</string>
<string name="text_jump_to_line">跳转到行</string>
<string name="text_info">信息</string>
<string name="text_find_or_replace">查找/替换</string>
@ -284,20 +239,6 @@
<string name="text_exit_floating_window">退出悬浮窗</string>
<string-array name="record_control_keys">
<item></item>
<item>音量上键</item>
<item>音量下键</item>
<item>照相键</item>
</string-array>
<string-array name="record_control_values">
<item>NONE</item>
<item>KEY_VOLUMEUP</item>
<item>KEY_VOLUMEDOWN</item>
<item>KEY_CAMERA</item>
</string-array>
<string-array name="ad_showing_mode_keys">
<item>默认</item>
<item>每天显示一次</item>

View File

@ -7,7 +7,6 @@ import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import com.stardust.app.OnActivityResultDelegate;

View File

@ -5,7 +5,6 @@ import android.content.Context;
import android.content.Intent;
import android.media.projection.MediaProjectionManager;
import android.os.Build;
import android.preference.PreferenceManager;
import android.support.annotation.RequiresApi;
import com.stardust.app.OnActivityResultDelegate;

View File

@ -7,16 +7,6 @@ import android.content.ContextWrapper;
import android.view.Window;
import android.view.WindowManager;
import java.io.IOException;
import javax.annotation.Nullable;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okio.BufferedSink;
/**
* Created by Stardust on 2017/8/4.
*/

View File

@ -1,9 +1,9 @@
package com.stardust.app;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.Fragment;
import android.util.SparseArray;
import android.view.ViewGroup;