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

@@ -1,46 +0,0 @@
package com.stardust.app;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
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.
*/
public class DialogUtils {
public static <T extends Dialog> T showDialog(T dialog) {
Context context = dialog.getContext();
if (!isActivityContext(context)) {
Window window = dialog.getWindow();
if (window != null)
window.setType(WindowManager.LayoutParams.TYPE_PHONE);
}
dialog.show();
return dialog;
}
public static boolean isActivityContext(Context context) {
if (context instanceof Activity)
return true;
if (context instanceof ContextWrapper) {
return isActivityContext(((ContextWrapper) context).getBaseContext());
}
return false;
}
}

View File

@@ -1,48 +0,0 @@
package com.stardust.app;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.stardust.util.ViewUtil;
/**
* Created by Stardust on 2017/1/30.
*/
public abstract class Fragment extends android.support.v4.app.Fragment {
private View mView;
@NonNull
public View getView() {
return mView;
}
public <T extends View> T $(int id) {
return ViewUtil.$(mView, id);
}
public View findViewById(int id) {
return mView.findViewById(id);
}
public View getActivityContentView() {
return getActivity().getWindow().getDecorView();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mView = createView(inflater, container, savedInstanceState);
return mView;
}
@Nullable
public abstract View createView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState);
}

View File

@@ -1,94 +0,0 @@
package com.stardust.app;
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;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Stardust on 2017/3/24.
*/
public class FragmentPagerAdapterBuilder {
public interface OnFragmentInstantiateListener {
void OnInstantiate(int pos, Fragment fragment);
}
private List<Fragment> mFragments = new ArrayList<>();
private List<String> mTitles = new ArrayList<>();
private FragmentActivity mActivity;
public FragmentPagerAdapterBuilder(FragmentActivity activity) {
mActivity = activity;
}
public FragmentPagerAdapterBuilder add(Fragment fragment, String title) {
mFragments.add(fragment);
mTitles.add(title);
return this;
}
public FragmentPagerAdapterBuilder add(Fragment fragment, int titleResId) {
return add(fragment, mActivity.getString(titleResId));
}
public StoredFragmentPagerAdapter build() {
return new StoredFragmentPagerAdapter(mActivity.getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mTitles.get(position);
}
};
}
public abstract static class StoredFragmentPagerAdapter extends FragmentPagerAdapter {
private SparseArray<Fragment> mStoredFragments = new SparseArray<>();
private OnFragmentInstantiateListener mOnFragmentInstantiateListener;
public StoredFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
mStoredFragments.put(position, fragment);
if(mOnFragmentInstantiateListener != null){
mOnFragmentInstantiateListener.OnInstantiate(position, fragment);
}
return fragment;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
mStoredFragments.remove(position);
super.destroyItem(container, position, object);
}
public Fragment getStoredFragment(int position) {
return mStoredFragments.get(position);
}
public void setOnFragmentInstantiateListener(OnFragmentInstantiateListener onFragmentInstantiateListener) {
mOnFragmentInstantiateListener = onFragmentInstantiateListener;
}
}
}

View File

@@ -1,46 +0,0 @@
package com.stardust.app;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Stardust on 2017/4/4.
*/
public class VolumeChangeObserver extends BroadcastReceiver {
public interface OnVolumeChangeListener {
void onVolumeChange();
}
public static final String ACTION_VOLUME_CHANGE = "android.media.VOLUME_CHANGED_ACTION";
private long mLastChangeMillis;
private List<OnVolumeChangeListener> mOnVolumeChangeListenerList = new ArrayList<>();
public void addOnVolumeChangeListener(OnVolumeChangeListener listener) {
mOnVolumeChangeListenerList.add(listener);
}
public void removeOnVolumeChangeListener(OnVolumeChangeListener listener) {
mOnVolumeChangeListenerList.remove(listener);
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_VOLUME_CHANGE)) {
if (System.currentTimeMillis() - mLastChangeMillis < 400) {
return;
}
mLastChangeMillis = System.currentTimeMillis();
for (OnVolumeChangeListener listener : mOnVolumeChangeListenerList) {
listener.onVolumeChange();
}
}
}
}

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);
}