Skip to content
Snippets Groups Projects
Commit 4ab31bef authored by John Carlson's avatar John Carlson
Browse files

Utils to Kotlin

parent b1f9952b
No related branches found
No related tags found
No related merge requests found
Pipeline #
Showing
with 250 additions and 228 deletions
Loading
Loading
@@ -26,7 +26,7 @@ class OpenSignInAuthenticator(private val account: Account) : Authenticator {
if ("session" != response.request().url().pathSegments()[response.request().url().pathSegments().size - 1]) {
//Off the background thread
Timber.wtf(RuntimeException("Got a 401 and showing sign in for url: " + response.request().url()))
ThreadUtil.postOnMainThread {
ThreadUtil.postOnMainThread(Runnable {
//Remove the account, so that the user can sign in again
App.get().prefs.removeAccount(account)
Toast.makeText(App.get(), R.string.error_401, Toast.LENGTH_LONG)
Loading
Loading
@@ -34,7 +34,7 @@ class OpenSignInAuthenticator(private val account: Account) : Authenticator {
val intent = LoginActivity.newIntent(App.get())
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
App.get().startActivity(intent)
}
})
}
return null
}
Loading
Loading
Loading
Loading
@@ -10,7 +10,7 @@ import java.util.*
class DateTransform : Transform<Date> {
 
@Throws(Exception::class)
override fun read(value: String): Date {
override fun read(value: String): Date? {
return ConversionUtil.toDate(value)
}
 
Loading
Loading
Loading
Loading
@@ -13,12 +13,12 @@ import org.simpleframework.xml.transform.Transform
class UriTransform(private val account: Account) : Transform<Uri> {
 
@Throws(Exception::class)
override fun read(value: String): Uri {
override fun read(value: String): Uri? {
return ConversionUtil.toUri(account, value)
}
 
@Throws(Exception::class)
override fun write(value: Uri): String {
override fun write(value: Uri): String? {
return ConversionUtil.fromUri(value)
}
}
Loading
Loading
@@ -80,7 +80,7 @@ class FilesFragment : ButterKnifeFragment() {
}
 
override fun onShareClicked(treeItem: RepositoryTreeObject) {
IntentUtil.share(view, treeItem.getUrl(project, branchName, currentPath))
IntentUtil.share(view!!, treeItem.getUrl(project, branchName, currentPath))
}
 
override fun onOpenInBrowserClicked(treeItem: RepositoryTreeObject) {
Loading
Loading
Loading
Loading
@@ -235,7 +235,7 @@ class ProjectFragment : ButterKnifeFragment() {
BypassImageGetterFactory.create(textOverview,
App.get().picasso,
App.get().getAccount().serverUrl.toString(),
project))
project!!))
}
README_TYPE_HTML -> textOverview.text = Html.fromHtml(text)
README_TYPE_TEXT -> textOverview.text = text
Loading
Loading
Loading
Loading
@@ -126,12 +126,12 @@ public class Account implements Comparable<Account>{
}
 
Account account = (Account) o;
return ObjectUtil.equals(serverUrl, account.serverUrl)
&& ObjectUtil.equals(user, account.user);
return ObjectUtil.INSTANCE.equals(serverUrl, account.serverUrl)
&& ObjectUtil.INSTANCE.equals(user, account.user);
}
 
@Override
public int hashCode() {
return ObjectUtil.hash(serverUrl, user);
return ObjectUtil.INSTANCE.hash(serverUrl, user);
}
}
Loading
Loading
@@ -31,12 +31,12 @@ public class Branch {
}
 
Branch branch = (Branch) o;
return ObjectUtil.equals(name, branch.name);
return ObjectUtil.INSTANCE.equals(name, branch.name);
}
 
@Override
public int hashCode() {
return ObjectUtil.hash(name);
return ObjectUtil.INSTANCE.hash(name);
}
 
@Override
Loading
Loading
Loading
Loading
@@ -54,12 +54,12 @@ public class Contributor {
}
 
Contributor contributor = (Contributor) o;
return ObjectUtil.equals(name, contributor.name) && ObjectUtil.equals(email, contributor.email);
return ObjectUtil.INSTANCE.equals(name, contributor.name) && ObjectUtil.INSTANCE.equals(email, contributor.email);
}
 
