package com.sabdroidex.activity; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.Spinner; import com.android.actionbarcompat.ActionBarActivity; import com.sabdroidex.R; import com.sabdroidex.controllers.sabnzbd.SABnzbdController; import com.sabdroidex.data.sabnzbd.Categories; import com.sabdroidex.data.sabnzbd.Priorities; import com.sabdroidex.data.sabnzbd.QueueElement; import com.sabdroidex.data.sabnzbd.Scripts; /** * Created by Marc on 27/12/13. */ public class QueueItemEditActivity extends ActionBarActivity { private static final String TAG = ShowActivity.class.getCanonicalName(); private static final String ELEMENT = "element"; private QueueElement element; /** * Instantiating the Handler associated with this {@link android.app.Activity}. It will * be notified when the request to retrieve the show data is successful */ private final Handler messageHandler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == SABnzbdController.MESSAGE.GET_CATS .hashCode() && msg.obj instanceof Categories) { Categories categories = (Categories) msg.obj; QueueItemEditActivity.this.updateCategories(categories); } if (msg.what == SABnzbdController.MESSAGE.GET_SCRIPTS.hashCode() && msg.obj instanceof Scripts) { Scripts scripts = (Scripts) msg.obj; QueueItemEditActivity.this.updateScripts(scripts); } if (msg.what == SABnzbdController.MESSAGE.GET_PRIORITIES.hashCode() && msg.obj instanceof Priorities) { Priorities priorities = (Priorities) msg.obj; QueueItemEditActivity.this.updatePriorities(priorities); } if (msg.what == SABnzbdController.MESSAGE.CHANGE_CAT .hashCode() && msg.obj instanceof Boolean) { } if (msg.what == SABnzbdController.MESSAGE.CHANGE_SCRIPT.hashCode() && msg.obj instanceof Boolean) { } if (msg.what == SABnzbdController.MESSAGE.PRIORITY.hashCode() && msg.obj instanceof Boolean) { } } }; /** * * @param categories */ private void updateCategories(final Categories categories) { Spinner categorySpinner = (Spinner) findViewById(R.id.download_category); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, categories.getCategories()); categorySpinner.setAdapter(adapter); categorySpinner.setSelection(categories.getCategories().indexOf(element.getCategory())); if (categorySpinner.getOnItemSelectedListener() == null) { categorySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { SABnzbdController.setCategory(messageHandler, element.getNzoId(), categories.getCategories().get(position)); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } } /** * * @param scripts */ private void updateScripts(final Scripts scripts) { Spinner scriptSpinner = (Spinner) findViewById(R.id.download_processing); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, scripts.getScripts()); scriptSpinner.setAdapter(adapter); scriptSpinner.setSelection(scripts.getScripts().indexOf(element.getScript())); if (scriptSpinner.getOnItemSelectedListener() == null) { scriptSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { SABnzbdController.setScript(messageHandler, element.getNzoId(), scripts.getScripts().get(position)); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } } /** * * @param priorities */ private void updatePriorities(final Priorities priorities) { final Spinner prioritySpinner = (Spinner) findViewById(R.id.download_priority); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, priorities.getPriorities()); prioritySpinner.setAdapter(adapter); prioritySpinner.setSelection(priorities.getPriorities().indexOf(element.getScript())); if (prioritySpinner.getOnItemSelectedListener() == null) { prioritySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { SABnzbdController.setPriority(messageHandler, element.getNzoId(), priorities.getPriorities().get(position)); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } } /** * */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "onCreate"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { getActionBar().setDisplayHomeAsUpEnabled(true); } setContentView(R.layout.download_settings); element = (QueueElement) getIntent().getExtras().get(ELEMENT); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); EditText editText = (EditText) findViewById(R.id.download_name); editText.setText(element.getFilename()); SABnzbdController.getCategories(messageHandler); SABnzbdController.getScripts(messageHandler); SABnzbdController.getPriorities(messageHandler); } /** * Handles item selections in the Menu */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); break; } return super.onOptionsItemSelected(item); } }