浏览代码

Added account deletion feature

Signed-off-by: Kilian Périsset <kilian.perisset@infomaniak.com>
Kilian Périsset 4 年之前
父节点
当前提交
e84cc8eca3

+ 23 - 29
src/main/java/com/owncloud/android/ui/activity/ManageAccountsActivity.java

@@ -56,6 +56,7 @@ import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.services.OperationsService;
 import com.owncloud.android.ui.adapter.UserListAdapter;
 import com.owncloud.android.ui.adapter.UserListItem;
+import com.owncloud.android.ui.dialog.AccountRemovalConfirmationDialog;
 import com.owncloud.android.ui.events.AccountRemovedEvent;
 import com.owncloud.android.ui.helpers.FileOperationsHelper;
 import com.owncloud.android.utils.ThemeUtils;
@@ -76,6 +77,7 @@ import androidx.appcompat.app.ActionBar;
 import androidx.appcompat.widget.PopupMenu;
 import androidx.core.content.ContextCompat;
 import androidx.core.graphics.drawable.DrawableCompat;
+import androidx.fragment.app.FragmentManager;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
@@ -472,46 +474,38 @@ public class ManageAccountsActivity extends FileActivity implements UserListAdap
     public void onClick(User user, View view) {
 
         if (view.getId() == R.id.account_menu) {
-            ImageView btn = findViewById(R.id.account_menu);
-            PopupMenu popup = new PopupMenu(view.getContext(), btn);
+            ImageView menuButton = findViewById(R.id.account_menu);
 
-            //Inflating the Popup using xml file
+            PopupMenu popup = new PopupMenu(view.getContext(), menuButton);
             popup.getMenuInflater().inflate(R.menu.item_account, popup.getMenu());
             popup.show();
-
-            //registering popup with OnMenuItemClickListener
             popup.setOnMenuItemClickListener(item -> {
-                switch (item.getItemId()) {
-                    case R.id.action_open_account:
-                        Log_OC.e("Action", "Go account");
-                        break;
-
-                    case R.id.action_delete_account:
-                        Log_OC.e("Action", "Delete account");
-                        break;
-
-                    default:
-                        Log_OC.e("Action", ".");
-                        break;
-
+                if (item.getItemId() == R.id.action_delete_account) {
+                    openAccountRemovalConfirmationDialog(user, getSupportFragmentManager());
+                } else {
+                    openAccount(user);
                 }
                 return true;
             });
-            // Inflate the account menu
-            /*
-            inflater.inflate(R.menu.item_account, menu);
-            openContextMenu(R.menu.item_account);
-            */
         } else {
-            // Open the account view
-            final Intent intent = new Intent(this, UserInfoActivity.class);
-            intent.putExtra(UserInfoActivity.KEY_ACCOUNT, user);
-            OwnCloudAccount oca = user.toOwnCloudAccount();
-            intent.putExtra(KEY_DISPLAY_NAME, oca.getDisplayName());
-            startActivityForResult(intent, KEY_USER_INFO_REQUEST_CODE);
+            openAccount(user);
         }
     }
 
+    public static void openAccountRemovalConfirmationDialog(User user, FragmentManager fragmentManager) {
+        AccountRemovalConfirmationDialog dialog =
+            AccountRemovalConfirmationDialog.newInstance(user);
+        dialog.show(fragmentManager, "dialog");
+    }
+
+    private void openAccount(User user) {
+        final Intent intent = new Intent(this, UserInfoActivity.class);
+        intent.putExtra(UserInfoActivity.KEY_ACCOUNT, user);
+        OwnCloudAccount oca = user.toOwnCloudAccount();
+        intent.putExtra(KEY_DISPLAY_NAME, oca.getDisplayName());
+        startActivityForResult(intent, KEY_USER_INFO_REQUEST_CODE);
+    }
+
     /**
      * Defines callbacks for service binding, passed to bindService()
      */

+ 2 - 2
src/main/res/menu/item_account.xml

@@ -26,13 +26,13 @@
 
     <item
         android:id="@+id/action_open_account"
-        android:title="@string/common_choose_account"
+        android:title="@string/common_open"
         app:showAsAction="never"
         android:showAsAction="never" />
 
     <item
         android:id="@+id/action_delete_account"
-        android:title="@string/common_remove"
+        android:title="@string/delete_account"
         app:showAsAction="never"
         android:showAsAction="never" />
 </menu>