Back to project page trivial-password.
The source code is released under:
MIT License
If you think the Android project trivial-password listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package org.hbabcock.trivialpassword; //from w w w . ja v a 2 s. co m import java.util.ArrayList; import android.annotation.TargetApi; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.app.ListFragment; import android.util.Log; import android.view.ActionMode; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView.MultiChoiceModeListener; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; public class AccountListFragment extends ListFragment { private static final String TAG = "AccountListFragment"; private ArrayList<Account> mAccounts; @Override public boolean onContextItemSelected(MenuItem item){ AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo(); int position = info.position; AccountAdapter adapter = (AccountAdapter)getListAdapter(); Account account = adapter.getItem(position); switch (item.getItemId()){ case R.id.menu_item_delete_account: AccountManager.get(getActivity()).deleteAccount(account); adapter.notifyDataSetChanged(); return true; } return super.onContextItemSelected(item); } @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setHasOptionsMenu(true); getActivity().setTitle(R.string.accounts_title); /* if (PasswordManager.get(getActivity()).havePassword() == false){ Intent i = new Intent(getActivity(), PasswordActivity.class); startActivity(i); } */ mAccounts = AccountManager.get(getActivity()).getAccounts(); AccountAdapter adapter = new AccountAdapter(mAccounts); setListAdapter(adapter); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){ getActivity().getMenuInflater().inflate(R.menu.fragment_account_list_context, menu); } @TargetApi(11) @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState){ View v = inflater.inflate(R.layout.fragment_list_account, parent, false); Button b = (Button)v.findViewById(R.id.add_button); b.setOnClickListener(new View.OnClickListener(){ public void onClick(View vw){ startAddDialog(); } }); ListView lv = (ListView)v.findViewById(android.R.id.list); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){ registerForContextMenu(lv); } else{ lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); lv.setMultiChoiceModeListener(new MultiChoiceModeListener(){ public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked){ } public boolean onCreateActionMode(ActionMode mode, Menu menu){ MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(R.menu.fragment_account_list_context, menu); return true; } public boolean onPrepareActionMode(ActionMode mode, Menu menu){ return false; } public boolean onActionItemClicked(ActionMode mode, MenuItem item){ switch (item.getItemId()){ case R.id.menu_item_delete_account: AccountAdapter adapter = (AccountAdapter)getListAdapter(); AccountManager accountManager = AccountManager.get(getActivity()); for (int i = adapter.getCount() - 1; i >= 0; i--){ if (getListView().isItemChecked(i)){ accountManager.deleteAccount(adapter.getItem(i)); } } mode.finish(); adapter.notifyDataSetChanged(); return true; default: return false; } } public void onDestroyActionMode(ActionMode mode){ } }); } return v; } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){ super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.fragment_account_list, menu); } @Override public void onListItemClick(ListView l, View v, int position, long id){ Intent i = new Intent(getActivity(), AccountPagerActivity.class); i.putExtra(AccountFragment.EXTRA_ACCOUNT_ID, ((Account)(getListAdapter()).getItem(position)).getId()); i.putExtra(AccountFragment.EXTRA_NEW_ACCOUNT, false); startActivityForResult(i, 0); } @Override public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()){ case R.id.menu_item_new_account: startAddDialog(); return true; case R.id.menu_item_change_password: FragmentManager fm = getActivity().getSupportFragmentManager(); PasswordChangeFragment dialog = new PasswordChangeFragment(); dialog.setTargetFragment(AccountListFragment.this, 0); dialog.show(fm, TAG); case R.id.menu_item_lock: PasswordManager.get(getActivity()).clearPassword(); Intent i = new Intent(getActivity(), PasswordActivity.class); startActivity(i); default: return super.onOptionsItemSelected(item); } } @Override public void onPause(){ super.onPause(); AccountManager.get(getActivity()).saveAccounts(); } @Override public void onResume(){ super.onResume(); Log.i(TAG,"onResume"); if (PasswordManager.get(getActivity()).havePassword() == false){ Intent i = new Intent(getActivity(), PasswordActivity.class); startActivity(i); } else { if (AccountManager.get(getActivity()).getLoadedOk() == false){ mAccounts = AccountManager.get(getActivity()).getAccounts(); AccountAdapter adapter = new AccountAdapter(mAccounts); setListAdapter(adapter); } else{ ((AccountAdapter)getListAdapter()).notifyDataSetChanged(); } } } /* @Override public void onSaveInstanceState(Bundle outState){ super.onSaveInstanceState(outState); outState.putString(KEY_PASSWORD, PasswordManager.get(getActivity()).getPassword()); outState.putString(KEY_HINT, PasswordManager.get(getActivity()).getHint()); } */ private void startAddDialog(){ Account account = new Account(); AccountManager.get(getActivity()).addAccount(account); Intent i = new Intent(getActivity(), AccountPagerActivity.class); i.putExtra(AccountFragment.EXTRA_ACCOUNT_ID, account.getId()); i.putExtra(AccountFragment.EXTRA_NEW_ACCOUNT, true); startActivityForResult(i, 0); } public class AccountAdapter extends ArrayAdapter<Account>{ public AccountAdapter(ArrayList<Account> accounts){ super(getActivity(), 0, accounts); } @Override public View getView(int position, View convertView, ViewGroup parent){ if (convertView == null){ convertView = getActivity().getLayoutInflater().inflate(R.layout.list_item_account, null); } Account a = getItem(position); ((TextView)convertView.findViewById(R.id.account_list_account)).setText(a.getAccount()); ((TextView)convertView.findViewById(R.id.account_list_username)).setText(a.getUsername()); return convertView; } } }