rebuild apk
This commit is contained in:
@@ -1,8 +1,35 @@
|
||||
package android.bug;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/2/13.
|
||||
* http://stackoverflow.com/questions/31759171/recyclerview-and-java-lang-indexoutofboundsexception-inconsistency-detected-in
|
||||
*/
|
||||
|
||||
public class WrapContentLinearLayoutManager {
|
||||
public class WrapContentLinearLayoutManager extends LinearLayoutManager {
|
||||
public WrapContentLinearLayoutManager(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public WrapContentLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {
|
||||
super(context, orientation, reverseLayout);
|
||||
}
|
||||
|
||||
public WrapContentLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
|
||||
try {
|
||||
super.onLayoutChildren(recycler, state);
|
||||
} catch (IndexOutOfBoundsException e) {
|
||||
Log.e("LinearLayoutManager", "Android bug ", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.stardust.scriptdroid;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
@@ -29,10 +31,17 @@ public class AboutActivity extends BaseActivity {
|
||||
|
||||
private void setUpUI() {
|
||||
setContentView(R.layout.activity_about);
|
||||
setVersionName();
|
||||
setUpToolbar();
|
||||
ViewBinder.bind(this);
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
private void setVersionName() {
|
||||
TextView version = $(R.id.version);
|
||||
version.setText("Version " + BuildConfig.VERSION_NAME);
|
||||
}
|
||||
|
||||
private void setUpToolbar() {
|
||||
Toolbar toolbar = $(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.stardust.scriptdroid;
|
||||
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
@@ -31,14 +32,16 @@ public class ErrorReportActivity extends BaseActivity {
|
||||
handleIntent();
|
||||
} catch (Throwable throwable) {
|
||||
Log.e(TAG, "", throwable);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void handleIntent() {
|
||||
String message = getIntent().getStringExtra("message");
|
||||
final String errorDetail = getIntent().getStringExtra("error");
|
||||
//showErrorMessage(message, errorDetail);
|
||||
showErrorMessageByDialog(message, errorDetail);
|
||||
//showErrorMessage(message, errorDetail);
|
||||
}
|
||||
|
||||
private void showErrorMessageByDialog(String message, final String errorDetail) {
|
||||
@@ -46,24 +49,39 @@ public class ErrorReportActivity extends BaseActivity {
|
||||
.title(R.string.text_crash)
|
||||
.content(R.string.crash_feedback)
|
||||
.positiveText(R.string.text_exit)
|
||||
.negativeText(R.string.text_copy_debug_info)
|
||||
.neutralText(R.string.text_copy_debug_info)
|
||||
.negativeText(R.string.text_report_bug)
|
||||
.onPositive(new MaterialDialog.SingleButtonCallback() {
|
||||
@Override
|
||||
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
|
||||
exit();
|
||||
}
|
||||
})
|
||||
.onNegative(new MaterialDialog.SingleButtonCallback() {
|
||||
.onNeutral(new MaterialDialog.SingleButtonCallback() {
|
||||
@Override
|
||||
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
|
||||
copyToClip(getDeviceMessage() + errorDetail);
|
||||
exitAfter(1000);
|
||||
}
|
||||
})
|
||||
.onNegative(new MaterialDialog.SingleButtonCallback() {
|
||||
@Override
|
||||
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
|
||||
startIssueReportActivity();
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.cancelable(false)
|
||||
.show();
|
||||
}
|
||||
|
||||
private void startIssueReportActivity() {
|
||||
Intent intent = new Intent(this, IssueReportActivity.class);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
intent.putExtras(getIntent());
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
private void showErrorMessage(String message, String errorDetail) {
|
||||
((TextView) findViewById(R.id.error)).setText(message + "\n" + errorDetail);
|
||||
}
|
||||
@@ -93,7 +111,8 @@ public class ErrorReportActivity extends BaseActivity {
|
||||
}
|
||||
|
||||
private void setUpToolbar() {
|
||||
Toolbar toolbar = $(R.id.toolbar);
|
||||
Toolbar toolbar;
|
||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar.setTitle(getString(R.string.text_error_report));
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setHomeButtonEnabled(false);
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
package com.stardust.scriptdroid;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.support.design.widget.FloatingActionButton;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.heinrichreimersoftware.androidissuereporter.IssueReporterActivity;
|
||||
import com.heinrichreimersoftware.androidissuereporter.model.github.GithubTarget;
|
||||
import com.stardust.scriptdroid.R;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/2/13.
|
||||
@@ -20,8 +24,29 @@ public class IssueReportActivity extends IssueReporterActivity {
|
||||
handleIntent();
|
||||
findViewById(com.heinrichreimersoftware.androidissuereporter.R.id.air_optionAnonymous).performClick();
|
||||
((EditText) findViewById(R.id.air_inputTitle)).setText(R.string.text_bug_report);
|
||||
Toolbar toolbar = (Toolbar) this.findViewById(com.heinrichreimersoftware.androidissuereporter.R.id.air_toolbar);
|
||||
toolbar.setTitle(R.string.text_report_bug);
|
||||
getSupportActionBar().setTitle(R.string.text_report_bug);
|
||||
FloatingActionButton send = (FloatingActionButton) this.findViewById(com.heinrichreimersoftware.androidissuereporter.R.id.air_buttonSend);
|
||||
try {
|
||||
final Method reportIssue = IssueReporterActivity.class.getDeclaredMethod("reportIssue");
|
||||
reportIssue.setAccessible(true);
|
||||
send.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
reportIssue.invoke(IssueReportActivity.this);
|
||||
Toast.makeText(IssueReportActivity.this, R.string.text_report_succeed, Toast.LENGTH_SHORT).show();
|
||||
} catch (IllegalAccessException | InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
Toast.makeText(IssueReportActivity.this, R.string.text_report_fail, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
exit();
|
||||
}
|
||||
});
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void handleIntent() {
|
||||
@@ -29,6 +54,10 @@ public class IssueReportActivity extends IssueReporterActivity {
|
||||
((EditText) findViewById(R.id.air_inputDescription)).setText(errorDetail);
|
||||
}
|
||||
|
||||
private void exit() {
|
||||
finishAffinity();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected GithubTarget getTarget() {
|
||||
return new GithubTarget("hyb1996", "NoRootScriptDroid");
|
||||
@@ -36,7 +65,7 @@ public class IssueReportActivity extends IssueReporterActivity {
|
||||
|
||||
@Override
|
||||
protected String getGuestToken() {
|
||||
return "7860bbb3897c8b2bb29a49a0820dd626bd638b1c";
|
||||
return "cd403d68a9f3a3590a14408d055c55180e7af7d3";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package com.stardust.scriptdroid;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
@@ -11,6 +15,7 @@ import android.support.v7.app.ActionBarDrawerToggle;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.text.InputType;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.afollestad.materialdialogs.DialogAction;
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
@@ -21,6 +26,7 @@ import com.stardust.scriptdroid.droid.script.file.ScriptFile;
|
||||
import com.stardust.scriptdroid.droid.script.file.ScriptFileList;
|
||||
import com.stardust.scriptdroid.droid.script.file.SharedPrefScriptFileList;
|
||||
import com.stardust.scriptdroid.file.FileUtils;
|
||||
import com.stardust.scriptdroid.file.SampleFileTool;
|
||||
import com.stardust.scriptdroid.tool.BackPressedHandler;
|
||||
import com.stardust.scriptdroid.ui.ScriptFileOperation;
|
||||
import com.stardust.scriptdroid.ui.ScriptListRecyclerView;
|
||||
@@ -35,16 +41,25 @@ import java.io.File;
|
||||
|
||||
public class MainActivity extends BaseActivity implements FileChooserDialog.FileCallback {
|
||||
|
||||
public static final String ACTION_NOTIFY_SCRIPT_LIST_CHANGE = "ACTION_NOTIFY_SCRIPT_LIST_CHANGE";
|
||||
|
||||
private SlidingUpPanel mAddFilePanel;
|
||||
private ScriptListRecyclerView mScriptListRecyclerView;
|
||||
private ScriptFileList mScriptFileList;
|
||||
private DrawerLayout mDrawerLayout;
|
||||
private Receiver mReceiver;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setUpUI();
|
||||
checkPermissions();
|
||||
registerReceivers();
|
||||
}
|
||||
|
||||
private void registerReceivers() {
|
||||
mReceiver = new Receiver();
|
||||
registerReceiver(mReceiver, new IntentFilter(ACTION_NOTIFY_SCRIPT_LIST_CHANGE));
|
||||
}
|
||||
|
||||
private void checkPermissions() {
|
||||
@@ -84,7 +99,6 @@ public class MainActivity extends BaseActivity implements FileChooserDialog.File
|
||||
mScriptListRecyclerView.getAdapter().notifyItemInserted(mScriptFileList.size() - 1);
|
||||
}
|
||||
|
||||
|
||||
private void setUpUI() {
|
||||
mDrawerLayout = (DrawerLayout) View.inflate(this, R.layout.activity_main, null);
|
||||
setContentView(mDrawerLayout);
|
||||
@@ -92,15 +106,22 @@ public class MainActivity extends BaseActivity implements FileChooserDialog.File
|
||||
mAddFilePanel = $(R.id.bottom_menu);
|
||||
|
||||
setUpToolbar();
|
||||
setVersionName();
|
||||
setUpScriptList();
|
||||
ViewBinder.bind(this);
|
||||
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
private void setVersionName() {
|
||||
TextView version = $(R.id.version);
|
||||
version.setText("Version " + BuildConfig.VERSION_NAME);
|
||||
}
|
||||
|
||||
private void setUpToolbar() {
|
||||
Toolbar toolbar = $(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
toolbar.setTitle(R.string.app_name);
|
||||
toolbar.setTitle(R.string._app_name);
|
||||
|
||||
ActionBarDrawerToggle drawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.text_drawer_open,
|
||||
R.string.text_drawer_close);
|
||||
@@ -114,7 +135,7 @@ public class MainActivity extends BaseActivity implements FileChooserDialog.File
|
||||
mScriptListRecyclerView.setScriptFileList(mScriptFileList);
|
||||
}
|
||||
|
||||
@ViewBinding.Click(R.id.fab)
|
||||
@ViewBinding.Click(R.id.add)
|
||||
private void showAddFilePanel() {
|
||||
mAddFilePanel.show();
|
||||
}
|
||||
@@ -144,6 +165,7 @@ public class MainActivity extends BaseActivity implements FileChooserDialog.File
|
||||
@ViewBinding.Click(R.id.import_from_file)
|
||||
private void showFileChooser() {
|
||||
new FileChooserDialog.Builder(this)
|
||||
.initialPath(ScriptFile.DEFAULT_FOLDER)
|
||||
.extensionsFilter(".js", ".txt")
|
||||
.show();
|
||||
}
|
||||
@@ -162,7 +184,7 @@ public class MainActivity extends BaseActivity implements FileChooserDialog.File
|
||||
public void onRequestPermissionsResult(int requestCode,
|
||||
@NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
if (requestCode == PERMISSION_REQUEST_CODE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
NonUiInitializer.getInstance().copySampleScriptFileIfNeeded();
|
||||
SampleFileTool.getInstance().copySampleScriptFileIfNeeded();
|
||||
mScriptListRecyclerView.getAdapter().notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
@@ -174,8 +196,31 @@ public class MainActivity extends BaseActivity implements FileChooserDialog.File
|
||||
|
||||
|
||||
private BackPressedHandler mBackPressedHandler = new BackPressedHandler.DoublePressExit(this);
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
mBackPressedHandler.onBackPressed();
|
||||
if (mScriptListRecyclerView.getScriptFileOperationPopupMenu().isShowing()) {
|
||||
mScriptListRecyclerView.getScriptFileOperationPopupMenu().dismiss();
|
||||
} else if (mAddFilePanel.isShowing()) {
|
||||
mAddFilePanel.dismiss();
|
||||
} else {
|
||||
mBackPressedHandler.onBackPressed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
unregisterReceiver(mReceiver);
|
||||
}
|
||||
|
||||
private class Receiver extends BroadcastReceiver {
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent.getAction().equals(ACTION_NOTIFY_SCRIPT_LIST_CHANGE)) {
|
||||
mScriptListRecyclerView.getAdapter().notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,10 +10,8 @@ import android.preference.PreferenceManager;
|
||||
public class Pref {
|
||||
|
||||
private static final SharedPreferences DISPOSABLE_BOOLEAN = App.getApp().getSharedPreferences("DISPOSABLE_BOOLEAN", Context.MODE_PRIVATE);
|
||||
|
||||
public static final String SAMPLE_SCRIPTS_COPIED = "SAMPLE_SCRIPTS_COPIED";
|
||||
|
||||
|
||||
public static SharedPreferences def() {
|
||||
return PreferenceManager.getDefaultSharedPreferences(App.getApp());
|
||||
}
|
||||
@@ -33,4 +31,8 @@ public class Pref {
|
||||
public static boolean isFirstGoToAccessibilitySetting() {
|
||||
return getDisposableBoolean("isFirstGoToAccessibilitySetting", true);
|
||||
}
|
||||
|
||||
public static int oldVersion(){
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import android.support.v7.widget.Toolbar;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.stardust.scriptdroid.file.SampleFileTool;
|
||||
import com.stardust.util.MapEntries;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -65,9 +66,10 @@ public class SettingsActivity extends BaseActivity {
|
||||
.entry(getString(R.string.text_re_import_samples), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
int failCount = NonUiInitializer.getInstance().copySampleScriptFile();
|
||||
int failCount = SampleFileTool.getInstance().copySampleScriptFile();
|
||||
if (failCount <= 0) {
|
||||
Toast.makeText(getActivity(), R.string.text_re_import_succeed, Toast.LENGTH_SHORT).show();
|
||||
notifyScriptListChanged();
|
||||
} else
|
||||
Toast.makeText(getActivity(), R.string.text_fail, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
@@ -87,6 +89,10 @@ public class SettingsActivity extends BaseActivity {
|
||||
.map();
|
||||
}
|
||||
|
||||
private void notifyScriptListChanged() {
|
||||
getActivity().sendBroadcast(new Intent(MainActivity.ACTION_NOTIFY_SCRIPT_LIST_CHANGE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
||||
Runnable action = ACTION_MAP.get(preference.getTitle().toString());
|
||||
|
||||
@@ -41,7 +41,7 @@ public class Droid {
|
||||
public void onRunFinished(Object result, Exception e) {
|
||||
if (e != null) {
|
||||
RUNTIME.toast(App.getApp().getString(R.string.text_error) + ": " + e.getMessage());
|
||||
Timber.e(App.getApp().getString(R.string.text_error), e);
|
||||
Timber.e(e, App.getApp().getString(R.string.text_error));
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -55,12 +55,18 @@ public class Droid {
|
||||
}
|
||||
|
||||
public void runScriptFile(File file) {
|
||||
checkFile(file);
|
||||
runScript(FileUtils.readString(file));
|
||||
runScriptFile(file, null);
|
||||
}
|
||||
|
||||
public void runScriptFile(File file, OnRunFinishedListener listener) {
|
||||
checkFile(file);
|
||||
Timber.v("开始运行脚本文件: " + file);
|
||||
listener = listener == null ? DEFAULT_LISTENER : listener;
|
||||
try {
|
||||
checkFile(file);
|
||||
} catch (Exception e) {
|
||||
listener.onRunFinished(null, e);
|
||||
return;
|
||||
}
|
||||
runScript(FileUtils.readString(file), listener, RunningConfig.getDefault());
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.stardust.scriptdroid.droid.runtime.action.ActionFactory;
|
||||
import com.stardust.scriptdroid.droid.runtime.action.ActionPerformService;
|
||||
import com.stardust.scriptdroid.droid.runtime.action.ActionTarget;
|
||||
import com.stardust.scriptdroid.droid.runtime.api.IDroidRuntime;
|
||||
import com.stardust.scriptdroid.tool.Shell;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -160,7 +161,7 @@ public class DroidRuntime implements IDroidRuntime {
|
||||
App.getApp().startActivity(new Intent(App.getApp(), ConsoleActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
}
|
||||
|
||||
public void clearConsole(){
|
||||
public void clearConsole() {
|
||||
Console.clear();
|
||||
}
|
||||
|
||||
@@ -200,6 +201,10 @@ public class DroidRuntime implements IDroidRuntime {
|
||||
}
|
||||
}
|
||||
|
||||
public void shell(String cmd, int root) {
|
||||
Shell.execCommand(cmd, root != 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isStopped() {
|
||||
return Thread.currentThread().isInterrupted();
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.stardust.scriptdroid.droid.script.file.ScriptFileList;
|
||||
import com.stardust.scriptdroid.droid.script.file.SharedPrefScriptFileList;
|
||||
import com.stardust.util.MapEntries;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -17,13 +18,13 @@ import java.util.Map;
|
||||
*/
|
||||
public class SampleFileTool {
|
||||
|
||||
private static final Map<String, Integer> SAMPLES = new MapEntries<String, Integer>()
|
||||
.entry("sample_alipay_scan.js", R.string.text_sample_alipay_scan)
|
||||
.entry("sample_wechat_scan.js", R.string.text_sample_wechat_scan)
|
||||
private static final Map<String, Integer> SAMPLES = new MapEntries<>(new LinkedHashMap<String, Integer>())
|
||||
.entry("sample_open_running_services.js", R.string.text_sample_open_running_services)
|
||||
.entry("sample_qq_hongbao.js", R.string.text_sample_qq_hongbao)
|
||||
.entry("sample_simple_calculator.js", R.string.text_sample_simple_calculator)
|
||||
.entry("sample_force_qq_chat.js", R.string.text_sample_for_qq_chat)
|
||||
.entry("sample_wechat_scan.js", R.string.text_sample_wechat_scan)
|
||||
.entry("sample_alipay_scan.js", R.string.text_sample_alipay_scan)
|
||||
.map();
|
||||
|
||||
private static SampleFileTool instance = new SampleFileTool();
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.stardust.scriptdroid.ui;
|
||||
|
||||
import android.bug.WrapContentLinearLayoutManager;
|
||||
import android.content.Context;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -44,7 +44,7 @@ public class AssistClipListRecyclerView extends ExpandableRecyclerView {
|
||||
}
|
||||
|
||||
private void init() {
|
||||
setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
setLayoutManager(new WrapContentLinearLayoutManager(getContext()));
|
||||
setAdapter(new Adapter());
|
||||
setOnChildClickListener(new OnChildClickListener() {
|
||||
@Override
|
||||
@@ -58,12 +58,14 @@ public class AssistClipListRecyclerView extends ExpandableRecyclerView {
|
||||
mBoundsAssistClipList.setOnClipChangedListener(new BoundsAssistClipList.OnClipChangedListener() {
|
||||
@Override
|
||||
public void onClipRemove(int position) {
|
||||
getAdapter().notifyItemRemoved(position);
|
||||
if (isExpanded())
|
||||
getAdapter().notifyItemRemoved(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClipInsert(int position) {
|
||||
getAdapter().notifyItemInserted(position);
|
||||
if (isExpanded())
|
||||
getAdapter().notifyItemInserted(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.stardust.scriptdroid.ui;
|
||||
|
||||
import android.bug.WrapContentLinearLayoutManager;
|
||||
import android.content.Context;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -68,7 +68,7 @@ public class FunctionListRecyclerView extends ExpandableRecyclerView {
|
||||
}
|
||||
|
||||
private void init() {
|
||||
setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
setLayoutManager(new WrapContentLinearLayoutManager(getContext()));
|
||||
setAdapter(new Adapter());
|
||||
setFunctionList(FUNCTION_LIST);
|
||||
setOnChildClickListener(new OnChildClickListener() {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.stardust.scriptdroid.ui;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
@@ -60,7 +60,7 @@ public class ScriptFileOperationPopupMenu extends PopupWindow {
|
||||
private void init() {
|
||||
setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
|
||||
setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
|
||||
setBackgroundDrawable(new BitmapDrawable());
|
||||
setBackgroundDrawable(new ColorDrawable());
|
||||
setOutsideTouchable(true);
|
||||
setAnimationStyle(-1);
|
||||
initContentView();
|
||||
|
||||
@@ -77,6 +77,10 @@ public class ScriptListRecyclerView extends RecyclerView {
|
||||
init();
|
||||
}
|
||||
|
||||
public ScriptFileOperationPopupMenu getScriptFileOperationPopupMenu() {
|
||||
return mScriptFileOperationPopupMenu;
|
||||
}
|
||||
|
||||
private void init() {
|
||||
setAdapter(new Adapter());
|
||||
setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
|
||||
@@ -54,6 +54,7 @@ public class SlideMenuFragment extends Fragment {
|
||||
syncSwitchState();
|
||||
}
|
||||
|
||||
|
||||
private void syncSwitchState() {
|
||||
mAutoOperateServiceSwitch.postDelayed(new Runnable() {
|
||||
@Override
|
||||
|
||||
@@ -18,7 +18,7 @@ public class AccessibilityServiceUtils {
|
||||
|
||||
public static void goToAccessibilitySetting(Context context) {
|
||||
if (Pref.isFirstGoToAccessibilitySetting()) {
|
||||
Toast.makeText(context, context.getString(R.string.text_please_choose) + context.getString(R.string.app_name), Toast.LENGTH_LONG).show();
|
||||
Toast.makeText(context, context.getString(R.string.text_please_choose) + context.getString(R.string._app_name), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
context.startActivity(new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user