sortOrder = pref.getString(PREF_SORT_ORDER, "false");
runningAppsOnly = pref.getString(PREF_RECENTS_AMOUNT, "past_day").equals("running_apps_only");
-
- switch(pref.getString(PREF_RECENTS_AMOUNT, "past_day")) {
- case "past_day":
- searchInterval = System.currentTimeMillis() - AlarmManager.INTERVAL_DAY;
- break;
- case "app_start":
- long appStartTime = pref.getLong(PREF_TIME_OF_SERVICE_START, System.currentTimeMillis());
- long deviceStartTime = System.currentTimeMillis() - SystemClock.elapsedRealtime();
-
- searchInterval = deviceStartTime > appStartTime ? deviceStartTime : appStartTime;
- break;
- case "show_all":
- searchInterval = 0;
- break;
- }
+ searchInterval = getSearchInterval(pref);
U.sendBroadcast(context, ACTION_HIDE_START_MENU);
U.sendBroadcast(context, ACTION_UPDATE_HOME_SCREEN_MARGINS);
}
@VisibleForTesting
+ public long getSearchInterval(SharedPreferences pref) {
+ long searchInterval = -1;
+ switch(pref.getString(PREF_RECENTS_AMOUNT, "past_day")) {
+ case "past_day":
+ searchInterval = System.currentTimeMillis() - AlarmManager.INTERVAL_DAY;
+ break;
+ case "app_start":
+ long appStartTime = pref.getLong(PREF_TIME_OF_SERVICE_START, System.currentTimeMillis());
+ long deviceStartTime = System.currentTimeMillis() - SystemClock.elapsedRealtime();
+ searchInterval = Math.max(deviceStartTime, appStartTime);
+ break;
+ case "show_all":
+ searchInterval = 0;
+ break;
+ }
+ return searchInterval;
+ }
+
+ @VisibleForTesting
public void drawSysTray(Context context, int layoutId, LinearLayout layout) {
sysTrayLayout = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.tb_system_tray, null);
package com.farmerbb.taskbar.ui;
+import android.app.AlarmManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Color;
+import android.os.SystemClock;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import static com.farmerbb.taskbar.util.Constants.PREF_BUTTON_BACK;
import static com.farmerbb.taskbar.util.Constants.PREF_BUTTON_HOME;
import static com.farmerbb.taskbar.util.Constants.PREF_BUTTON_RECENTS;
+import static com.farmerbb.taskbar.util.Constants.PREF_RECENTS_AMOUNT;
import static com.farmerbb.taskbar.util.Constants.PREF_START_BUTTON_IMAGE;
+import static com.farmerbb.taskbar.util.Constants.PREF_TIME_OF_SERVICE_START;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
}
@Test
+ public void testGetSearchInterval() {
+ long permitTimeDeltaMillis = 100;
+ prefs.edit().remove(PREF_RECENTS_AMOUNT).apply();
+ long searchInterval = uiController.getSearchInterval(prefs);
+ long lastDayTime = System.currentTimeMillis() - AlarmManager.INTERVAL_DAY;
+ assertEquals(lastDayTime, searchInterval, permitTimeDeltaMillis);
+
+ prefs.edit().putString(PREF_RECENTS_AMOUNT, "app_start").apply();
+ long deviceStartTime = System.currentTimeMillis() - SystemClock.elapsedRealtime();
+ // The service start time is larger than device start time
+ long appStartTime = deviceStartTime * 2;
+ prefs.edit().putLong(PREF_TIME_OF_SERVICE_START, appStartTime).apply();
+ searchInterval = uiController.getSearchInterval(prefs);
+ assertEquals(appStartTime, searchInterval);
+
+ // The service start time is smaller than device start time
+ prefs.edit().putLong(PREF_TIME_OF_SERVICE_START, deviceStartTime - 100).apply();
+ searchInterval = uiController.getSearchInterval(prefs);
+ deviceStartTime = System.currentTimeMillis() - SystemClock.elapsedRealtime();
+ assertEquals(deviceStartTime, searchInterval, permitTimeDeltaMillis);
+ prefs.edit().remove(PREF_TIME_OF_SERVICE_START).apply();
+
+ prefs.edit().putString(PREF_RECENTS_AMOUNT, "show_all").apply();
+ searchInterval = uiController.getSearchInterval(prefs);
+ assertEquals(0, searchInterval);
+
+ prefs.edit().putString(PREF_RECENTS_AMOUNT, "unsupported").apply();
+ searchInterval = uiController.getSearchInterval(prefs);
+ assertEquals(-1, searchInterval);
+
+ prefs.edit().remove(PREF_RECENTS_AMOUNT).apply();
+ }
+
+ @Test
public void testDrawSysTrayOnClickListener() {
PowerMockito.spy(U.class);
BooleanAnswer isLibraryAnswer = new BooleanAnswer();