diff --git a/app/build.gradle b/app/build.gradle
index 2451864d..29cc33e8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -7,9 +7,9 @@ android {
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.stardust.scriptdroid"
- minSdkVersion 19
+ minSdkVersion 17
targetSdkVersion 23
- versionCode 142
+ versionCode 143
versionName "2.0.13 Beta2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
@@ -118,7 +118,7 @@ dependencies {
compile 'com.yqritc:recyclerview-flexibledivider:1.4.0'
compile 'com.ashokvarma.android:bottom-navigation-bar:2.0.1'
// Tasker Plugin
- compile group: 'com.twofortyfouram', name: 'android-plugin-client-sdk-for-locale', version: '[4.0.2, 5.0['
+ compile 'com.twofortyfouram:android-plugin-client-sdk-for-locale:[4.0.2, 5.0['
compile 'com.android.volley:volley:1.0.0'
compile 'com.flurry.android:analytics:7.0.0@aar'
compile 'com.pushtorefresh.storio:sqlite:1.12.3'
@@ -134,4 +134,5 @@ dependencies {
compile project(':automator')
compile project(':common')
compile project(':autojs')
+ compile files('libs/GDTUnionSDK.4.9.545.min.jar')
}
\ No newline at end of file
diff --git a/app/libs/GDTUnionSDK.4.9.545.min.jar b/app/libs/GDTUnionSDK.4.9.545.min.jar
new file mode 100644
index 00000000..6fd58f48
Binary files /dev/null and b/app/libs/GDTUnionSDK.4.9.545.min.jar differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7fd65ad3..c5eb4e22 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,10 +9,11 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/stardust/scriptdroid/Constants.java b/app/src/main/java/com/stardust/scriptdroid/Constants.java
new file mode 100644
index 00000000..37416f50
--- /dev/null
+++ b/app/src/main/java/com/stardust/scriptdroid/Constants.java
@@ -0,0 +1,10 @@
+package com.stardust.scriptdroid;
+
+/**
+ * Created by Stardust on 2017/7/7.
+ */
+
+public final class Constants {
+ public static final String APP_ID = "1105513627";
+ public static final String SPLASH_POS_ID = "3050728349211259";
+}
diff --git a/app/src/main/java/com/stardust/scriptdroid/Pref.java b/app/src/main/java/com/stardust/scriptdroid/Pref.java
index 7ac1de80..ec102dff 100644
--- a/app/src/main/java/com/stardust/scriptdroid/Pref.java
+++ b/app/src/main/java/com/stardust/scriptdroid/Pref.java
@@ -11,6 +11,8 @@ import com.stardust.scriptdroid.autojs.AutoJs;
import org.mozilla.javascript.tools.debugger.Dim;
import org.mozilla.javascript.tools.debugger.GuiCallback;
+import java.util.concurrent.TimeUnit;
+
/**
* Created by Stardust on 2017/1/31.
*/
@@ -19,6 +21,8 @@ public class Pref {
private static final SharedPreferences DISPOSABLE_BOOLEAN = App.getApp().getSharedPreferences("DISPOSABLE_BOOLEAN", Context.MODE_PRIVATE);
private static final String KEY_SERVER_ADDRESS = "Still love you...17.5.14";
private static final String KEY_SHOULD_SHOW_ANNUNCIATION = "Sing about all the things you forgot, things you are not";
+ private static final String KEY_FIRST_SHOW_AD = "En, Today is 17.7.7, but, I'm still love you so....";
+ private static final String KEY_LAST_SHOW_AD_MILLIS = "But... it seems that...you will not come back any more...";
private static SharedPreferences.OnSharedPreferenceChangeListener onSharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
@@ -129,4 +133,26 @@ public class Pref {
public static boolean shouldShowAnnunciation() {
return getDisposableBoolean(KEY_SHOULD_SHOW_ANNUNCIATION, true);
}
+
+ public static boolean shouldShowAd() {
+ String adShowingMode = def().getString(getString(R.string.key_ad_showing_mode), "Default");
+ switch (adShowingMode) {
+ case "Default":
+ return true;
+ case "OncePerDay":
+ long lastShowMillis = def().getLong(KEY_LAST_SHOW_AD_MILLIS, 0);
+ if (System.currentTimeMillis() - lastShowMillis < TimeUnit.DAYS.toMillis(1)) {
+ return false;
+ }
+ def().edit().putLong(KEY_LAST_SHOW_AD_MILLIS, System.currentTimeMillis()).apply();
+ return true;
+ case "Off":
+ return false;
+ }
+ return true;
+ }
+
+ public static boolean isFirstShowingAd() {
+ return getDisposableBoolean(KEY_FIRST_SHOW_AD, true);
+ }
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/FloatingWindowManger.java b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/FloatingWindowManger.java
deleted file mode 100644
index b791c937..00000000
--- a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/FloatingWindowManger.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.stardust.scriptdroid.external.floatingwindow;
-
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Build;
-import android.preference.PreferenceManager;
-import android.provider.Settings;
-import android.support.annotation.RequiresApi;
-import android.util.Log;
-import android.widget.Toast;
-
-import com.stardust.scriptdroid.App;
-import com.stardust.scriptdroid.R;
-import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
-import com.stardust.util.IntentUtil;
-
-/**
- * Created by Stardust on 2017/3/10.
- */
-
-public class FloatingWindowManger {
-
- private static final String KEY_FLOATING_WINDOW_PERMISSION = "May we go back..I...miss..you..Eating..17.5.9";
- private static final String TAG = "FloatingWindowManger";
-
- public static void showHoverMenu() {
- if (!HoverMenuService.isServiceRunning()) {
- if (!hasFloatingWindowPermission(App.getApp())) {
- Toast.makeText(App.getApp(), R.string.text_no_floating_window_permission, Toast.LENGTH_SHORT).show();
- goToFloatingWindowPermissionSetting();
- } else {
- HoverMenuService.startService(App.getApp());
- }
- }
- }
-
- public static void goToFloatingWindowPermissionSetting() {
- IntentUtil.goToAppDetailSettings(App.getApp());
- }
-
- @RequiresApi(api = Build.VERSION_CODES.M)
- private static void goToOverlayPermissionSettings(Context context, String packageName) {
- try {
- App.getApp().startActivity(new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
- Uri.parse("package:" + context))
- .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
- } catch (Exception e) {
- IntentUtil.goToAppDetailSettings(App.getApp());
- }
- }
-
- public static void checkPermission() {
- final OverlayPermissionChecker checker = new OverlayPermissionChecker(App.getApp());
- checker.setCallback(new OverlayPermissionChecker.Callback() {
- @Override
- public void onCheckResult(boolean granted) {
- checker.setCallback(null);
- Log.d(TAG, "onCheckResult:" + granted);
- setHasFloatingWindowPermission(App.getApp(), granted);
- }
- });
- checker.check(1500);
- }
-
- public static boolean hasFloatingWindowPermission(Context context) {
- return hasOverlayPermission();
- }
-
- private static void setHasFloatingWindowPermission(Context context, boolean has) {
- PreferenceManager.getDefaultSharedPreferences(context).edit().putBoolean(KEY_FLOATING_WINDOW_PERMISSION, has).apply();
- }
-
- private static boolean hasOverlayPermission() {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- return Settings.canDrawOverlays(App.getApp());
- }
- return true;
- }
-
- public static boolean isHoverMenuShowing() {
- return HoverMenuService.isServiceRunning();
- }
-
-
- public static void hideHoverMenu() {
- if (HoverMenuService.isServiceRunning())
- App.getApp().stopService(new Intent(App.getApp(), HoverMenuService.class));
- }
-}
diff --git a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/HoverMenuManger.java b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/HoverMenuManger.java
new file mode 100644
index 00000000..6d1bcf54
--- /dev/null
+++ b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/HoverMenuManger.java
@@ -0,0 +1,48 @@
+package com.stardust.scriptdroid.external.floatingwindow;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Build;
+import android.preference.PreferenceManager;
+import android.provider.Settings;
+import android.support.annotation.RequiresApi;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.stardust.scriptdroid.App;
+import com.stardust.scriptdroid.R;
+import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
+import com.stardust.util.IntentUtil;
+
+import ezy.assist.compat.SettingsCompat;
+
+/**
+ * Created by Stardust on 2017/3/10.
+ */
+
+public class HoverMenuManger {
+
+ private static final String KEY_FLOATING_WINDOW_PERMISSION = "May we go back..I...miss..you..Eating..17.5.9";
+ private static final String TAG = "HoverMenuManger";
+
+ public static void showHoverMenu() {
+ if (!HoverMenuService.isServiceRunning()) {
+ if (!SettingsCompat.canDrawOverlays(App.getApp())) {
+ Toast.makeText(App.getApp(), R.string.text_no_floating_window_permission, Toast.LENGTH_SHORT).show();
+ SettingsCompat.manageDrawOverlays(App.getApp());
+ } else {
+ HoverMenuService.startService(App.getApp());
+ }
+ }
+ }
+
+ public static boolean isHoverMenuShowing() {
+ return HoverMenuService.isServiceRunning();
+ }
+
+
+ public static void hideHoverMenu() {
+ App.getApp().stopService(new Intent(App.getApp(), HoverMenuService.class));
+ }
+}
diff --git a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/OverlayPermissionChecker.java b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/OverlayPermissionChecker.java
deleted file mode 100644
index 39c149b0..00000000
--- a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/OverlayPermissionChecker.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package com.stardust.scriptdroid.external.floatingwindow;
-
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.PixelFormat;
-import android.os.Handler;
-import android.view.Gravity;
-import android.view.View;
-import android.view.WindowManager;
-
-import com.stardust.enhancedfloaty.FloatyService;
-import com.stardust.enhancedfloaty.FloatyWindow;
-
-/**
- * Created by Stardust on 2017/5/9.
- */
-
-public class OverlayPermissionChecker {
-
- public interface Callback {
- void onCheckResult(boolean granted);
- }
-
- private OnePixelWindow mOnePixelWindow = new OnePixelWindow();
- private Callback mCallback;
- private Context mContext;
- private Handler mHandler;
- private Boolean mCheckResult = null;
-
- public OverlayPermissionChecker(Context context) {
- mContext = context;
- mHandler = new Handler(context.getMainLooper());
- }
-
- public void check() {
- mCheckResult = null;
- try {
- FloatyService.addWindow(mOnePixelWindow);
- mContext.startService(new Intent(mContext, FloatyService.class));
- } catch (WindowManager.BadTokenException e) {
- onCheckResult(false);
- }
- }
-
- public void check(int timeOut) {
- check();
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- if (mCheckResult == null) {
- onCheckResult(false);
- }
- }
- }, timeOut);
- }
-
- public void setCallback(Callback callback) {
- mCallback = callback;
- }
-
- private void onCheckResult(boolean b) {
- mCheckResult = b;
- if (mCallback != null) {
- mCallback.onCheckResult(b);
- }
- }
-
-
- private class OnePixelWindow implements FloatyWindow {
-
- private View mOnePixelView;
- private WindowManager mWindowManager;
-
- @Override
- public void onCreate(FloatyService floatyService, WindowManager windowManager) {
- mWindowManager = windowManager;
- mOnePixelView = new View(floatyService) {
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- notifyWindowVisible();
- }
-
- @Override
- protected void onWindowVisibilityChanged(int visibility) {
- super.onWindowVisibilityChanged(visibility);
- }
- };
- mOnePixelView.setWillNotDraw(false);
- mOnePixelView.setBackgroundColor(Color.RED);
- WindowManager.LayoutParams params = new WindowManager.LayoutParams(10, 10,
- WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
- WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
- PixelFormat.TRANSLUCENT);
- params.gravity = Gravity.TOP | Gravity.START;
- windowManager.addView(mOnePixelView, params);
- }
-
- private void notifyWindowVisible() {
- onCheckResult(true);
- //close();
- }
-
- @Override
- public void onServiceDestroy(FloatyService floatyService) {
- close();
- }
-
- @Override
- public void close() {
- mWindowManager.removeView(mOnePixelView);
- FloatyService.removeWindow(this);
- }
- }
-
-}
diff --git a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/HoverMenuService.java b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/HoverMenuService.java
index 213e1a60..aa265fcb 100644
--- a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/HoverMenuService.java
+++ b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/HoverMenuService.java
@@ -17,7 +17,6 @@ import com.stardust.hover.SimpleHoverMenuTransitionListener;
import com.stardust.hover.WindowHoverMenu;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.autojs.AutoJs;
-import com.stardust.scriptdroid.external.floatingwindow.FloatingWindowManger;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.NodeInfo;
import com.stardust.scriptdroid.external.floatingwindow.menu.view.FloatingLayoutBoundsView;
import com.stardust.scriptdroid.external.floatingwindow.menu.view.FloatingLayoutHierarchyView;
@@ -29,6 +28,7 @@ import com.stardust.util.MessageIntent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
+import ezy.assist.compat.SettingsCompat;
import io.mattcarroll.hover.HoverMenu;
import io.mattcarroll.hover.defaulthovermenu.window.WindowViewController;
@@ -129,7 +129,7 @@ public class HoverMenuService extends Service {
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, R.string.text_no_floating_window_permission, Toast.LENGTH_SHORT).show();
- FloatingWindowManger.goToFloatingWindowPermissionSetting();
+ SettingsCompat.manageDrawOverlays(this);
}
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/MainMenuNavigatorContent.java b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/MainMenuNavigatorContent.java
index a74c8373..f688682d 100644
--- a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/MainMenuNavigatorContent.java
+++ b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/MainMenuNavigatorContent.java
@@ -13,6 +13,7 @@ import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.LayoutInspector;
+import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.scriptdroid.ui.main.MainActivity_;
import com.stardust.util.ClipboardUtil;
import com.stardust.util.MessageEvent;
@@ -87,6 +88,12 @@ public class MainMenuNavigatorContent implements NavigatorContent {
HoverMenuService.postIntent(new Intent(HoverMenuService.ACTION_COLLAPSE_MENU));
}
+ @OnClick(R.id.open_accessibility_settings)
+ void openAccessibilitySettings() {
+ AccessibilityServiceTool.enableAccessibilityService();
+ HoverMenuService.postIntent(new Intent(HoverMenuService.ACTION_COLLAPSE_MENU));
+ }
+
@NonNull
@Override
public View getView() {
diff --git a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/ScriptListNavigatorContent.java b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/ScriptListNavigatorContent.java
index a8f8f049..618d3ebf 100644
--- a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/ScriptListNavigatorContent.java
+++ b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/ScriptListNavigatorContent.java
@@ -7,6 +7,7 @@ import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.workground.WrapContentLinearLayoutManager;
import com.stardust.scriptdroid.R;
@@ -14,6 +15,7 @@ import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.scriptdroid.script.ScriptFile;
import com.stardust.scriptdroid.script.Scripts;
import com.stardust.scriptdroid.script.StorageScriptProvider;
+import com.stardust.scriptdroid.ui.common.ScriptLoopDialog;
import com.stardust.scriptdroid.ui.edit.EditActivity;
import com.stardust.scriptdroid.ui.main.script_list.ScriptAndFolderListRecyclerView;
import com.stardust.scriptdroid.ui.main.script_list.ScriptListWithProgressBarView;
@@ -88,18 +90,33 @@ public class ScriptListNavigatorContent implements NavigatorContent {
private class FileViewHolder extends DirectoryViewHolder {
- FileViewHolder(View itemView) {
+ FileViewHolder(final View itemView) {
super(itemView);
itemView.findViewById(R.id.edit).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- int position = mFloatingScriptFileListView.getChildViewHolder((View) v.getParent()).getAdapterPosition();
- ScriptFile file = mFloatingScriptFileListView.getAdapter().getScriptFileAt(position);
- EditActivity.editFile(v.getContext(), file);
+ EditActivity.editFile(v.getContext(), getScriptFile());
HoverMenuService.postIntent(new Intent(HoverMenuService.ACTION_COLLAPSE_MENU));
}
});
+ itemView.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ new ScriptLoopDialog(v.getContext(), getScriptFile())
+ .windowType(WindowManager.LayoutParams.TYPE_PHONE)
+ .show();
+ HoverMenuService.postIntent(new Intent(HoverMenuService.ACTION_COLLAPSE_MENU));
+ return true;
+ }
+ });
+ }
+
+ private ScriptFile getScriptFile() {
+ return mFloatingScriptFileListView.getAdapter().getScriptFileAt(getAdapterPosition());
}
+
}
+
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java b/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java
index c1b19e14..7f2a2173 100644
--- a/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java
+++ b/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java
@@ -111,4 +111,12 @@ public class Scripts {
return AutoJs.getInstance().getScriptEngineService().execute(source, BROADCAST_SENDER_SCRIPT_EXECUTION_LISTENER,
new ExecutionConfig().requirePath(StorageScriptProvider.DEFAULT_DIRECTORY_PATH));
}
+
+ public static ScriptExecution runRepeatedly(ScriptFile scriptFile, int loopTimes, long delay, long interval) {
+ ScriptSource source = new FileScriptSource(scriptFile);
+ String directoryPath = scriptFile.getParent();
+ return AutoJs.getInstance().getScriptEngineService().execute(source, new ExecutionConfig()
+ .requirePath(directoryPath, StorageScriptProvider.DEFAULT_DIRECTORY_PATH)
+ .loop(delay, loopTimes, interval));
+ }
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginClient.java b/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginClient.java
index a24768bd..1a6a28e8 100644
--- a/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginClient.java
+++ b/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginClient.java
@@ -76,7 +76,7 @@ public class SublimePluginClient {
private void tryClose() {
try {
close();
- } catch (IOException e) {
+ } catch (Exception e) {
e.printStackTrace();
}
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/sublime/SublimeResponseHandler.java b/app/src/main/java/com/stardust/scriptdroid/sublime/SublimeResponseHandler.java
index 7179aaed..6d514df2 100644
--- a/app/src/main/java/com/stardust/scriptdroid/sublime/SublimeResponseHandler.java
+++ b/app/src/main/java/com/stardust/scriptdroid/sublime/SublimeResponseHandler.java
@@ -9,8 +9,11 @@ import com.google.gson.JsonObject;
import com.stardust.autojs.execution.ScriptExecution;
import com.stardust.autojs.script.StringScriptSource;
import com.stardust.pio.PFile;
+import com.stardust.scriptdroid.App;
+import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.scriptdroid.script.Scripts;
+import com.stardust.scriptdroid.script.StorageScriptProvider;
/**
* Created by Stardust on 2017/5/11.
@@ -39,6 +42,15 @@ public class SublimeResponseHandler implements Handler {
return true;
}
})
+ .handler("save", new Handler() {
+ @Override
+ public boolean handle(JsonObject data) {
+ String script = data.get("script").getAsString();
+ String name = getName(data);
+ saveScript(name, script);
+ return false;
+ }
+ })
.handler("rerun", new Handler() {
@Override
@@ -91,4 +103,18 @@ public class SublimeResponseHandler implements Handler {
}
return element.getAsString();
}
+
+ private void saveScript(String name, String script) {
+ if (TextUtils.isEmpty(name)) {
+ name = "untitled";
+ }
+ name = PFile.getNameWithoutExtension(name);
+ if (!name.endsWith(".js")) {
+ name = "" + name + ".js";
+ } else {
+ name = "" + name;
+ }
+ PFile.write(StorageScriptProvider.DEFAULT_DIRECTORY_PATH + name, script);
+ App.getApp().getUiHandler().toast(R.string.text_script_save_successfully);
+ }
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/common/ScriptLoopDialog.java b/app/src/main/java/com/stardust/scriptdroid/ui/common/ScriptLoopDialog.java
new file mode 100644
index 00000000..191c41b9
--- /dev/null
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/common/ScriptLoopDialog.java
@@ -0,0 +1,79 @@
+package com.stardust.scriptdroid.ui.common;
+
+import android.content.Context;
+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;
+import com.stardust.scriptdroid.App;
+import com.stardust.scriptdroid.R;
+import com.stardust.scriptdroid.script.ScriptFile;
+import com.stardust.scriptdroid.script.Scripts;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+/**
+ * Created by Stardust on 2017/7/8.
+ */
+
+public class ScriptLoopDialog {
+
+ private ScriptFile mScriptFile;
+ private MaterialDialog mDialog;
+
+ @BindView(R.id.loop_times)
+ TextInputEditText mLoopTimes;
+
+ @BindView(R.id.loop_interval)
+ TextInputEditText mLoopInterval;
+
+ @BindView(R.id.loop_delay)
+ TextInputEditText mLoopDelay;
+
+
+ public ScriptLoopDialog(Context context, ScriptFile file) {
+ mScriptFile = file;
+ View view = View.inflate(context, R.layout.dialog_script_loop, null);
+ mDialog = new MaterialDialog.Builder(context)
+ .title(R.string.text_run_repeatedly)
+ .customView(view, true)
+ .positiveText(R.string.ok)
+ .onPositive(new MaterialDialog.SingleButtonCallback() {
+ @Override
+ public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
+ startScriptRunningLoop();
+ }
+ })
+ .build();
+ ButterKnife.bind(this, view);
+ }
+
+ private void startScriptRunningLoop() {
+ try {
+ int loopTimes = Integer.parseInt(mLoopTimes.getText().toString());
+ float loopInterval = Float.parseFloat(mLoopInterval.getText().toString());
+ float loopDelay = Float.parseFloat(mLoopDelay.getText().toString());
+ Scripts.runRepeatedly(mScriptFile, loopTimes, (long) (1000L * loopDelay), (long) (loopInterval * 1000L));
+ } catch (NumberFormatException e) {
+ App.getApp().getUiHandler().toast(R.string.text_number_format_error);
+ }
+ }
+
+ public ScriptLoopDialog windowType(int windowType) {
+ Window window = mDialog.getWindow();
+ if (window != null) {
+ window.setType(windowType);
+ }
+ return this;
+ }
+
+ public void show() {
+ mDialog.show();
+ }
+
+}
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java
index 221619cc..a627887f 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java
@@ -34,7 +34,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.external.floatingwindow.FloatingWindowManger;
+import com.stardust.scriptdroid.external.floatingwindow.HoverMenuManger;
import com.stardust.scriptdroid.script.ScriptFile;
import com.stardust.scriptdroid.script.StorageScriptProvider;
import com.stardust.scriptdroid.script.sample.Sample;
@@ -46,7 +46,6 @@ import com.stardust.scriptdroid.ui.BaseActivity;
import com.stardust.scriptdroid.ui.main.sample_list.SampleScriptListFragment;
import com.stardust.scriptdroid.ui.main.script_list.MyScriptListFragment;
import com.stardust.scriptdroid.ui.main.script_list.ScriptFileChooserDialogBuilder;
-import com.stardust.scriptdroid.ui.main.task.TaskManagerFragment;
import com.stardust.scriptdroid.ui.settings.SettingsActivity_;
import com.stardust.scriptdroid.ui.update.VersionGuard;
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
@@ -275,7 +274,7 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
@Click(R.id.exit)
public void exitCompletely() {
- FloatingWindowManger.hideHoverMenu();
+ HoverMenuManger.hideHoverMenu();
stopService(new Intent(this, FloatyService.class));
AutoJs.getInstance().getScriptEngineService().stopAll();
finish();
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java
index fcb5599e..967091e4 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java
@@ -15,7 +15,7 @@ import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.Pref;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.autojs.AutoJs;
-import com.stardust.scriptdroid.external.floatingwindow.FloatingWindowManger;
+import com.stardust.scriptdroid.external.floatingwindow.HoverMenuManger;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.view.accessibility.AccessibilityService;
import com.stardust.scriptdroid.sublime.SublimePluginClient;
@@ -50,7 +50,7 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
activity.getSupportFragmentManager().beginTransaction().replace(viewId, fragment).commit();
}
- @ViewById(R.id.sw_auto_operate_service)
+ @ViewById(R.id.sw_accessibility_service)
SwitchCompat mAccessibilityServiceSwitch;
@ViewById(R.id.sw_floating_window)
SwitchCompat mFloatingWindowSwitch;
@@ -89,7 +89,7 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
});
}
}, 450);
- mFloatingWindowSwitch.setChecked(FloatingWindowManger.isHoverMenuShowing());
+ mFloatingWindowSwitch.setChecked(HoverMenuManger.isHoverMenuShowing());
}
@@ -108,7 +108,7 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
mAccessibilityServiceSwitch.toggle();
}
- @CheckedChange(R.id.sw_auto_operate_service)
+ @CheckedChange(R.id.sw_accessibility_service)
void setAutoOperateServiceEnable(CompoundButton button, boolean enable) {
boolean isAccessibilityServiceEnabled = AccessibilityService.isEnabled(App.getApp());
if (enable && !isAccessibilityServiceEnabled) {
@@ -122,10 +122,10 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
@CheckedChange(R.id.sw_floating_window)
void setFloatingWindowEnable(CompoundButton button, boolean enable) {
- if (enable && !FloatingWindowManger.isHoverMenuShowing()) {
- FloatingWindowManger.showHoverMenu();
- } else if (!enable && FloatingWindowManger.isHoverMenuShowing()) {
- FloatingWindowManger.hideHoverMenu();
+ if (enable && !HoverMenuManger.isHoverMenuShowing()) {
+ HoverMenuManger.showHoverMenu();
+ } else if (!enable && HoverMenuManger.isHoverMenuShowing()) {
+ HoverMenuManger.hideHoverMenu();
}
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/script_list/MyScriptListFragment.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/script_list/MyScriptListFragment.java
index f2e2eddf..aef226f0 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ui/main/script_list/MyScriptListFragment.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/script_list/MyScriptListFragment.java
@@ -20,6 +20,7 @@ import com.stardust.pio.PFile;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.script.Scripts;
import com.stardust.scriptdroid.script.StorageScriptProvider;
+import com.stardust.scriptdroid.ui.common.ScriptLoopDialog;
import com.stardust.scriptdroid.ui.edit.EditActivity;
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
import com.stardust.util.UnderuseExecutors;
@@ -106,6 +107,7 @@ public class MyScriptListFragment extends Fragment {
private void initDialogs() {
mScriptFileOperationDialog = new OperationDialogBuilder(getContext())
+ .item(R.id.loop, R.drawable.ic_loop_white_24dp, R.string.text_run_repeatedly)
.item(R.id.rename, R.drawable.ic_ali_rename, R.string.text_rename)
.item(R.id.open_by_other_apps, R.drawable.ic_ali_open, R.string.text_open_by_other_apps)
.item(R.id.create_shortcut, R.drawable.ic_ali_shortcut, R.string.text_send_shortcut)
@@ -228,6 +230,14 @@ public class MyScriptListFragment extends Fragment {
});
}
+ @Optional
+ @OnClick(R.id.loop)
+ void runScriptRepeatedly() {
+ dismissDialogs();
+ new ScriptLoopDialog(getActivity(), mSelectedScriptFile)
+ .show();
+ }
+
@Optional
@OnClick(R.id.rename)
void renameScriptFile() {
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/settings/SettingsActivity.java b/app/src/main/java/com/stardust/scriptdroid/ui/settings/SettingsActivity.java
index 777668ca..bd86ad45 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ui/settings/SettingsActivity.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/settings/SettingsActivity.java
@@ -15,6 +15,8 @@ import com.stardust.scriptdroid.tool.UpdateChecker;
import com.stardust.scriptdroid.ui.BaseActivity;
import com.stardust.scriptdroid.ui.error.IssueReporterActivity;
import com.stardust.scriptdroid.ui.main.MainActivity;
+import com.stardust.scriptdroid.ui.splash.SplashActivity;
+import com.stardust.scriptdroid.ui.splash.SplashActivity_;
import com.stardust.scriptdroid.ui.update.UpdateCheckDialog;
import com.stardust.util.IntentUtil;
import com.stardust.util.MapEntries;
@@ -114,6 +116,15 @@ public class SettingsActivity extends BaseActivity {
Toast.makeText(getActivity(), R.string.text_already_reset, Toast.LENGTH_SHORT).show();
}
})
+ .entry(getString(R.string.show_ad), new Runnable() {
+ @Override
+ public void run() {
+ SplashActivity_.intent(getActivity())
+ .extra(SplashActivity.NOT_START_MAIN_ACTIVITY, true)
+ .extra(SplashActivity.FORCE_SHOW_AD, true)
+ .start();
+ }
+ })
.entry(getString(R.string.text_check_update), new Runnable() {
@Override
public void run() {
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/splash/SplashActivity.java b/app/src/main/java/com/stardust/scriptdroid/ui/splash/SplashActivity.java
new file mode 100644
index 00000000..2ebb6a1b
--- /dev/null
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/splash/SplashActivity.java
@@ -0,0 +1,135 @@
+package com.stardust.scriptdroid.ui.splash;
+
+import android.Manifest;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.util.Log;
+import android.view.View;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.qq.e.ads.splash.SplashAD;
+import com.qq.e.ads.splash.SplashADListener;
+import com.stardust.scriptdroid.Constants;
+import com.stardust.scriptdroid.Pref;
+import com.stardust.scriptdroid.R;
+import com.stardust.scriptdroid.ui.BaseActivity;
+import com.stardust.scriptdroid.ui.main.MainActivity_;
+
+import org.androidannotations.annotations.AfterViews;
+import org.androidannotations.annotations.EActivity;
+import org.androidannotations.annotations.ViewById;
+
+import java.util.Locale;
+
+/**
+ * Created by Stardust on 2017/7/7.
+ */
+@EActivity(R.layout.activity_splash)
+public class SplashActivity extends BaseActivity {
+
+ public static final String NOT_START_MAIN_ACTIVITY = "Eating...I...really...love...you...";
+ public static final String FORCE_SHOW_AD = "I will be better but can you take just a glance at me...";
+
+ private static final String LOG_TAG = SplashActivity.class.getSimpleName();
+
+ @ViewById(R.id.logo)
+ ImageView mLogo;
+
+ @ViewById(R.id.skip_view)
+ TextView mSkipView;
+
+ @ViewById(R.id.ad_container)
+ View mAdContainer;
+
+ @ViewById(R.id.ad)
+ FrameLayout mAd;
+
+ private SplashAD mSplashAD;
+ private boolean mCanEnterNextActivity = false;
+ private boolean mNotStartMainActivity;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ mNotStartMainActivity = getIntent().getBooleanExtra(NOT_START_MAIN_ACTIVITY, false);
+ boolean forceShowAd = getIntent().getBooleanExtra(FORCE_SHOW_AD, false);
+ if (!forceShowAd && !Pref.shouldShowAd()) {
+ enterNextActivity();
+ return;
+ }
+ checkPermission(Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE);
+ }
+
+ @AfterViews
+ void setUpViews() {
+ fetchSplashAD();
+ }
+
+ void enterNextActivity() {
+ if (!mNotStartMainActivity)
+ MainActivity_.intent(this).start();
+ finish();
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ enterNextActivityIfNeeded();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ mCanEnterNextActivity = false;
+ }
+
+ private void enterNextActivityIfNeeded() {
+ if (mCanEnterNextActivity) {
+ enterNextActivity();
+ return;
+ }
+ mCanEnterNextActivity = true;
+ }
+
+ private void fetchSplashAD() {
+ mSplashAD = new SplashAD(this, mAd, mSkipView, Constants.APP_ID, Constants.SPLASH_POS_ID, new SplashADListener() {
+ @Override
+ public void onADDismissed() {
+ Log.v(LOG_TAG, "onADDismissed");
+ enterNextActivityIfNeeded();
+ }
+
+ @Override
+ public void onNoAD(int errno) {
+ Log.e(LOG_TAG, "onNoAD: " + errno);
+ enterNextActivity();
+ }
+
+ @Override
+ public void onADPresent() {
+ Log.v(LOG_TAG, "onADPresent");
+ mSkipView.setVisibility(View.VISIBLE);
+ }
+
+ @Override
+ public void onADClicked() {
+ Log.v(LOG_TAG, "onADClicked");
+ }
+
+ @Override
+ public void onADTick(long l) {
+ mSkipView.setText(String.format(Locale.getDefault(), getString(R.string.format_skip), Math.round(l / 1000f)));
+ }
+ }, 0);
+ }
+}
diff --git a/app/src/main/res/drawable-hdpi/ic_loop_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_loop_white_24dp.png
new file mode 100644
index 00000000..f0072e11
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_loop_white_24dp.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_loop_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_loop_white_24dp.png
new file mode 100644
index 00000000..92cf0a71
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_loop_white_24dp.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_loop_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_loop_white_24dp.png
new file mode 100644
index 00000000..7a7a771e
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_loop_white_24dp.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_loop_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_loop_white_24dp.png
new file mode 100644
index 00000000..be061bfe
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_loop_white_24dp.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_loop_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_loop_white_24dp.png
new file mode 100644
index 00000000..f8b12771
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_loop_white_24dp.png differ
diff --git a/app/src/main/res/drawable/autojs.png b/app/src/main/res/drawable/autojs.png
new file mode 100644
index 00000000..ec66e65e
Binary files /dev/null and b/app/src/main/res/drawable/autojs.png differ
diff --git a/app/src/main/res/drawable/skip_circle_bg.xml b/app/src/main/res/drawable/skip_circle_bg.xml
new file mode 100644
index 00000000..57e57d7d
--- /dev/null
+++ b/app/src/main/res/drawable/skip_circle_bg.xml
@@ -0,0 +1,35 @@
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml
new file mode 100644
index 00000000..abd54e05
--- /dev/null
+++ b/app/src/main/res/layout/activity_splash.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_directory_operations.xml b/app/src/main/res/layout/dialog_directory_operations.xml
deleted file mode 100644
index 7b847e1d..00000000
--- a/app/src/main/res/layout/dialog_directory_operations.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_script_file_operations.xml b/app/src/main/res/layout/dialog_script_file_operations.xml
deleted file mode 100644
index 8dd7d651..00000000
--- a/app/src/main/res/layout/dialog_script_file_operations.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_script_loop.xml b/app/src/main/res/layout/dialog_script_loop.xml
new file mode 100644
index 00000000..adbae78e
--- /dev/null
+++ b/app/src/main/res/layout/dialog_script_loop.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/floating_window_main_menu.xml b/app/src/main/res/layout/floating_window_main_menu.xml
index f44114c9..652a849b 100644
--- a/app/src/main/res/layout/floating_window_main_menu.xml
+++ b/app/src/main/res/layout/floating_window_main_menu.xml
@@ -1,95 +1,117 @@
-
+
-
+ android:orientation="vertical">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/floating_window_record.xml b/app/src/main/res/layout/floating_window_record.xml
index 731981cf..957bcba4 100644
--- a/app/src/main/res/layout/floating_window_record.xml
+++ b/app/src/main/res/layout/floating_window_record.xml
@@ -1,151 +1,158 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+ android:orientation="vertical">
+ android:textSize="20sp"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_edit_side_menu.xml b/app/src/main/res/layout/fragment_edit_side_menu.xml
deleted file mode 100644
index 47971f4a..00000000
--- a/app/src/main/res/layout/fragment_edit_side_menu.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_side_menu.xml b/app/src/main/res/layout/fragment_side_menu.xml
index e90d3b9f..106c7edb 100644
--- a/app/src/main/res/layout/fragment_side_menu.xml
+++ b/app/src/main/res/layout/fragment_side_menu.xml
@@ -1,174 +1,181 @@
-
+
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index bc3563c0..4b9fc3eb 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -8,4 +8,6 @@
-4dp
56dp
0dp
+ 56dp
+ 0dp
diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml
new file mode 100644
index 00000000..10c31a9c
--- /dev/null
+++ b/app/src/main/res/values/ids.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ 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 73d3ea7b..f587aa81 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -190,6 +190,22 @@
在布局范围中查看
更多
分享
+ 跳过 %d
+ 广告可以在设置中关闭
+ key_ad_showing_mode
+ 广告
+ 欣赏广告
+ 广告显示设置
+ Default
+ 保存成功,请刷新目录
+ 循环运行
+ 循环间隔(秒)
+ 延迟执行(秒)
+ 循环次数
+ 0为无限循环
+ 延迟多少秒后开始循环
+ 格式错误
+ 打开无障碍服务
- 无
@@ -205,4 +221,16 @@
- KEY_CAMERA
+
+ - 默认
+ - 每天显示一次
+ - 不显示
+
+
+
+ - Default
+ - OncePerDay
+ - Off
+
+
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 1594db63..d74580ff 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -14,12 +14,10 @@
- false
-