Convert AddAccountDialog to Kotlin

pull/1055/head
Alex Baker 4 years ago
parent 3663c22b62
commit e24b5b8bfe

@ -1,87 +0,0 @@
package org.tasks.sync;
import android.app.Activity;
import android.content.Intent;
import android.content.res.TypedArray;
import android.net.Uri;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity;
import org.tasks.R;
import org.tasks.caldav.CaldavAccountSettingsActivity;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.etesync.EteSyncAccountSettingsActivity;
import org.tasks.preferences.fragments.SynchronizationKt;
import org.tasks.themes.DrawableUtil;
public class AddAccountDialog {
public static void showAddAccountDialog(Activity activity, DialogBuilder dialogBuilder) {
String[] services = activity.getResources().getStringArray(R.array.synchronization_services);
String[] descriptions =
activity.getResources().getStringArray(R.array.synchronization_services_description);
TypedArray typedArray =
activity.getResources().obtainTypedArray(R.array.synchronization_services_icons);
int[] icons = new int[typedArray.length()];
for (int i = 0; i < icons.length; i++) {
icons[i] = typedArray.getResourceId(i, 0);
}
typedArray.recycle();
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(
activity, R.layout.simple_list_item_2_themed, R.id.text1, services) {
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View view = super.getView(position, convertView, parent);
view.<TextView>findViewById(R.id.text1).setText(services[position]);
view.<TextView>findViewById(R.id.text2).setText(descriptions[position]);
ImageView icon = view.findViewById(R.id.image_view);
icon.setImageDrawable(DrawableUtil.getWrapped(getContext(), icons[position]));
if (position == 1) {
icon.getDrawable().setTint(getContext().getColor(R.color.icon_tint));
}
return view;
}
};
dialogBuilder
.newDialog()
.setTitle(R.string.choose_synchronization_service)
.setSingleChoiceItems(
adapter,
-1,
(dialog, which) -> {
switch (which) {
case 0:
activity.startActivityForResult(
new Intent(activity, GtasksLoginActivity.class),
SynchronizationKt.REQUEST_GOOGLE_TASKS);
break;
case 1:
activity.startActivityForResult(
new Intent(activity, CaldavAccountSettingsActivity.class),
SynchronizationKt.REQUEST_CALDAV_SETTINGS);
break;
case 2:
activity.startActivityForResult(
new Intent(activity, EteSyncAccountSettingsActivity.class),
SynchronizationKt.REQUEST_CALDAV_SETTINGS);
break;
}
dialog.dismiss();
})
.setNeutralButton(
R.string.help,
(dialog, which) ->
activity.startActivity(
new Intent(
Intent.ACTION_VIEW, Uri.parse(activity.getString(R.string.help_url_sync)))))
.setNegativeButton(android.R.string.cancel, null)
.show();
}
}

@ -0,0 +1,73 @@
package org.tasks.sync
import android.app.Activity
import android.content.DialogInterface
import android.content.Intent
import android.net.Uri
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.ImageView
import android.widget.TextView
import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity
import org.tasks.R
import org.tasks.caldav.CaldavAccountSettingsActivity
import org.tasks.dialogs.DialogBuilder
import org.tasks.etesync.EteSyncAccountSettingsActivity
import org.tasks.preferences.fragments.REQUEST_CALDAV_SETTINGS
import org.tasks.preferences.fragments.REQUEST_GOOGLE_TASKS
import org.tasks.themes.DrawableUtil
object AddAccountDialog {
fun showAddAccountDialog(activity: Activity, dialogBuilder: DialogBuilder) {
val services = activity.resources.getStringArray(R.array.synchronization_services)
val descriptions = activity.resources.getStringArray(R.array.synchronization_services_description)
val typedArray = activity.resources.obtainTypedArray(R.array.synchronization_services_icons)
val icons = IntArray(typedArray.length())
for (i in icons.indices) {
icons[i] = typedArray.getResourceId(i, 0)
}
typedArray.recycle()
val adapter: ArrayAdapter<String> = object : ArrayAdapter<String>(
activity, R.layout.simple_list_item_2_themed, R.id.text1, services) {
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
val view = super.getView(position, convertView, parent)
view.findViewById<TextView>(R.id.text1).text = services[position]
view.findViewById<TextView>(R.id.text2).text = descriptions[position]
val icon = view.findViewById<ImageView>(R.id.image_view)
icon.setImageDrawable(DrawableUtil.getWrapped(context, icons[position]))
if (position == 1) {
icon.drawable.setTint(context.getColor(R.color.icon_tint))
}
return view
}
}
dialogBuilder
.newDialog()
.setTitle(R.string.choose_synchronization_service)
.setSingleChoiceItems(
adapter,
-1
) { dialog: DialogInterface, which: Int ->
when (which) {
0 -> activity.startActivityForResult(
Intent(activity, GtasksLoginActivity::class.java),
REQUEST_GOOGLE_TASKS)
1 -> activity.startActivityForResult(
Intent(activity, CaldavAccountSettingsActivity::class.java),
REQUEST_CALDAV_SETTINGS)
2 -> activity.startActivityForResult(
Intent(activity, EteSyncAccountSettingsActivity::class.java),
REQUEST_CALDAV_SETTINGS)
}
dialog.dismiss()
}
.setNeutralButton(R.string.help) { _, _ ->
activity.startActivity(
Intent(
Intent.ACTION_VIEW, Uri.parse(activity.getString(R.string.help_url_sync))))
}
.setNegativeButton(android.R.string.cancel, null)
.show()
}
}
Loading…
Cancel
Save