@Override
public int hashCode() {
return ObjectUtil.hash(name, email);
return ObjectUtil.INSTANCE.hash(name, email);
}
 
public static List<Contributor> groupContributors(List<Contributor> contributors) {
Loading
Loading
Loading
Loading
@@ -63,11 +63,11 @@ public class RepositoryCommit {
}
 
RepositoryCommit commit = (RepositoryCommit) o;
return ObjectUtil.equals(id, commit.id);
return ObjectUtil.INSTANCE.equals(id, commit.id);
}
 
@Override
public int hashCode() {
return ObjectUtil.hash(id);
return ObjectUtil.INSTANCE.hash(id);
}
}
package com.commit451.gitlab.util;
import android.widget.TextView;
import com.commit451.bypasspicassoimagegetter.BypassPicassoImageGetter;
import com.commit451.gitlab.model.api.Project;
import com.squareup.picasso.Picasso;
import timber.log.Timber;
/**
* Creates {@link BypassPicassoImageGetter}s which are configured to handle relative Urls
*/
public class BypassImageGetterFactory {
public static BypassPicassoImageGetter create(TextView textView, Picasso picasso, final String baseUrl, final Project project) {
BypassPicassoImageGetter getter = new BypassPicassoImageGetter(textView, picasso);
getter.setSourceModifier(new BypassPicassoImageGetter.SourceModifier() {
@Override
public String modify(String source) {
if (source.startsWith("/")) {
String url = baseUrl + "/" + project.getPathWithNamespace() + source;
Timber.d(url);
return url;
}
return source;
}
});
return getter;
}
}
package com.commit451.gitlab.util
import android.widget.TextView
import com.commit451.bypasspicassoimagegetter.BypassPicassoImageGetter
import com.commit451.gitlab.model.api.Project
import com.squareup.picasso.Picasso
import timber.log.Timber
/**
* Creates [BypassPicassoImageGetter]s which are configured to handle relative Urls
*/
object BypassImageGetterFactory {
fun create(textView: TextView, picasso: Picasso, baseUrl: String, project: Project): BypassPicassoImageGetter {
val getter = BypassPicassoImageGetter(textView, picasso)
getter.setSourceModifier(BypassPicassoImageGetter.SourceModifier { source ->
if (source.startsWith("/")) {
val url = baseUrl + "/" + project.pathWithNamespace + source
Timber.d(url)
return@SourceModifier url
}
source
})
return getter
}
}
package com.commit451.gitlab.util;
import android.support.annotation.ColorInt;
/**
* Does cool things with colors
*/
public class ColorUtil {
public static String convertColorIntToString(@ColorInt int color) {
return String.format("#%06X", (0xFFFFFF & color));
}
}
package com.commit451.gitlab.util
import android.support.annotation.ColorInt
/**
* Does cool things with colors
*/
object ColorUtil {
fun convertColorIntToString(@ColorInt color: Int): String {
return String.format("#%06X", 0xFFFFFF and color)
}
}
package com.commit451.gitlab.util;
import android.net.Uri;
import com.commit451.gitlab.model.Account;
import org.joda.time.DateTime;
import org.joda.time.format.ISODateTimeFormat;
import java.util.Date;
/**
* Converts things!
*/
public final class ConversionUtil {
private ConversionUtil() {}
public static String fromDate(Date date) {
return ISODateTimeFormat.dateTime().print(new DateTime(date));
}
public static Date toDate(String dateString) {
if (dateString == null || dateString.isEmpty()) {
return null;
}
return ISODateTimeFormat.dateTimeParser().parseDateTime(dateString).toDate();
}
public static String fromUri(Uri uri) {
if (uri == null) {
return null;
}
return uri.toString();
}
public static Uri toUri(Account account, String uriString) {
if (uriString == null) {
return null;
}
if (uriString.isEmpty()) {
return Uri.EMPTY;
}
Uri uri = Uri.parse(uriString);
if (!uri.isRelative()) {
return uri;
}
if (account == null) {
return uri;
}
Uri.Builder builder = account.getServerUrl()
.buildUpon()
.encodedQuery(uri.getEncodedQuery())
.encodedFragment(uri.getEncodedFragment());
if (uri.getPath().startsWith("/")) {
builder.encodedPath(uri.getEncodedPath());
} else {
builder.appendEncodedPath(uri.getEncodedPath());
}
return builder.build();
}
}
package com.commit451.gitlab.util
import android.net.Uri
import com.commit451.gitlab.model.Account
import org.joda.time.DateTime
import org.joda.time.format.ISODateTimeFormat
import java.util.*
/**
* Converts things!
*/
object ConversionUtil {
fun fromDate(date: Date): String {
return ISODateTimeFormat.dateTime().print(DateTime(date))
}
fun toDate(dateString: String?): Date? {
if (dateString == null || dateString.isEmpty()) {
return null
}
return ISODateTimeFormat.dateTimeParser().parseDateTime(dateString).toDate()
}
fun fromUri(uri: Uri?): String? {
if (uri == null) {
return null
}
return uri.toString()
}
fun toUri(account: Account?, uriString: String?): Uri? {
if (uriString == null) {
return null
}
if (uriString.isEmpty()) {
return Uri.EMPTY
}
val uri = Uri.parse(uriString)
if (!uri.isRelative) {
return uri
}
if (account == null) {
return uri
}
val builder = account.serverUrl
.buildUpon()
.encodedQuery(uri.encodedQuery)
.encodedFragment(uri.encodedFragment)
if (uri.path.startsWith("/")) {
builder.encodedPath(uri.encodedPath)
} else {
builder.appendEncodedPath(uri.encodedPath)
}
return builder.build()
}
}
package com.commit451.gitlab.util;
import android.content.Context;
import android.text.format.DateUtils;
import com.commit451.gitlab.R;
import java.util.Date;
import java.util.concurrent.TimeUnit;
/**
* Our own DateUtil, which call forwards to {@link android.text.format.DateUtils} with some
* nice defaults
*/
public class DateUtil {
public static CharSequence getRelativeTimeSpanString(Context context, Date startTime) {
Date now = new Date();
if (Math.abs(now.getTime() - startTime.getTime()) < android.text.format.DateUtils.SECOND_IN_MILLIS) {
return context.getString(R.string.just_now);
}
return DateUtils.getRelativeTimeSpanString(startTime.getTime(),
now.getTime(),
android.text.format.DateUtils.SECOND_IN_MILLIS)
.toString();
}
public static String getTimeTaken(Date startTime, Date endTime) {
return android.text.format.DateUtils.formatElapsedTime(TimeUnit.MILLISECONDS.toSeconds(endTime.getTime() - startTime.getTime()));
}
}
package com.commit451.gitlab.util
import android.content.Context
import android.text.format.DateUtils
import com.commit451.gitlab.R
import java.util.*
import java.util.concurrent.TimeUnit
/**
* Our own DateUtil, which call forwards to [android.text.format.DateUtils] with some
* nice defaults
*/
object DateUtil {
fun getRelativeTimeSpanString(context: Context, startTime: Date): CharSequence {
val now = Date()
if (Math.abs(now.time - startTime.time) < android.text.format.DateUtils.SECOND_IN_MILLIS) {
return context.getString(R.string.just_now)
}
return DateUtils.getRelativeTimeSpanString(startTime.time,
now.time,
android.text.format.DateUtils.SECOND_IN_MILLIS)
.toString()
}
fun getTimeTaken(startTime: Date, endTime: Date): String {
return android.text.format.DateUtils.formatElapsedTime(TimeUnit.MILLISECONDS.toSeconds(endTime.time - startTime.time))
}
}
package com.commit451.gitlab.util;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.MediaStore;
import android.provider.OpenableColumns;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import timber.log.Timber;
/**
* Utility methods for uploading files
*/
public class FileUtil {
public static MultipartBody.Part toPart(Context context, Uri imageUri) {
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), imageUri);
String fileName = getFileName(context, imageUri);
return toPart(bitmap, fileName);
} catch (IOException e) {
//this won't happen, maybe
Timber.e(e);
}
return null;
}
public static MultipartBody.Part toPart(File file) {
RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), file);
return MultipartBody.Part.createFormData("file", file.getName(), requestBody);
}
public static MultipartBody.Part toPart(Bitmap bitmap, String name) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), stream.toByteArray());
return MultipartBody.Part.createFormData("file", name, requestBody);
}
public static String getFileName(Context context, Uri imageUri) {
Cursor returnCursor =
context.getContentResolver().query(imageUri, null, null, null, null);
if (returnCursor == null) {
//This should probably just return null, but oh well
return "file";
}
int nameIndex = returnCursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
if (nameIndex == -1) {
nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
}
returnCursor.moveToFirst();
String name = returnCursor.getString(nameIndex);
if (!returnCursor.isClosed()) {
returnCursor.close();
}
return name;
}
}
package com.commit451.gitlab.util
import android.content.Context
import android.graphics.Bitmap
import android.net.Uri
import android.provider.MediaStore
import android.provider.OpenableColumns
import okhttp3.MediaType
import okhttp3.MultipartBody
import okhttp3.RequestBody
import timber.log.Timber
import java.io.ByteArrayOutputStream
import java.io.File
import java.io.IOException
/**
* Utility methods for uploading files
*/
object FileUtil {
fun toPart(context: Context, imageUri: Uri): MultipartBody.Part? {
try {
val bitmap = MediaStore.Images.Media.getBitmap(context.contentResolver, imageUri)
val fileName = getFileName(context, imageUri)
return toPart(bitmap, fileName)
} catch (e: IOException) {
//this won't happen, maybe
Timber.e(e)
}
return null
}
fun toPart(file: File): MultipartBody.Part {
val requestBody = RequestBody.create(MediaType.parse("image/png"), file)
return MultipartBody.Part.createFormData("file", file.name, requestBody)
}
fun toPart(bitmap: Bitmap, name: String): MultipartBody.Part {
val stream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream)
val requestBody = RequestBody.create(MediaType.parse("image/png"), stream.toByteArray())
return MultipartBody.Part.createFormData("file", name, requestBody)
}
fun getFileName(context: Context, imageUri: Uri): String {
val returnCursor = context.contentResolver.query(imageUri, null, null, null, null) ?: //This should probably just return null, but oh well
return "file"
var nameIndex = returnCursor.getColumnIndex(MediaStore.Audio.Media.TITLE)
if (nameIndex == -1) {
nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)
}
returnCursor.moveToFirst()
val name = returnCursor.getString(nameIndex)
if (!returnCursor.isClosed) {
returnCursor.close()
}
return name
}
}
package com.commit451.gitlab.util;
package com.commit451.gitlab.util
 
