package com.stardust.scriptdroid.external.tasker; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import com.stardust.scriptdroid.R; import com.stardust.scriptdroid.external.CommonUtils; import com.stardust.scriptdroid.script.ScriptFile; import com.stardust.scriptdroid.script.StorageScriptProvider; import com.stardust.scriptdroid.ui.BaseActivity; import com.stardust.scriptdroid.ui.main.script_list.ScriptAndFolderListRecyclerView; import com.stardust.scriptdroid.ui.main.script_list.ScriptListWithProgressBarView; import com.stardust.view.ViewBinder; import com.stardust.view.ViewBinding; import com.twofortyfouram.locale.sdk.client.ui.activity.AbstractAppCompatPluginActivity; /** * Created by Stardust on 2017/3/27. */ public class TaskPrefEditActivity extends AbstractAppCompatPluginActivity { private String mSelectedScriptFilePath; private String mPreExecuteScript; private StorageScriptProvider mStorageScriptProvider; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tasker_edit); BaseActivity.setToolbarAsBack(this, R.id.toolbar, getString(R.string.text_please_choose_a_script)); initScriptListRecyclerView(); ViewBinder.bind(this); } private void initScriptListRecyclerView() { mStorageScriptProvider = StorageScriptProvider.getExternalStorageProvider(); ScriptListWithProgressBarView scriptList = (ScriptListWithProgressBarView) findViewById(R.id.script_list); scriptList.setScriptFileOperationEnabled(false); scriptList.setStorageScriptProvider(mStorageScriptProvider); scriptList.setCurrentDirectory(StorageScriptProvider.DEFAULT_DIRECTORY); scriptList.setOnItemClickListener(new ScriptAndFolderListRecyclerView.OnScriptFileClickListener() { @Override public void onClick(ScriptFile file, int position) { mSelectedScriptFilePath = file.getPath(); finish(); } }); } @ViewBinding.Click(R.id.edit_script) private void editPreExecuteScript() { TaskerScriptEditActivity.edit(this, getString(R.string.text_pre_execute_script), getString(R.string.summary_pre_execute_script), mPreExecuteScript == null ? "" : mPreExecuteScript); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.action_refresh) { mStorageScriptProvider.refreshAll(); } else if (item.getItemId() == R.id.action_clear_file_selection) { mSelectedScriptFilePath = null; } else { mPreExecuteScript = null; } return true; } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.tasker_script_edit_menu, menu); return true; } @Override public boolean isBundleValid(@NonNull Bundle bundle) { return CommonUtils.isTaskerBundleValid(bundle); } @Override public void onPostCreateWithPreviousResult(@NonNull Bundle bundle, @NonNull String s) { mSelectedScriptFilePath = bundle.getString(CommonUtils.EXTRA_KEY_PATH); mPreExecuteScript = bundle.getString(CommonUtils.EXTRA_KEY_PRE_EXECUTE_SCRIPT); } @Nullable @Override public Bundle getResultBundle() { Bundle bundle = new Bundle(); bundle.putString(CommonUtils.EXTRA_KEY_PATH, mSelectedScriptFilePath); bundle.putString(CommonUtils.EXTRA_KEY_PRE_EXECUTE_SCRIPT, mPreExecuteScript); return bundle; } @NonNull @Override public String getResultBlurb(@NonNull Bundle bundle) { String blurb = bundle.getString(CommonUtils.EXTRA_KEY_PATH); if (TextUtils.isEmpty(blurb)) { blurb = bundle.getString(CommonUtils.EXTRA_KEY_PRE_EXECUTE_SCRIPT); } if (TextUtils.isEmpty(blurb)) { blurb = getString(R.string.text_path_is_empty); } return blurb; } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { mPreExecuteScript = data.getStringExtra(TaskerScriptEditActivity.EXTRA_CONTENT); } } }