Skip to content

Commit

Permalink
Convert to kt
Browse files Browse the repository at this point in the history
Signed-off-by: alperozturk <[email protected]>
  • Loading branch information
alperozturk96 committed Oct 24, 2023
1 parent 232b9c7 commit 4282a94
Showing 1 changed file with 74 additions and 97 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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()
}
}

0 comments on commit 4282a94

Please sign in to comment.