@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); getActivity().setTitle(R.string.brygds_title); // se om användaren har valt källa an // gör: onActivityResult-ta emot och fetcha eller avsluta // AskPasswordActivity-fråga efter table name och spara i prefs samt setResult. SharedPreferences prefs = getActivity().getSharedPreferences(MY_PREFS_NAME, Context.MODE_PRIVATE); String table = prefs.getString("table", null); if (prefs.getBoolean("error", false)) { // fel förra gången? Intent i = new Intent(getActivity(), ErrorReportActivity.class); startActivityForResult(i, ERROR_REPORT); // getActivity().finish(); // return; } else if (table == null) { // fråga efter password Intent i = new Intent(getActivity(), AskPasswordActivity.class); startActivityForResult(i, ASK_PASSWORD); } else { // hämta data BrygdLab.setSourceIsDemo(table.equals("demo")); new FetchItemsTask().execute(); } mBrygds = BrygdLab.get(getActivity()) .getBrygds(); // mBrygds kommer alltid att vara null här men måste anropas innan // BrygdLab.set... setListAdapter(null); // visa timglas // initiera bakgrundstråden med loopern. i konstruktorn skicka Handler som är associerad till // UI-tråden. // registrera callback för downloaded vertig. mThumbnailThread = new ThumbnailDownloader<ImageView>(getActivity().getExternalCacheDir(), new Handler()); mThumbnailThread.setListener( new ThumbnailDownloader.Listener<ImageView>() { public void onThumbnailDownloaded(ImageView imageView, Bitmap thumbnail) { if (isVisible()) { imageView.setImageBitmap(thumbnail); } } }); mThumbnailThread.start(); mThumbnailThread.getLooper(); }
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == ERROR_REPORT) { getActivity().finish(); // döda hela appen. } else if (requestCode == ASK_PASSWORD) { if (resultCode == Activity.RESULT_CANCELED) { getActivity().finish(); // döda hela appen. } else { SharedPreferences prefs = getActivity().getSharedPreferences(MY_PREFS_NAME, Context.MODE_PRIVATE); String table = prefs.getString("table", null); BrygdLab.setSourceIsDemo(table.equals("demo")); new FetchItemsTask().execute(); } // return; } // if (requestCode == ADD_BEER && resultCode == Activity.RESULT_OK) { // Activity.RESULT_FIRST_USER är om brygd har sparats. // Toast.makeText(getActivity(), "onActivityResult" + requestCode + "," + resultCode + "," + // data, Toast.LENGTH_LONG).show(); // om ny brygd har sparats. dvs valt ny brygd i action bar och sedan sparat innan back-knappen // tryckts. else if (resultCode == BrygdFragment.RESULT_BRYGD_SAVED) { new FetchItemsTask().execute(); } // om en brygd har editerats så har även modellen lästs in på nytt, i så fall uppdatera. else { ArrayList<Brygd> mBrygds2 = BrygdLab.get(getActivity()).getBrygds(); if (mBrygds != mBrygds2) { Log.d(TAG, "inte samma brygds, call notifyDataSetChanged"); mBrygds = mBrygds2; setListAdapter(new BrygdAdapter(mBrygds2)); // ((BrygdAdapter)getListAdapter()).notifyDataSetChanged(); } } }
@Override protected void onPostExecute(ArrayList<Brygd> brygds) { // try {Thread.sleep(5000);} catch (InterruptedException e) {} Log.d(TAG, "onPostExecute, brygds.length = " + brygds.size()); mBrygds = brygds; BrygdAdapter adapter = new BrygdAdapter(mBrygds); setListAdapter(adapter); Log.d(TAG, "onPostExecute, nu är adaptern satt, getCount = " + adapter.getCount()); BrygdLab.setBrygds(brygds); /* if (getActivity() != null) { Toast.makeText(getActivity(), "Öllistan uppdaterad.", Toast.LENGTH_LONG).show(); } */ }