|
Android example source code file (History.java)
The History.java Android example source code
/*
* Copyright (C) 2008 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.beust.android.translate;
import com.beust.android.translate.Languages.Language;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
/**
* This class handles the history of past translations.
*/
public class History {
private static final String HISTORY = "history";
/**
* Sort the translations by timestamp.
*/
private static final Comparator<HistoryRecord> MOST_RECENT_COMPARATOR
= new Comparator<HistoryRecord>() {
public int compare(HistoryRecord object1, HistoryRecord object2) {
return (int) (object2.when - object1.when);
}
};
/**
* Sort the translations by destination language and then by input.
*/
private static final Comparator<HistoryRecord> LANGUAGE_COMPARATOR
= new Comparator<HistoryRecord>() {
public int compare(HistoryRecord object1, HistoryRecord object2) {
int result = object1.to.getLongName().compareTo(object2.to.getLongName());
if (result == 0) {
result = object1.input.compareTo(object2.input);
}
return result;
}
};
private List<HistoryRecord> mHistoryRecords = Lists.newArrayList();
public History(SharedPreferences prefs) {
mHistoryRecords = restoreHistory(prefs);
}
public static List<HistoryRecord> restoreHistory(SharedPreferences prefs) {
List<HistoryRecord> result = Lists.newArrayList();
boolean done = false;
int i = 0;
Map<String, ?> allKeys = prefs.getAll();
for (String key : allKeys.keySet()) {
if (key.startsWith(HISTORY)) {
String value = (String) allKeys.get(key);
result.add(HistoryRecord.decode(value));
}
}
// while (! done) {
// String history = prefs.getString(HISTORY + "-" + i++, null);
// if (history != null) {
// result.add(HistoryRecord.decode(history));
// } else {
// done = true;
// }
// }
return result;
}
// public void saveHistory(Editor edit) {
// log("Saving history");
// for (int i = 0; i < mHistoryRecords.size(); i++) {
// HistoryRecord hr = mHistoryRecords.get(i);
// edit.putString(HISTORY + "-" + i, hr.encode());
// }
// }
public static void addHistoryRecord(Context context,
Language from, Language to, String input, String output) {
History historyRecord = new History(TranslateActivity.getPrefs(context));
HistoryRecord hr = new HistoryRecord(from, to, input, output, System.currentTimeMillis());
// Find an empty key to add this history record
SharedPreferences prefs = TranslateActivity.getPrefs(context);
int i = 0;
while (true) {
String key = HISTORY + "-" + i;
if (!prefs.contains(key)) {
Editor edit = prefs.edit();
edit.putString(key, hr.encode());
log("Committing " + key + " " + hr.encode());
edit.commit();
return;
} else {
i++;
}
}
}
// public static void addHistoryRecord(Context context, List<HistoryRecord> result, HistoryRecord hr) {
// if (! result.contains(hr)) {
// result.add(hr);
// }
// Editor edit = getPrefs(context).edit();
// }
private static void log(String s) {
Log.d(TranslateActivity.TAG, "[History] " + s);
}
public List<HistoryRecord> getHistoryRecordsMostRecentFirst() {
Collections.sort(mHistoryRecords, MOST_RECENT_COMPARATOR);
return mHistoryRecords;
}
public List<HistoryRecord> getHistoryRecordsByLanguages() {
Collections.sort(mHistoryRecords, LANGUAGE_COMPARATOR);
return mHistoryRecords;
}
public List<HistoryRecord> getHistoryRecords(Comparator
Other Android examples (source code examples)Here is a short list of links related to this Android History.java source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.