/*
* OpenERP, Open Source Management Solution
* Copyright (C) 2012-today OpenERP SA (<http:www.openerp.com>)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http:www.gnu.org/licenses/>
*
*/
package com.openerp;
import android.accounts.Account;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.SyncAdapterType;
import android.content.res.Configuration;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import com.github.snowdream.android.app.AbstractUpdateListener;
import com.github.snowdream.android.app.DefaultUpdateListener;
import com.github.snowdream.android.app.UpdateFormat;
import com.github.snowdream.android.app.UpdateInfo;
import com.github.snowdream.android.app.UpdateManager;
import com.github.snowdream.android.app.UpdateOptions;
import com.github.snowdream.android.app.UpdatePeriod;
import com.openerp.addons.message.MessageDetail;
import com.openerp.auth.OpenERPAccountManager;
import com.openerp.base.about.AboutFragment;
import com.openerp.base.account.AccountFragment;
import com.openerp.base.account.AccountsDetail;
import com.openerp.base.account.UserProfile;
import com.openerp.base.res.ResPartnerDB;
import com.openerp.orm.OEDataRow;
import com.openerp.support.BaseFragment;
import com.openerp.support.OEUser;
import com.openerp.support.fragment.FragmentListener;
import com.openerp.util.Base64Helper;
import com.openerp.util.OnBackButtonPressedListener;
import com.openerp.util.PreferenceManager;
import com.openerp.util.drawer.DrawerAdatper;
import com.openerp.util.drawer.DrawerHelper;
import com.openerp.util.drawer.DrawerItem;
import com.openerp.util.drawer.DrawerListener;
import com.openerp.widgets.WidgetHelper;
import java.util.ArrayList;
import java.util.List;
/**
* The Class MainActivity.
*/
public class MainActivity extends FragmentActivity implements DrawerItem.DrawerItemClickListener, FragmentListener, DrawerListener {
public static final String TAG = "MainActivity";
public static final int RESULT_SETTINGS = 1;
public static boolean set_setting_menu = false;
public Context mContext = null;
DrawerLayout mDrawerLayout = null;
ActionBarDrawerToggle mDrawerToggle = null;
List<DrawerItem> mDrawerListItems = new ArrayList<DrawerItem>();
DrawerAdatper mDrawerAdatper = null;
String mAppTitle = "";
String mDrawerTitle = "";
String mDrawerSubtitle = "";
int mDrawerItemSelectedPosition = -1;
ListView mDrawerListView = null;
FragmentManager mFragment = null;
public enum SettingKeys {
GLOBAL_SETTING, PROFILE, ACCOUNTS, ABOUT_US
}
private CharSequence mTitle;
private OETouchListener mTouchAttacher;
private OnBackButtonPressedListener backPressed = null;
private boolean mLandscape = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
mDrawerItemSelectedPosition = savedInstanceState.getInt("current_drawer_item");
}
mContext = this;
mFragment = getSupportFragmentManager();
if (findViewById(R.id.fragment_container) != null) {
mLandscape = false;
} else {
mLandscape = true;
}
init();
}
private void checkUpdate() {
UpdateManager manager = new UpdateManager(this);
UpdateOptions options = new UpdateOptions.Builder(this)
.checkUrl("https://raw.githubusercontent.com/chengdh/openerp-mobile/master/update.xml")
.updateFormat(UpdateFormat.XML)
.updatePeriod(new UpdatePeriod(UpdatePeriod.EACH_TIME))
.checkPackageName(true)
.build();
manager.check(this, options);
}
private void init() {
Log.d(TAG, "MainActivity->init()");
initDrawerControls();
boolean reqForNewAccount = getIntent().getBooleanExtra("create_new_account", false);
/**
* checks for available account related to OpenERP
*/
if (!OpenERPAccountManager.hasAccounts(this) || reqForNewAccount) {
getActionBar().setDisplayHomeAsUpEnabled(false);
getActionBar().setHomeButtonEnabled(false);
lockDrawer(true);
AccountFragment account = new AccountFragment();
startMainFragment(account, false);
} else {
lockDrawer(false);
/**
* User found but not logged in. Requesting for login with available
* accounts.
*/
if (!OpenERPAccountManager.isAnyUser(mContext)) {
accountSelectionDialog(OpenERPAccountManager.fetchAllAccounts(mContext)).show();
} else {
mTouchAttacher = new OETouchListener(this);
initDrawer();
//new DrawerItemsLoader().execute();
}
}
}
private void initDrawerControls() {
Log.d(TAG, "MainActivity->initDrawerControls()");
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerListView = (ListView) findViewById(R.id.left_drawer);
mDrawerAdatper = new DrawerAdatper(this, R.layout.drawer_item_layout, R.layout.drawer_item_group_layout, mDrawerListItems);
mDrawerListView.setAdapter(mDrawerAdatper);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, R.string.drawer_open, R.string.app_name) {
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
getActionBar().setIcon(R.drawable.ic_launcher);
setTitle(mAppTitle, null);
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
setTitle(mDrawerTitle, mDrawerSubtitle);
setUserPicIcon(mContext);
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
private void setDrawerItems() {
Log.d(TAG, "MainActivity->setDrawerItems()");
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
mDrawerListItems.addAll(DrawerHelper.drawerItems(mContext));
mDrawerListItems.addAll(setSettingMenu());
mDrawerAdatper.notifiyDataChange(mDrawerListItems);
if (mDrawerItemSelectedPosition >= 0) {
mDrawerListView.setItemChecked(mDrawerItemSelectedPosition, true);
}
if (OEUser.current(mContext) != null) {
mDrawerTitle = OEUser.current(mContext).getUsername();
mDrawerSubtitle = OEUser.current(mContext).getHost();
ResPartnerDB partner = new ResPartnerDB(mContext);
OEDataRow partnerInfo = partner.select(OEUser.current(mContext).getPartner_id());
if (partnerInfo != null) {
mDrawerTitle = partnerInfo.getString("name");
}
}
Log.d(TAG, "MainActivity->setDrawerItems() finish");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main_activity, menu);
return true;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_check_upgrade:
checkUpdate();
break;
default:
return super.onMenuItemSelected(featureId, item);
}
return true;
}
private void initDrawer() {
Log.d(TAG, "MainActivity->initDrawer()");
setDrawerItems();
mDrawerListView.setOnItemClickListener(this);
int position = -1;
if (mDrawerListItems.size() > 0) {
if (!mDrawerListItems.get(0).isGroupTitle()) {
mDrawerListView.setItemChecked(0, true);
position = 0;
} else {
mDrawerListView.setItemChecked(1, true);
position = 1;
}
}
if (mDrawerItemSelectedPosition >= 0) {
position = mDrawerItemSelectedPosition;
}
mAppTitle = mDrawerListItems.get(position).getTitle();
setTitle(mAppTitle);
if (getIntent().getAction() != null && !getIntent().getAction().toString().equalsIgnoreCase("android.intent.action.MAIN")) {
if (getIntent().getAction().toString().equalsIgnoreCase("MESSAGE")) {
int size = mDrawerListItems.size();
for (int i = 0; i < size; i++) {
if (mDrawerAdatper.getItem(i).getTitle().equalsIgnoreCase("Messages")) {
loadFragment(mDrawerAdatper.getItem(i + 1));
}
}
}
if (getIntent().getAction().toString().equalsIgnoreCase("NOTES")) {
int size = mDrawerListItems.size();
for (int i = 0; i < size; i++) {
if (mDrawerAdatper.getItem(i).getTitle().equalsIgnoreCase("Notes")) {
loadFragment(mDrawerAdatper.getItem(i + 1));
break;
}
}
}
if (getIntent().getAction().toString().equalsIgnoreCase("EXPENSES")) {
int size = mDrawerListItems.size();
String expenseTitle = this.getResources().getString(R.string.expense_group_title);
for (int i = 0; i < size; i++) {
if (mDrawerAdatper.getItem(i).getTitle().equals(expenseTitle)) {
loadFragment(mDrawerAdatper.getItem(i + 1));
break;
}
}
}
if (getIntent().getAction().toString().equalsIgnoreCase("PURCHASE")) {
int size = mDrawerListItems.size();
String notifyTitle = this.getResources().getString(R.string.purchase_order_group_title);
for (int i = 0; i < size; i++) {
if (mDrawerAdatper.getItem(i).getTitle().equals(notifyTitle)) {
loadFragment(mDrawerAdatper.getItem(i + 1));
break;
}
}
}
if (getIntent().getAction().toString().equalsIgnoreCase("VOUCHERS")) {
int size = mDrawerListItems.size();
String notifyTitle = this.getResources().getString(R.string.vouchers_sync_notify_title);
for (int i = 0; i < size; i++) {
if (mDrawerAdatper.getItem(i).getTitle().equals(notifyTitle)) {
loadFragment(mDrawerAdatper.getItem(i + 1));
break;
}
}
}
/**
* Handling widget fragment requests.
*/
if (getIntent().getAction().equals(WidgetHelper.ACTION_WIDGET_CALL)) {
Log.d(TAG, "MainActivity->ACTION_WIDGET_CALL");
String key = getIntent().getExtras().getString(WidgetHelper.EXTRA_WIDGET_ITEM_KEY);
// Message widget call
if (key.equals("message_detail")) {
MessageDetail message = new MessageDetail();
Bundle args = new Bundle();
args.putInt("message_id", getIntent().getExtras().getInt(WidgetHelper.EXTRA_WIDGET_DATA_VALUE));
message.setArguments(args);
loadFragment(message);
}
}
} else {
if (position > 0) {
if (position != mDrawerItemSelectedPosition) {
loadFragment(mDrawerListItems.get(position));
}
}
}
Log.d(TAG, "MainActivity->initDrawer() finish");
}
private String[] accountList(List<OEUser> accounts) {
String[] account_list = new String[accounts.size()];
int i = 0;
for (OEUser user : accounts) {
account_list[i] = user.getAndroidName();
i++;
}
return account_list;
}
OEUser mAccount = null;
public Dialog accountSelectionDialog(final List<OEUser> accounts) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select Account")
.setSingleChoiceItems(accountList(accounts), 1,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mAccount = accounts.get(which);
}
}
)
.setNeutralButton("New", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
getActionBar().setDisplayHomeAsUpEnabled(false);
getActionBar().setHomeButtonEnabled(false);
AccountFragment fragment = new AccountFragment();
startMainFragment(fragment, false);
}
})
// Set the action buttons
.setPositiveButton("Login",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
if (mAccount != null) {
OpenERPAccountManager.loginUser(mContext,
mAccount.getAndroidName());
} else {
Toast.makeText(mContext,
"Please select account",
Toast.LENGTH_LONG).show();
}
init();
}
}
)
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
finish();
}
}
);
return builder.create();
}
@Override
public void refreshDrawer(String tag_key) {
Log.d(TAG, "MainActivity->DrawerListener->refreshDrawer()");
int start_index = -1;
List<DrawerItem> updated_menus = new ArrayList<DrawerItem>();
for (int i = 0; i < mDrawerListItems.size(); i++) {
DrawerItem item = mDrawerListItems.get(i);
if (item.getKey().equals(tag_key) && !item.isGroupTitle()) {
if (start_index < 0) {
start_index = i - 1;
BaseFragment instance = (BaseFragment) item
.getFragmentInstace();
updated_menus.addAll(instance.drawerMenus(mContext));
break;
}
}
}
for (DrawerItem item : updated_menus) {
mDrawerAdatper.updateDrawerItem(start_index, item);
start_index++;
}
}
@Override
public void setTitle(CharSequence title) {
mTitle = title;
getActionBar().setTitle(mTitle);
}
public void setTitle(CharSequence title, CharSequence subtitle) {
mTitle = title;
this.setTitle(mTitle);
getActionBar().setSubtitle(subtitle);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle != null && mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
public boolean onSettingItemSelected(SettingKeys key) {
switch (key) {
case GLOBAL_SETTING:
set_setting_menu = false;
Intent i = new Intent(this, AppSettingsActivity.class);
startActivityForResult(i, RESULT_SETTINGS);
return true;
case ABOUT_US:
set_setting_menu = true;
getActionBar().setDisplayHomeAsUpEnabled(false);
getActionBar().setHomeButtonEnabled(false);
AboutFragment about = new AboutFragment();
startMainFragment(about, true);
return true;
case ACCOUNTS:
set_setting_menu = true;
AccountsDetail acFragment = new AccountsDetail();
startMainFragment(acFragment, true);
return true;
case PROFILE:
set_setting_menu = true;
UserProfile profileFragment = new UserProfile();
startMainFragment(profileFragment, true);
return true;
default:
return true;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case RESULT_SETTINGS:
updateSyncSettings();
break;
}
}
private void updateSyncSettings() {
Log.d(TAG, "MainActivity->updateSyncSettings()");
PreferenceManager mPref = new PreferenceManager(mContext);
int sync_interval = mPref.getInt("sync_interval", 1440);
List<String> default_authorities = new ArrayList<String>();
default_authorities.add("com.android.calendar");
default_authorities.add("com.android.contacts");
SyncAdapterType[] list = ContentResolver.getSyncAdapterTypes();
Account mAccount = OpenERPAccountManager.getAccount(mContext, OEUser.current(mContext).getAndroidName());
for (SyncAdapterType lst : list) {
if (lst.authority.contains("com.openerp.providers")) {
default_authorities.add(lst.authority);
}
}
for (String authority : default_authorities) {
boolean isSyncActive = ContentResolver.getSyncAutomatically(mAccount, authority);
if (isSyncActive) {
setSyncPeriodic(authority, sync_interval, 1, 1);
}
}
Toast.makeText(this, "Setting saved.", Toast.LENGTH_LONG).show();
}
/* Called whenever we call invalidateOptionsMenu() */
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return super.onPrepareOptionsMenu(menu);
}
/**
* When using the ActionBarDrawerToggle, you must call it during
* onPostCreate() and onConfigurationChanged()...
*/
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
if (mDrawerToggle != null) {
mDrawerToggle.syncState();
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Pass any configuration change to the drawer toggls
if (mDrawerToggle != null) {
mDrawerToggle.onConfigurationChanged(newConfig);
}
}
// PullToRefresh
public OETouchListener getTouchAttacher() {
return mTouchAttacher;
}
/**
* Sets the auto sync.
*
* @param authority the authority
* @param isON the is on
*/
public void setAutoSync(String authority, boolean isON) {
try {
Account account = OpenERPAccountManager.getAccount(this, OEUser.current(mContext).getAndroidName());
if (!ContentResolver.isSyncActive(account, authority)) {
ContentResolver.setSyncAutomatically(account, authority, isON);
}
} catch (NullPointerException eNull) {
}
}
/**
* Request sync.
*
* @param authority the authority
* @param bundle the extra data
*/
public void requestSync(String authority, Bundle bundle) {
Account account = OpenERPAccountManager.getAccount(getApplicationContext(), OEUser.current(getApplicationContext()).getAndroidName());
Bundle settingsBundle = new Bundle();
settingsBundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
settingsBundle.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
if (bundle != null) {
settingsBundle.putAll(bundle);
}
ContentResolver.requestSync(account, authority, settingsBundle);
}
/**
* Request sync.
*
* @param authority the authority
*/
public void requestSync(String authority) {
requestSync(authority, null);
}
/**
* Sets the sync periodic.
*
* @param authority the authority
* @param interval_in_minute the interval_in_minute
* @param seconds_per_minute the seconds_per_minute
* @param milliseconds_per_second the milliseconds_per_second
*/
public void setSyncPeriodic(String authority, long interval_in_minute, long seconds_per_minute, long milliseconds_per_second) {
Account account = OpenERPAccountManager.getAccount(this, OEUser
.current(mContext).getAndroidName());
Bundle extras = new Bundle();
this.setAutoSync(authority, true);
ContentResolver.setIsSyncable(account, authority, 1);
final long sync_interval = interval_in_minute * seconds_per_minute
* milliseconds_per_second;
ContentResolver.addPeriodicSync(account, authority, extras,
sync_interval);
}
/**
* Cancel sync.
*
* @param authority the authority
*/
public void cancelSync(String authority) {
Account account = OpenERPAccountManager.getAccount(this, OEUser
.current(mContext).getAndroidName());
ContentResolver.cancelSync(account, authority);
}
@Override
public void onBackPressed() {
if (backPressed != null) {
if (backPressed.onBackPressed()) {
super.onBackPressed();
}
} else {
super.onBackPressed();
}
}
public void setOnBackPressed(OnBackButtonPressedListener callback) {
backPressed = callback;
}
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position,
long id) {
DrawerItem item = mDrawerListItems.get(position);
if (!item.isGroupTitle()) {
if (!item.getKey().equals("com.openerp.settings")) {
mDrawerItemSelectedPosition = position;
}
mAppTitle = item.getTitle();
loadFragment(item);
mDrawerLayout.closeDrawers();
}
mDrawerListView.setItemChecked(mDrawerItemSelectedPosition, true);
}
private void loadFragment(DrawerItem item) {
Fragment fragment = (Fragment) item.getFragmentInstace();
if (item.getTagColor() != null
&& !fragment.getArguments().containsKey("tag_color")) {
Bundle tagcolor = fragment.getArguments();
tagcolor.putInt("tag_color", Color.parseColor(item.getTagColor()));
fragment.setArguments(tagcolor);
}
loadFragment(fragment);
}
private void loadFragment(Object instance) {
if (instance instanceof Intent) {
startActivity((Intent) instance);
} else {
Fragment fragment = (Fragment) instance;
if (fragment.getArguments() != null
&& fragment.getArguments().containsKey("settings")) {
onSettingItemSelected(SettingKeys.valueOf(fragment
.getArguments().get("settings").toString()));
}
if (fragment != null
&& !fragment.getArguments().containsKey("settings")) {
startMainFragment(fragment, false);
}
}
}
@SuppressWarnings("deprecation")
private void setUserPicIcon(Context context) {
if (!OEUser.current(context).getAvatar().equals("false")) {
Drawable profPic = new BitmapDrawable(Base64Helper.getBitmapImage(
this, OEUser.current(context).getAvatar()));
getActionBar().setIcon(profPic);
}
}
private List<DrawerItem> setSettingMenu() {
List<DrawerItem> sys = new ArrayList<DrawerItem>();
String key = "com.openerp.settings";
String settings_group_title = getResources().getString(R.string.settings_group_title);
String locale_profile = getResources().getString(R.string.settings_drawer_item_profile);
String locale_general_setting = getResources().getString(R.string.settings_drawer_item_general_setting);
String locale_account = getResources().getString(R.string.settings_drawer_item_account);
String locale_about_us = getResources().getString(R.string.settings_drawer_item_about_us);
sys.add(new DrawerItem(key, settings_group_title, true));
sys.add(new DrawerItem(key, locale_profile, 0, R.drawable.ic_action_user,
getFragBundle(new Fragment(), "settings", SettingKeys.PROFILE)));
sys.add(new DrawerItem(key, locale_general_setting, 0,
R.drawable.ic_action_settings, getFragBundle(new Fragment(),
"settings", SettingKeys.GLOBAL_SETTING)
));
sys.add(new DrawerItem(key, locale_account, 0,
R.drawable.ic_action_accounts, getFragBundle(new Fragment(),
"settings", SettingKeys.ACCOUNTS)
));
sys.add(new DrawerItem(key, locale_about_us, 0, R.drawable.ic_action_about,
getFragBundle(new Fragment(), "settings", SettingKeys.ABOUT_US)));
return sys;
}
private Fragment getFragBundle(Fragment fragment, String key,
SettingKeys val) {
Bundle bundle = new Bundle();
bundle.putString(key, val.toString());
fragment.setArguments(bundle);
return fragment;
}
private void lockDrawer(boolean flag) {
if (!flag) {
mDrawerLayout.setDrawerLockMode(DrawerLayout.STATE_IDLE);
} else {
mDrawerLayout
.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putInt("current_drawer_item", mDrawerItemSelectedPosition);
super.onSaveInstanceState(outState);
}
@Override
public void startMainFragment(Fragment fragment, boolean addToBackState) {
Log.d(TAG, "MainActivity->FragmentListener->startMainFragment()");
FragmentTransaction tran = mFragment.beginTransaction().replace(
R.id.fragment_container, fragment);
if (addToBackState) {
tran.addToBackStack(null);
}
tran.commit();
}
@Override
public void startDetailFragment(Fragment fragment) {
Log.d(TAG, "MainActivity->FragmentListener->startDetailFragment()");
FragmentTransaction tran = mFragment.beginTransaction().replace(R.id.fragment_container, fragment);
if (!mLandscape) {
tran.addToBackStack(null);
}
tran.commit();
}
@Override
public void restart() {
Log.d(TAG, "MainActivity->FragmentListener->restart()");
getIntent().putExtra("create_new_account", false);
init();
}
public class DrawerItemsLoader extends AsyncTask<Void, Void, Boolean> {
ProgressDialog mProgressDialog = null;
public DrawerItemsLoader() {
/* String working_text = getString(R.string.working_text);
mProgressDialog = new ProgressDialog(getContext());
mProgressDialog.setMessage(working_text);
mProgressDialog.show();*/
}
@Override
protected Boolean doInBackground(Void... arg0) {
setDrawerItems();
return true;
}
@Override
protected void onPostExecute(final Boolean success) {
Log.d(TAG, "initDrawer() finished");
mDrawerAdatper.notifiyDataChange(mDrawerListItems);
initDrawer();
// mProgressDialog.dismiss();
}
}
private Context getContext() {
return this;
}
}