Browse Source

name and avatr clickable (switching accounts)

AndyScherzinger 8 năm trước cách đây
mục cha
commit
8c9e2206cb

BIN
res/drawable/ic_current.png


BIN
res/drawable/ic_current_white.png


+ 15 - 28
src/com/owncloud/android/ui/activity/ManageAccountsActivity.java

@@ -108,37 +108,9 @@ public class ManageAccountsActivity extends FileActivity
 
         mListView.setAdapter(mAccountListAdapter);
 
-        // added click listener to switch account
-        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                switchAccount(position);
-            }
-        });
-
         initializeComponentGetters();
     }
 
-    /**
-     * Switch current account to that contained in the received position of the list adapter.
-     *
-     * @param position A position of the account adapter containing an account.
-     */
-    private void switchAccount(int position) {
-        Account clickedAccount = mAccountListAdapter.getItem(position).getAccount();
-        if (getAccount().name.equals(clickedAccount.name)) {
-            // current account selected, just go back
-            finish();
-        } else {
-            // restart list of files with new account
-            AccountUtils.setCurrentOwnCloudAccount(ManageAccountsActivity.this, clickedAccount.name);
-            Intent i = new Intent(ManageAccountsActivity.this, FileDisplayActivity.class);
-            i.putExtra(FileActivity.EXTRA_ACCOUNT, clickedAccount);
-            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-            startActivity(i);
-        }
-    }
-
     /**
      * converts an array of accounts into a set of account names.
      *
@@ -291,6 +263,21 @@ public class ManageAccountsActivity extends FileActivity
                 }, mHandler);
     }
 
+    @Override
+    public void switchAccount(Account account) {
+        if (getAccount().name.equals(account.name)) {
+            // current account selected, just go back
+            finish();
+        } else {
+            // restart list of files with new account
+            AccountUtils.setCurrentOwnCloudAccount(ManageAccountsActivity.this, account.name);
+            Intent i = new Intent(ManageAccountsActivity.this, FileDisplayActivity.class);
+            i.putExtra(FileActivity.EXTRA_ACCOUNT, account);
+            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+            startActivity(i);
+        }
+    }
+
     @Override
     public void run(AccountManagerFuture<Boolean> future) {
         if (future.isDone()) {

+ 16 - 0
src/com/owncloud/android/ui/adapter/AccountListAdapter.java

@@ -103,6 +103,20 @@ public class AccountListAdapter extends ArrayAdapter<AccountListItem> implements
                     viewHolder.checkViewItem.setVisibility(View.INVISIBLE);
                 }
 
+                viewHolder.imageViewItem.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        mListener.switchAccount(mValues.get(position).getAccount());
+                    }
+                });
+
+                viewHolder.accountViewItem.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        mListener.switchAccount(mValues.get(position).getAccount());
+                    }
+                });
+
                 /// bind listener to change password
                 viewHolder.passwordButtonItem.setOnClickListener(new View.OnClickListener() {
                     @Override
@@ -159,6 +173,8 @@ public class AccountListAdapter extends ArrayAdapter<AccountListItem> implements
         void changePasswordOfAccount(Account account);
 
         void createAccount();
+
+        void switchAccount(Account account);
     }
 
     /**