add: new ui for drawer
This commit is contained in:
@@ -36,6 +36,7 @@ import com.stardust.scriptdroid.script.StorageFileProvider;
|
||||
import com.stardust.scriptdroid.ui.common.ScriptOperations;
|
||||
import com.stardust.scriptdroid.ui.main.community.CommunityFragment;
|
||||
import com.stardust.scriptdroid.ui.main.doc.OnlineDocsFragment_;
|
||||
import com.stardust.scriptdroid.ui.main.drawer.DrawerFragment;
|
||||
import com.stardust.scriptdroid.ui.main.script_list.MyScriptListFragment_;
|
||||
import com.stardust.scriptdroid.ui.main.task.TaskManagerFragment_;
|
||||
import com.stardust.util.DeveloperUtils;
|
||||
@@ -61,8 +62,6 @@ import org.greenrobot.eventbus.Subscribe;
|
||||
@EActivity(R.layout.activity_main)
|
||||
public class MainActivity extends BaseActivity implements OnActivityResultDelegate.DelegateHost {
|
||||
|
||||
public static final String MESSAGE_CLEAR_BACKGROUND_SETTINGS = "MESSAGE_CLEAR_BACKGROUND_SETTINGS";
|
||||
|
||||
private static final String LOG_TAG = "MainActivity";
|
||||
|
||||
@ViewById(R.id.drawer_layout)
|
||||
@@ -76,7 +75,6 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
|
||||
private FragmentPagerAdapterBuilder.StoredFragmentPagerAdapter mPagerAdapter;
|
||||
private OnActivityResultDelegate.Mediator mActivityResultMediator = new OnActivityResultDelegate.Mediator();
|
||||
private DrawableSaver mDrawerHeaderBackgroundSaver;
|
||||
private VersionGuard mVersionGuard;
|
||||
|
||||
|
||||
@@ -84,20 +82,14 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
checkPermissions();
|
||||
EventBus.getDefault().register(this);
|
||||
mVersionGuard = new VersionGuard(this);
|
||||
showAnnunciationIfNeeded();
|
||||
//Stop download service of ad sdk
|
||||
// FIXME: 2017/8/1 Service not stopped!
|
||||
stopService(new Intent(this, DownloadService.class));
|
||||
}
|
||||
|
||||
@AfterViews
|
||||
void setUpViews() {
|
||||
setUpToolbar();
|
||||
setUpTabViewPager();
|
||||
setUpDrawerHeader();
|
||||
setUpFragment();
|
||||
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
|
||||
registerBackPressHandlers();
|
||||
}
|
||||
@@ -152,17 +144,6 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
}
|
||||
}
|
||||
|
||||
private void setUpFragment() {
|
||||
SideMenuFragment.setFragment(this, R.id.fragment_slide_menu);
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
private void setUpDrawerHeader() {
|
||||
TextView version = $(R.id.version);
|
||||
version.setText("Version " + BuildConfig.VERSION_NAME);
|
||||
mDrawerHeaderBackgroundSaver = new DrawableSaver.ImageSaver(this, "drawer_header_background", (ImageView) $(R.id.drawer_header_img));
|
||||
}
|
||||
|
||||
private void setUpToolbar() {
|
||||
Toolbar toolbar = $(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
@@ -251,11 +232,6 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
finish();
|
||||
}
|
||||
|
||||
@Click(R.id.drawer_header_img)
|
||||
public void selectHeaderImage() {
|
||||
mDrawerHeaderBackgroundSaver.select(this, mActivityResultMediator);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
@@ -268,13 +244,6 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
mVersionGuard.checkDeprecateAndUpdate();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMessageEvent(MessageEvent event) {
|
||||
if (event.message.equals(MESSAGE_CLEAR_BACKGROUND_SETTINGS)) {
|
||||
mDrawerHeaderBackgroundSaver.reset();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
mActivityResultMediator.onActivityResult(requestCode, resultCode, data);
|
||||
@@ -294,11 +263,6 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
|
||||
@@ -1,22 +1,19 @@
|
||||
package com.stardust.scriptdroid.ui.main;
|
||||
package com.stardust.scriptdroid.ui.main.drawer;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.support.v7.widget.SwitchCompat;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.afollestad.materialdialogs.DialogAction;
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.qq.e.comm.DownloadService;
|
||||
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.HoverMenuManger;
|
||||
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
|
||||
import com.stardust.scriptdroid.ui.common.ProgressDialog;
|
||||
@@ -25,8 +22,6 @@ import com.stardust.scriptdroid.sublime.SublimePluginClient;
|
||||
import com.stardust.scriptdroid.sublime.SublimePluginService;
|
||||
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
||||
import com.stardust.scriptdroid.tool.WifiTool;
|
||||
import com.stardust.scriptdroid.ui.console.LogActivity_;
|
||||
import com.stardust.scriptdroid.ui.help.HelpCatalogueActivity;
|
||||
import com.stardust.util.IntentUtil;
|
||||
import com.stardust.util.UnderuseExecutors;
|
||||
|
||||
@@ -44,19 +39,11 @@ import java.util.concurrent.Executor;
|
||||
/**
|
||||
* Created by Stardust on 2017/1/30.
|
||||
*/
|
||||
@EFragment(R.layout.fragment_side_menu)
|
||||
public class SideMenuFragment extends android.support.v4.app.Fragment {
|
||||
@EFragment(R.layout.fragment_drawer)
|
||||
public class DrawerFragment extends android.support.v4.app.Fragment {
|
||||
|
||||
public static void setFragment(FragmentActivity activity, int viewId) {
|
||||
SideMenuFragment fragment = new SideMenuFragment_();
|
||||
activity.getSupportFragmentManager().beginTransaction().replace(viewId, fragment).commit();
|
||||
}
|
||||
|
||||
@ViewById(R.id.sw_accessibility_service)
|
||||
SwitchCompat mAccessibilityServiceSwitch;
|
||||
@ViewById(R.id.sw_floating_window)
|
||||
SwitchCompat mFloatingWindowSwitch;
|
||||
@ViewById(R.id.sw_debug)
|
||||
SwitchCompat mDebugSwitch;
|
||||
private Executor mExecutor = UnderuseExecutors.getExecutor();
|
||||
|
||||
@@ -69,7 +56,7 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
syncSwitchState();
|
||||
//syncSwitchState();
|
||||
}
|
||||
|
||||
|
||||
@@ -100,23 +87,6 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
|
||||
mFloatingWindowSwitch.setChecked(HoverMenuManger.isHoverMenuShowing());
|
||||
}
|
||||
|
||||
|
||||
@Click(R.id.console)
|
||||
void startConsoleActivity() {
|
||||
startActivity(new Intent(getActivity(), LogActivity_.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
}
|
||||
|
||||
@Click(R.id.syntax_and_api)
|
||||
void startSyntaxHelpActivity() {
|
||||
HelpCatalogueActivity.showMainCatalogue(getActivity());
|
||||
}
|
||||
|
||||
@Click(R.id.auto_operate_service)
|
||||
void clickAutoOperateServiceSwitch() {
|
||||
mAccessibilityServiceSwitch.toggle();
|
||||
}
|
||||
|
||||
@CheckedChange(R.id.sw_accessibility_service)
|
||||
void setAutoOperateServiceEnable(CompoundButton button, boolean enable) {
|
||||
boolean isAccessibilityServiceEnabled = AccessibilityServiceTool.isAccessibilityServiceEnabled(App.getApp());
|
||||
if (enable && !isAccessibilityServiceEnabled) {
|
||||
@@ -157,7 +127,6 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
|
||||
});
|
||||
}
|
||||
|
||||
@CheckedChange(R.id.sw_floating_window)
|
||||
void setFloatingWindowEnable(CompoundButton button, boolean enable) {
|
||||
if (enable && !HoverMenuManger.isHoverMenuShowing()) {
|
||||
HoverMenuManger.showHoverMenu();
|
||||
@@ -169,17 +138,6 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
|
||||
}
|
||||
}
|
||||
|
||||
@Click(R.id.floating_window)
|
||||
void toggleAssistServiceSwitch() {
|
||||
mFloatingWindowSwitch.toggle();
|
||||
}
|
||||
|
||||
@Click(R.id.debug)
|
||||
void toggleDebugSwitch() {
|
||||
mDebugSwitch.toggle();
|
||||
}
|
||||
|
||||
@CheckedChange(R.id.sw_debug)
|
||||
void setDebugEnabled(CompoundButton button, boolean enabled) {
|
||||
if (enabled && !SublimePluginService.isConnected()) {
|
||||
new MaterialDialog.Builder(getActivity())
|
||||
@@ -208,15 +166,6 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
|
||||
return Pref.getServerAddressOrDefault(WifiTool.getWifiAddress(getActivity()));
|
||||
}
|
||||
|
||||
@Click(R.id.stop_all_running_scripts)
|
||||
void stopAllRunningScripts() {
|
||||
int n = AutoJs.getInstance().getScriptEngineService().stopAll();
|
||||
if (n > 0)
|
||||
Snackbar.make(getView(), String.format(getString(R.string.text_already_stop_n_scripts), n), Snackbar.LENGTH_SHORT).show();
|
||||
else
|
||||
Snackbar.make(getView(), R.string.text_no_running_script, Snackbar.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.stardust.scriptdroid.ui.main.drawer;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.os.Build;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.TypedValue;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.stardust.scriptdroid.R;
|
||||
|
||||
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/8/25.
|
||||
*/
|
||||
|
||||
public class DrawerMenuGroup extends LinearLayout {
|
||||
|
||||
private TextView mTitle;
|
||||
|
||||
public DrawerMenuGroup(Context context) {
|
||||
super(context);
|
||||
init(null);
|
||||
}
|
||||
|
||||
public DrawerMenuGroup(Context context, @Nullable AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
init(attrs);
|
||||
}
|
||||
|
||||
public DrawerMenuGroup(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
init(attrs);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||
public DrawerMenuGroup(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
init(attrs);
|
||||
}
|
||||
|
||||
private void init(AttributeSet attrs) {
|
||||
setOrientation(VERTICAL);
|
||||
addTitleView();
|
||||
if (attrs == null) {
|
||||
return;
|
||||
}
|
||||
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.DrawerMenuItem);
|
||||
mTitle.setText(a.getString(R.styleable.DrawerMenuItem_title));
|
||||
a.recycle();
|
||||
}
|
||||
|
||||
private void addTitleView() {
|
||||
mTitle = new TextView(getContext());
|
||||
int padding = (int) TypedValue.applyDimension(COMPLEX_UNIT_DIP, 8, getResources().getDisplayMetrics());
|
||||
mTitle.setPadding(padding, padding, padding, padding);
|
||||
mTitle.setTextColor(0xff999999);
|
||||
mTitle.setTextSize(12);
|
||||
addView(mTitle, 0);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.stardust.scriptdroid.ui.main.drawer;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.support.v7.widget.SwitchCompat;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.stardust.scriptdroid.R;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/8/25.
|
||||
*/
|
||||
public class DrawerMenuItem extends FrameLayout {
|
||||
|
||||
private SwitchCompat mSwitchCompat;
|
||||
|
||||
public DrawerMenuItem(Context context) {
|
||||
super(context);
|
||||
init(null);
|
||||
}
|
||||
|
||||
public DrawerMenuItem(Context context, @Nullable AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
init(attrs);
|
||||
}
|
||||
|
||||
public DrawerMenuItem(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
init(attrs);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||
public DrawerMenuItem(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
init(attrs);
|
||||
}
|
||||
|
||||
private void init(AttributeSet attrs) {
|
||||
inflate(getContext(), R.layout.drawer_menu_item, this);
|
||||
ImageView icon = (ImageView) findViewById(R.id.icon);
|
||||
TextView title = (TextView) findViewById(R.id.title);
|
||||
mSwitchCompat = (SwitchCompat) findViewById(R.id.sw);
|
||||
if (attrs == null)
|
||||
return;
|
||||
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.DrawerMenuItem);
|
||||
icon.setImageResource(a.getResourceId(R.styleable.DrawerMenuItem_icon, 0));
|
||||
title.setText(a.getString(R.styleable.DrawerMenuItem_title));
|
||||
if (a.getBoolean(R.styleable.DrawerMenuItem_with_switch, false)) {
|
||||
mSwitchCompat.setVisibility(VISIBLE);
|
||||
setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mSwitchCompat.toggle();
|
||||
}
|
||||
});
|
||||
}
|
||||
a.recycle();
|
||||
}
|
||||
|
||||
public SwitchCompat getSwitchCompat() {
|
||||
return mSwitchCompat;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,16 +5,12 @@ import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.stardust.scriptdroid.Pref;
|
||||
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;
|
||||
@@ -23,11 +19,9 @@ import com.stardust.util.MapEntries;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.theme.app.ColorSelectActivity;
|
||||
import com.stardust.theme.util.ListBuilder;
|
||||
import com.stardust.util.MessageEvent;
|
||||
|
||||
import org.androidannotations.annotations.AfterViews;
|
||||
import org.androidannotations.annotations.EActivity;
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -112,7 +106,7 @@ public class SettingsActivity extends BaseActivity {
|
||||
.entry(getString(R.string.text_reset_background), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
EventBus.getDefault().post(new MessageEvent(MainActivity.MESSAGE_CLEAR_BACKGROUND_SETTINGS));
|
||||
// EventBus.getDefault().post(new MessageEvent(MainActivity.MESSAGE_CLEAR_BACKGROUND_SETTINGS));
|
||||
Toast.makeText(getActivity(), R.string.text_already_reset, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
})
|
||||
@@ -125,7 +119,7 @@ public class SettingsActivity extends BaseActivity {
|
||||
.start();
|
||||
}
|
||||
})
|
||||
.entry(getString(R.string.text_check_update), new Runnable() {
|
||||
.entry(getString(R.string.text_check_for_updates), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
new UpdateCheckDialog(getActivity()).show();
|
||||
|
||||
Reference in New Issue
Block a user