package org.kvj.bravo7.widget; import org.kvj.bravo7.widget.WidgetList.ClickListener; import org.kvj.bravo7.widget.WidgetList.WidgetInfo; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.widget.FrameLayout; import android.widget.FrameLayout.LayoutParams; public abstract class WidgetPreferences extends FragmentActivity implements ClickListener { private static final String TAG = "WidgetPrefs"; public WidgetPreferences(WidgetList widgetList) { this.widgetList = widgetList; } WidgetList widgetList = null; Fragment editorFragment = null; @Override protected void onActivityResult(int arg0, int arg1, Intent arg2) { Log.i(TAG, "onResult"); super.onActivityResult(arg0, arg1, arg2); widgetList.reloadData(); } @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); FrameLayout root = new FrameLayout(this); LayoutParams params = new LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT); root.setId(1); setContentView(root, params); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(1, widgetList); widgetList.setClickListener(this); ft.commit(); } public void click(WidgetInfo info) { if (null == editorFragment) { Class<? extends WidgetPreferenceActivity> configActivity = getConfigActivity(info); if (null == configActivity) { return; } Intent intent = new Intent(this, configActivity); intent.putExtra("id", info.id); startActivity(intent); } } abstract protected Class<? extends WidgetPreferenceActivity> getConfigActivity( WidgetInfo info); @Override public boolean onCreateOptionsMenu(Menu menu) { menu.clear(); menu.add(Menu.NONE, 1, 0, "Update"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case 1: // Update widgetList.app.updateWidgets(-1); widgetList.reloadData(); break; } return true; } // public void onCreateOptionsMenu(Menu menu) { // } // // @Override // public boolean onOptionsItemSelected(MenuItem item) { // } }