import android.net.Uri;
import android.net.Uri
 
import com.commit451.gitlab.model.api.UserBasic;
import com.commit451.gitlab.model.api.UserFull;
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.model.api.UserFull
 
/**
* Utility for doing various image related things
*/
public class ImageUtil {
public static Uri getAvatarUrl(UserBasic user, int size) {
object ImageUtil {
fun getAvatarUrl(user: UserBasic?, size: Int): Uri {
if (user != null) {
Uri avatarUrl = user.getAvatarUrl();
if (avatarUrl != null && !avatarUrl.equals(Uri.EMPTY)) {
val avatarUrl = user.avatarUrl
if (avatarUrl != null && avatarUrl != Uri.EMPTY) {
return avatarUrl.buildUpon()
.appendQueryParameter("s", Integer.toString(size))
.build();
.build()
}
 
if (user instanceof UserFull) {
return getAvatarUrl(((UserFull) user).getEmail(), size);
if (user is UserFull) {
return getAvatarUrl(user.email, size)
}
}
 
return getAvatarUrl("", size);
return getAvatarUrl("", size)
}
 
public static Uri getAvatarUrl(String email, int size) {
fun getAvatarUrl(email: String, size: Int): Uri {
return Gravatar
.init(email)
.ssl()
.size(size)
.defaultImage(Gravatar.DefaultImage.IDENTICON)
.build();
.build()
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment