package kwik.app.activities.custom; import kwik.app.KwikApp; import kwik.app.R; import kwik.app.activities.ConfigActivity; import kwik.app.activities.SignInActivity; import kwik.remote.api.User; import kwik.services.KwikAPIService; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.ResultReceiver; import android.support.v4.app.FragmentActivity; import android.support.v4.view.Menu; import android.support.v4.view.MenuItem; import android.support.v4.view.MenuItem.OnMenuItemClickListener; import android.widget.Toast; public class KwikFragmentActivity extends FragmentActivity { protected String TAG = getClass().getSimpleName(); protected KwikApp app = (KwikApp) getApplication(); protected int color; @Override protected void onCreate(Bundle savedInstanceState) { app = (KwikApp) getApplication(); switch (app.getCurrentColor()) { case Color.RED: this.setTheme(R.style.Theme_Custom_Red); break; case Color.GREEN: this.setTheme(R.style.Theme_Custom_Green); break; case Color.YELLOW: this.setTheme(R.style.Theme_Custom_Orange); break; case Color.BLUE: default: this.setTheme(R.style.Theme_Custom_Blue); break; } color = app.getCurrentColor(); super.onCreate(savedInstanceState); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (color != app.getCurrentColor()) { color = app.getCurrentColor(); switch (app.getCurrentColor()) { case Color.RED: this.setTheme(R.style.Theme_Custom_Red); break; case Color.GREEN: this.setTheme(R.style.Theme_Custom_Green); break; case Color.YELLOW: this.setTheme(R.style.Theme_Custom_Orange); break; case Color.BLUE: default: this.setTheme(R.style.Theme_Custom_Blue); break; } this.reload(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { final KwikFragmentActivity self = this; KwikApp app = (KwikApp) getApplication(); MenuItem item = menu.add("Icon"); item.setIcon(R.drawable.search); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); item.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { onSearchRequested(); return false; } }); if (app.getCurrentUser() != null) { MenuItem item2 = menu.add("Icon"); item2.setIcon(R.drawable.config); item2.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); item2.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { if (!(self instanceof ConfigActivity)) { Intent intent = new Intent(self, ConfigActivity.class); startActivityForResult(intent, 0); } return false; } }); } else { MenuItem item2 = menu.add("Icon"); item2.setIcon(R.drawable.key); item2.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); item2.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { if (!(self instanceof SignInActivity)) { Intent intent = new Intent(self, SignInActivity.class); intent.putExtra("receiver", new ResultReceiver(new Handler()) { protected void onReceiveResult(int resultCode, Bundle resultData) { if (resultCode == KwikAPIService.STATUS_OK) { User u = (User) resultData.getSerializable("return"); KwikApp app = (KwikApp) getApplication(); app.setCurrentUser(u); Toast.makeText(self, getResources().getString(R.string.sign_in_toast), Toast.LENGTH_SHORT).show(); self.reload(); } }; }); startActivity(intent); } return false; } }); } return super.onCreateOptionsMenu(menu); } public void reload() { Intent intent = getIntent(); overridePendingTransition(0, 0); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); finish(); overridePendingTransition(0, 0); startActivity(intent); } @Override public void finish() { Intent resultIntent = new Intent(); setResult(Activity.RESULT_OK, resultIntent); super.finish(); } }