blob: 50b83b34ca441b2f2e648130a6808b42bcb736b0 [file] [log] [blame]
// Copyright 2016 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package io.v.todos;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Paint;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.RecyclerView;
import android.text.format.DateUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import io.v.todos.model.ListMetadata;
public final class UIUtil {
private UIUtil() {
}
private static final long JUST_NOW_DURATION = 60 * 60 * 1000 - 1;
public static final int ALPHA_PRIMARY = (int)(255 * 0.87);
public static final int ALPHA_SECONDARY = (int)(255 * 0.54);
public static final int ALPHA_HINT = (int)(255 * 0.38);
public static String computeTimeAgo(Context context, long startTime) {
long now = System.currentTimeMillis();
return (now - startTime > JUST_NOW_DURATION ?
DateUtils.getRelativeTimeSpanString(startTime, now, DateUtils.HOUR_IN_MILLIS, DateUtils.FORMAT_ABBREV_ALL).
toString() :
context.getString(R.string.just_now));
}
private static AlertDialog lastDialog;
public static AlertDialog getLastDialog() {
return lastDialog;
}
public static void showAddDialog(Context context, String title,
final DialogResponseListener addListener) {
final EditText todoItem = new EditText(context);
AlertDialog dialog = new AlertDialog.Builder(context)
.setTitle(title)
.setView(todoItem)
.setPositiveButton("Add", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
addListener.handleResponse(todoItem.getText().toString());
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
}).show();
dialog.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
lastDialog = dialog;
}
public static void showEditDialog(Context context, String title, String defaultValue,
final DialogResponseListener editListener) {
final EditText todoItem = new EditText(context);
todoItem.setText(defaultValue);
AlertDialog dialog = new AlertDialog.Builder(context)
.setTitle(title)
.setView(todoItem)
.setPositiveButton("Save", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
editListener.handleResponse(todoItem.getText().toString());
}
})
.setNeutralButton("Delete", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
editListener.handleDelete();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
}).show();
dialog.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
lastDialog = dialog;
}
public static abstract class DialogResponseListener {
public abstract void handleResponse(String response);
public void handleDelete() {
}
}
}