Browse Source

Convert to kt

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 1 year ago
parent
commit
4282a948c6

+ 74 - 97
app/src/main/java/com/owncloud/android/ui/dialog/MultipleAccountsDialog.kt

@@ -23,109 +23,86 @@
  *  along with this program. If not, see <https://www.gnu.org/licenses/>.
  *
  */
-
-package com.owncloud.android.ui.dialog;
-
-import android.app.Activity;
-import android.app.Dialog;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-
-import com.google.android.material.dialog.MaterialAlertDialogBuilder;
-import com.nextcloud.client.account.User;
-import com.nextcloud.client.account.UserAccountManager;
-import com.nextcloud.client.di.Injectable;
-import com.owncloud.android.R;
-import com.owncloud.android.databinding.MultipleAccountsBinding;
-import com.owncloud.android.ui.adapter.UserListAdapter;
-import com.owncloud.android.ui.adapter.UserListItem;
-import com.owncloud.android.utils.theme.ViewThemeUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import androidx.annotation.NonNull;
-import androidx.fragment.app.DialogFragment;
-import androidx.recyclerview.widget.LinearLayoutManager;
-
-public class MultipleAccountsDialog extends DialogFragment implements Injectable, UserListAdapter.ClickListener {
-
-    @Inject UserAccountManager accountManager;
-    @Inject ViewThemeUtils viewThemeUtils;
-    public boolean highlightCurrentlyActiveAccount = true;
-
-    @NonNull
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        Activity activity = getActivity();
-        if (activity == null) {
-            throw new IllegalArgumentException("Activity may not be null");
-        }
-
-        // Inflate the layout for the dialog
-        LayoutInflater inflater = activity.getLayoutInflater();
-        MultipleAccountsBinding binding = MultipleAccountsBinding.inflate(inflater, null, false);
-
-        final Context parent = getActivity();
-        MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(binding.getRoot().getContext());
-
-        UserListAdapter adapter = new UserListAdapter(parent,
-                                                      accountManager,
-                                                      getAccountListItems(),
-                                                      this,
-                                                      false,
-                                                      highlightCurrentlyActiveAccount,
-                                                      false,
-                                                      viewThemeUtils);
-
-        binding.list.setHasFixedSize(true);
-        binding.list.setLayoutManager(new LinearLayoutManager(activity));
-        binding.list.setAdapter(adapter);
-
-        builder.setView(binding.getRoot()).setTitle(R.string.common_choose_account);
-
-        viewThemeUtils.dialog.colorMaterialAlertDialogBackground(binding.getRoot().getContext(), builder);
-
-        return builder.create();
+package com.owncloud.android.ui.dialog
+
+import android.app.Dialog
+import android.os.Bundle
+import android.view.View
+import androidx.fragment.app.DialogFragment
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import com.nextcloud.client.account.User
+import com.nextcloud.client.account.UserAccountManager
+import com.nextcloud.client.di.Injectable
+import com.owncloud.android.R
+import com.owncloud.android.databinding.MultipleAccountsBinding
+import com.owncloud.android.ui.adapter.UserListAdapter
+import com.owncloud.android.ui.adapter.UserListItem
+import com.owncloud.android.utils.theme.ViewThemeUtils
+import javax.inject.Inject
+
+class MultipleAccountsDialog : DialogFragment(), Injectable, UserListAdapter.ClickListener {
+    @JvmField
+    @Inject
+    var accountManager: UserAccountManager? = null
+
+    @JvmField
+    @Inject
+    var viewThemeUtils: ViewThemeUtils? = null
+    var highlightCurrentlyActiveAccount = true
+
+    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+        val inflater = requireActivity().layoutInflater
+        val binding = MultipleAccountsBinding.inflate(inflater, null, false)
+
+        val builder = MaterialAlertDialogBuilder(binding.root.context)
+        val adapter = UserListAdapter(
+            requireActivity(),
+            accountManager,
+            accountListItems,
+            this,
+            false,
+            highlightCurrentlyActiveAccount,
+            false,
+            viewThemeUtils
+        )
+
+        binding.list.setHasFixedSize(true)
+        binding.list.layoutManager = LinearLayoutManager(requireActivity())
+        binding.list.adapter = adapter
+
+        builder.setView(binding.root).setTitle(R.string.common_choose_account)
+
+        viewThemeUtils?.dialog?.colorMaterialAlertDialogBackground(requireContext(), builder)
+
+        return builder.create()
     }
 
-    /**
-     * creates the account list items list including the add-account action in case
-     * multiaccount_support is enabled.
-     *
-     * @return list of account list items
-     */
-    private List<UserListItem> getAccountListItems() {
-        List<User> users = accountManager.getAllUsers();
-        List<UserListItem> adapterUserList = new ArrayList<>(users.size());
-        for (User user : users) {
-            adapterUserList.add(new UserListItem(user));
+    private val accountListItems: List<UserListItem>
+        /**
+         * creates the account list items list including the add-account action in case
+         * multiaccount_support is enabled.
+         *
+         * @return list of account list items
+         */
+        get() {
+            val users = accountManager?.allUsers ?: listOf()
+
+            val adapterUserList: MutableList<UserListItem> = ArrayList(users.size)
+            for (user in users) {
+                adapterUserList.add(UserListItem(user))
+            }
+            return adapterUserList
         }
 
-        return adapterUserList;
-    }
-
-    @Override
-    public void onOptionItemClicked(User user, View view) {
+    override fun onOptionItemClicked(user: User, view: View) {
         // By default, access account if option is clicked
-        onAccountClicked(user);
-    }
-
-    @Override
-    public void onAccountClicked(User user) {
-        final AccountChooserInterface parentActivity = (AccountChooserInterface) getActivity();
-        if (parentActivity != null) {
-            parentActivity.onAccountChosen(user);
-        }
-        dismiss();
+        onAccountClicked(user)
     }
 
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
+    override fun onAccountClicked(user: User) {
+        val parentActivity = activity as AccountChooserInterface?
+        parentActivity?.onAccountChosen(user)
+        dismiss()
     }
 }