Add timestamp to recent used apps
Bug: 129354132 Test: build, flash, and test manually Change-Id: If8e657460da45db019633e95e77dffb1493997c0
This commit is contained in:
@@ -18,6 +18,7 @@ import static java.util.concurrent.TimeUnit.DAYS;
|
|||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.icu.text.RelativeDateTimeFormatter;
|
||||||
import android.provider.DeviceConfig;
|
import android.provider.DeviceConfig;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
@@ -30,6 +31,7 @@ import com.android.settings.Utils;
|
|||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.location.RecentLocationAccesses;
|
import com.android.settingslib.location.RecentLocationAccesses;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
import com.android.settingslib.widget.AppEntitiesHeaderController;
|
import com.android.settingslib.widget.AppEntitiesHeaderController;
|
||||||
import com.android.settingslib.widget.AppEntityInfo;
|
import com.android.settingslib.widget.AppEntityInfo;
|
||||||
import com.android.settingslib.widget.LayoutPreference;
|
import com.android.settingslib.widget.LayoutPreference;
|
||||||
@@ -101,7 +103,9 @@ public class RecentLocationAccessPreferenceController extends AbstractPreference
|
|||||||
final AppEntityInfo appEntityInfo = new AppEntityInfo.Builder()
|
final AppEntityInfo appEntityInfo = new AppEntityInfo.Builder()
|
||||||
.setIcon(access.icon)
|
.setIcon(access.icon)
|
||||||
.setTitle(access.label)
|
.setTitle(access.label)
|
||||||
.setSummary(access.contentDescription)
|
.setSummary(StringUtil.formatRelativeTime(mContext,
|
||||||
|
System.currentTimeMillis() - access.accessFinishTime, false,
|
||||||
|
RelativeDateTimeFormatter.Style.SHORT))
|
||||||
.setOnClickListener((v) -> {
|
.setOnClickListener((v) -> {
|
||||||
final Intent intent = new Intent(Intent.ACTION_MANAGE_APP_PERMISSION);
|
final Intent intent = new Intent(Intent.ACTION_MANAGE_APP_PERMISSION);
|
||||||
intent.putExtra(Intent.EXTRA_PERMISSION_NAME,
|
intent.putExtra(Intent.EXTRA_PERMISSION_NAME,
|
||||||
|
@@ -129,32 +129,26 @@ public class RecentLocationAccessPreferenceControllerTest {
|
|||||||
final View app1View = mAppEntitiesHeaderView.findViewById(R.id.app1_view);
|
final View app1View = mAppEntitiesHeaderView.findViewById(R.id.app1_view);
|
||||||
final ImageView appIconView1 = app1View.findViewById(R.id.app_icon);
|
final ImageView appIconView1 = app1View.findViewById(R.id.app_icon);
|
||||||
final TextView appTitle1 = app1View.findViewById(R.id.app_title);
|
final TextView appTitle1 = app1View.findViewById(R.id.app_title);
|
||||||
final TextView appSummary1 = app1View.findViewById(R.id.app_summary);
|
|
||||||
|
|
||||||
assertThat(app1View.getVisibility()).isEqualTo(View.VISIBLE);
|
assertThat(app1View.getVisibility()).isEqualTo(View.VISIBLE);
|
||||||
assertThat(appIconView1.getDrawable()).isNotNull();
|
assertThat(appIconView1.getDrawable()).isNotNull();
|
||||||
assertThat(appTitle1.getText()).isEqualTo("appTitle0");
|
assertThat(appTitle1.getText()).isEqualTo("appTitle0");
|
||||||
assertThat(appSummary1.getText()).isEqualTo("appSummary0");
|
|
||||||
|
|
||||||
final View app2View = mAppEntitiesHeaderView.findViewById(R.id.app2_view);
|
final View app2View = mAppEntitiesHeaderView.findViewById(R.id.app2_view);
|
||||||
final ImageView appIconView2 = app2View.findViewById(R.id.app_icon);
|
final ImageView appIconView2 = app2View.findViewById(R.id.app_icon);
|
||||||
final TextView appTitle2 = app2View.findViewById(R.id.app_title);
|
final TextView appTitle2 = app2View.findViewById(R.id.app_title);
|
||||||
final TextView appSummary2 = app2View.findViewById(R.id.app_summary);
|
|
||||||
|
|
||||||
assertThat(app2View.getVisibility()).isEqualTo(View.VISIBLE);
|
assertThat(app2View.getVisibility()).isEqualTo(View.VISIBLE);
|
||||||
assertThat(appIconView2.getDrawable()).isNotNull();
|
assertThat(appIconView2.getDrawable()).isNotNull();
|
||||||
assertThat(appTitle2.getText()).isEqualTo("appTitle1");
|
assertThat(appTitle2.getText()).isEqualTo("appTitle1");
|
||||||
assertThat(appSummary2.getText()).isEqualTo("appSummary1");
|
|
||||||
|
|
||||||
final View app3View = mAppEntitiesHeaderView.findViewById(R.id.app3_view);
|
final View app3View = mAppEntitiesHeaderView.findViewById(R.id.app3_view);
|
||||||
final ImageView appIconView3 = app3View.findViewById(R.id.app_icon);
|
final ImageView appIconView3 = app3View.findViewById(R.id.app_icon);
|
||||||
final TextView appTitle3 = app3View.findViewById(R.id.app_title);
|
final TextView appTitle3 = app3View.findViewById(R.id.app_title);
|
||||||
final TextView appSummary3 = app3View.findViewById(R.id.app_summary);
|
|
||||||
|
|
||||||
assertThat(app3View.getVisibility()).isEqualTo(View.VISIBLE);
|
assertThat(app3View.getVisibility()).isEqualTo(View.VISIBLE);
|
||||||
assertThat(appIconView3.getDrawable()).isNotNull();
|
assertThat(appIconView3.getDrawable()).isNotNull();
|
||||||
assertThat(appTitle3.getText()).isEqualTo("appTitle2");
|
assertThat(appTitle3.getText()).isEqualTo("appTitle2");
|
||||||
assertThat(appSummary3.getText()).isEqualTo("appSummary2");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<RecentLocationAccesses.Access> createMockAccesses(int count) {
|
private List<RecentLocationAccesses.Access> createMockAccesses(int count) {
|
||||||
|
Reference in New Issue
Block a user