version:1.7.4
fix: update:样式优化,增加dockapp预览
This commit is contained in:
@@ -17,8 +17,8 @@ android {
|
|||||||
applicationId "com.xxpatx.os"
|
applicationId "com.xxpatx.os"
|
||||||
minSdkVersion 24
|
minSdkVersion 24
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode 1073
|
versionCode 1074
|
||||||
versionName "1.7.3"
|
versionName "1.7.4"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.google.gson.Gson;
|
|||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.tencent.mmkv.MMKV;
|
import com.tencent.mmkv.MMKV;
|
||||||
import com.xxpatx.os.R;
|
import com.xxpatx.os.R;
|
||||||
|
import com.xxpatx.os.adapter.DockAppAdapter;
|
||||||
import com.xxpatx.os.adapter.DockAppSelectedAdapter;
|
import com.xxpatx.os.adapter.DockAppSelectedAdapter;
|
||||||
import com.xxpatx.os.base.mvvm.BaseMvvmActivity;
|
import com.xxpatx.os.base.mvvm.BaseMvvmActivity;
|
||||||
import com.xxpatx.os.bean.DockApp;
|
import com.xxpatx.os.bean.DockApp;
|
||||||
@@ -29,10 +30,10 @@ public class DockActivity extends BaseMvvmActivity<DockViewModel, ActivityDockBi
|
|||||||
|
|
||||||
public static final String DOCK_APP_KEY = "DockAppPackageKey";
|
public static final String DOCK_APP_KEY = "DockAppPackageKey";
|
||||||
|
|
||||||
|
private DockAppAdapter mDockAppAdapter;
|
||||||
private DockAppSelectedAdapter mDockAppSelectedAdapter;
|
private DockAppSelectedAdapter mDockAppSelectedAdapter;
|
||||||
|
|
||||||
public static final List<String> INCLUDE_SYSTEM_APP =new ArrayList<String>(){{
|
public static final List<String> INCLUDE_SYSTEM_APP = new ArrayList<String>() {{
|
||||||
this.add("com.android.mms");//信息
|
this.add("com.android.mms");//信息
|
||||||
this.add("com.mediatek.camera");
|
this.add("com.mediatek.camera");
|
||||||
}};
|
}};
|
||||||
@@ -47,7 +48,25 @@ public class DockActivity extends BaseMvvmActivity<DockViewModel, ActivityDockBi
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initView() {
|
protected void initView() {
|
||||||
|
mDockAppAdapter = new DockAppAdapter();
|
||||||
mDockAppSelectedAdapter = new DockAppSelectedAdapter();
|
mDockAppSelectedAdapter = new DockAppSelectedAdapter();
|
||||||
|
|
||||||
|
mDockAppAdapter.setAppSelectedCallback(new DockAppAdapter.AppSelectedCallback() {
|
||||||
|
@Override
|
||||||
|
public void onAppSelected(List<DockApp> dockApps) {
|
||||||
|
mDockAppSelectedAdapter.notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mViewDataBinding.rvSelect.setLayoutManager(new GridLayoutManager(this, 4));
|
||||||
|
mViewDataBinding.rvSelect.addItemDecoration(new GridSpaceItemDecoration(4, 10, 10));
|
||||||
|
mViewDataBinding.rvSelect.setAdapter(mDockAppAdapter);
|
||||||
|
|
||||||
|
mDockAppSelectedAdapter.setAppSelectedCallback(new DockAppSelectedAdapter.AppSelectedCallback() {
|
||||||
|
@Override
|
||||||
|
public void onAppSelected(List<DockApp> dockApps) {
|
||||||
|
mDockAppAdapter.setDockApps(dockApps);
|
||||||
|
}
|
||||||
|
});
|
||||||
// if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
// if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||||
// mViewDataBinding.recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
|
// mViewDataBinding.recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
|
||||||
// mViewDataBinding.recyclerView.addItemDecoration(new GridSpaceItemDecoration(3, 20, 20));
|
// mViewDataBinding.recyclerView.addItemDecoration(new GridSpaceItemDecoration(3, 20, 20));
|
||||||
@@ -82,6 +101,7 @@ public class DockActivity extends BaseMvvmActivity<DockViewModel, ActivityDockBi
|
|||||||
try {
|
try {
|
||||||
List<DockApp> dockApps = gson.fromJson(jsonString, type);
|
List<DockApp> dockApps = gson.fromJson(jsonString, type);
|
||||||
mDockAppSelectedAdapter.setSelectedPkgList(dockApps);
|
mDockAppSelectedAdapter.setSelectedPkgList(dockApps);
|
||||||
|
mDockAppAdapter.setDockApps(dockApps);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e(TAG, "setDockApp: " + e.getMessage());
|
Log.e(TAG, "setDockApp: " + e.getMessage());
|
||||||
mMMKV.encode(DockActivity.DOCK_APP_KEY, "");
|
mMMKV.encode(DockActivity.DOCK_APP_KEY, "");
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package com.xxpatx.os.adapter;
|
package com.xxpatx.os.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.pm.ApplicationInfo;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@@ -11,10 +14,12 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.xxpatx.os.BuildConfig;
|
||||||
import com.xxpatx.os.R;
|
import com.xxpatx.os.R;
|
||||||
import com.xxpatx.os.bean.DockApp;
|
import com.xxpatx.os.bean.DockApp;
|
||||||
import com.xxpatx.os.service.NotificationService;
|
import com.xxpatx.os.service.NotificationService;
|
||||||
import com.xxpatx.os.utils.ApkUtils;
|
import com.xxpatx.os.utils.ApkUtils;
|
||||||
|
import com.xxpatx.os.utils.IconUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -29,6 +34,16 @@ public class DockAppAdapter extends RecyclerView.Adapter<DockAppAdapter.Holder>
|
|||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private AppSelectedCallback mAppSelectedCallback;
|
||||||
|
|
||||||
|
public void setAppSelectedCallback(AppSelectedCallback appSelectedCallback) {
|
||||||
|
mAppSelectedCallback = appSelectedCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface AppSelectedCallback {
|
||||||
|
void onAppSelected(List<DockApp> dockApps);
|
||||||
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
@@ -39,15 +54,21 @@ public class DockAppAdapter extends RecyclerView.Adapter<DockAppAdapter.Holder>
|
|||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(@NonNull Holder holder, int position) {
|
public void onBindViewHolder(@NonNull Holder holder, int position) {
|
||||||
DockApp dockApp = mDockApps.get(position);
|
DockApp dockApp = mDockApps.get(position);
|
||||||
holder.iv_icon.setImageDrawable(ApkUtils.getAppDrawable(mContext, dockApp.getPackageName()));
|
String pkg = dockApp.getPackageName();
|
||||||
|
holder.iv_icon.setImageDrawable(ApkUtils.getAppDrawable(mContext, pkg));
|
||||||
holder.tv_name.setText(dockApp.getAppName());
|
holder.tv_name.setText(dockApp.getAppName());
|
||||||
holder.root.setOnClickListener(new View.OnClickListener() {
|
holder.root.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
ApkUtils.openPackage(mContext, dockApp.getPackageName(), dockApp.getClassName());
|
// ApkUtils.openPackage(mContext, pkg, dockApp.getClassName());
|
||||||
|
mDockApps.remove(position);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
if (mAppSelectedCallback != null) {
|
||||||
|
mAppSelectedCallback.onAppSelected(mDockApps);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
int size = NotificationService.getNotificationLength(dockApp.getPackageName());
|
int size = NotificationService.getNotificationLength(pkg);
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
holder.bg.setVisibility(View.GONE);
|
holder.bg.setVisibility(View.GONE);
|
||||||
} else if (size < 99) {
|
} else if (size < 99) {
|
||||||
@@ -57,7 +78,19 @@ public class DockAppAdapter extends RecyclerView.Adapter<DockAppAdapter.Holder>
|
|||||||
holder.bg.setVisibility(View.VISIBLE);
|
holder.bg.setVisibility(View.VISIBLE);
|
||||||
holder.bg.setText("99+");
|
holder.bg.setText("99+");
|
||||||
}
|
}
|
||||||
|
switch (pkg) {
|
||||||
|
case "xxpatx.os.dialer":
|
||||||
|
holder.iv_icon.setImageDrawable(mContext.getDrawable(R.drawable.home_icon_dialer));
|
||||||
|
break;
|
||||||
|
case "com.mediatek.camera":
|
||||||
|
holder.iv_icon.setImageDrawable(mContext.getDrawable(R.drawable.com_android_camera));
|
||||||
|
break;
|
||||||
|
case "com.android.mms":
|
||||||
|
holder.iv_icon.setImageDrawable(mContext.getDrawable(R.drawable.com_android_mms_ui));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
holder.iv_icon.setImageDrawable(getIcon(pkg));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -65,6 +98,29 @@ public class DockAppAdapter extends RecyclerView.Adapter<DockAppAdapter.Holder>
|
|||||||
return mDockApps == null ? 0 : mDockApps.size();
|
return mDockApps == null ? 0 : mDockApps.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Drawable getIcon(String packageName) {
|
||||||
|
PackageManager pm = mContext.getPackageManager();
|
||||||
|
ApplicationInfo info = null;
|
||||||
|
try {
|
||||||
|
info = pm.getApplicationInfo(packageName, 0);
|
||||||
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
if (info == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
int i = IconUtils.appClassNameList.indexOf(packageName);
|
||||||
|
if (i != -1) {
|
||||||
|
String val = IconUtils.appIconList.get(i);
|
||||||
|
int resID = mContext.getResources().getIdentifier(val, "drawable", BuildConfig.APPLICATION_ID);
|
||||||
|
if (resID != 0) {
|
||||||
|
return mContext.getResources().getDrawable(resID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return info.loadIcon(pm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static class Holder extends RecyclerView.ViewHolder {
|
static class Holder extends RecyclerView.ViewHolder {
|
||||||
ConstraintLayout root;
|
ConstraintLayout root;
|
||||||
ImageView iv_icon;
|
ImageView iv_icon;
|
||||||
|
|||||||
@@ -2,7 +2,10 @@ package com.xxpatx.os.adapter;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.pm.ApplicationInfo;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.provider.CallLog;
|
import android.provider.CallLog;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@@ -14,12 +17,14 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
|
|
||||||
|
import com.xxpatx.os.BuildConfig;
|
||||||
import com.xxpatx.os.R;
|
import com.xxpatx.os.R;
|
||||||
import com.xxpatx.os.activity.phone.PhoneActivity;
|
import com.xxpatx.os.activity.phone.PhoneActivity;
|
||||||
import com.xxpatx.os.bean.DockApp;
|
import com.xxpatx.os.bean.DockApp;
|
||||||
import com.xxpatx.os.manager.SpeechManager;
|
import com.xxpatx.os.manager.SpeechManager;
|
||||||
import com.xxpatx.os.service.NotificationService;
|
import com.xxpatx.os.service.NotificationService;
|
||||||
import com.xxpatx.os.utils.ApkUtils;
|
import com.xxpatx.os.utils.ApkUtils;
|
||||||
|
import com.xxpatx.os.utils.IconUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -84,7 +89,7 @@ public class DockAppGridAdapter extends BaseAdapter {
|
|||||||
holder.iv_icon.setImageDrawable(mContext.getDrawable(R.drawable.com_android_mms_ui));
|
holder.iv_icon.setImageDrawable(mContext.getDrawable(R.drawable.com_android_mms_ui));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
holder.iv_icon.setImageDrawable(ApkUtils.getAppDrawable(mContext, pkg));
|
holder.iv_icon.setImageDrawable(getIcon(pkg));
|
||||||
}
|
}
|
||||||
holder.tv_name.setText(dockApp.getAppName());
|
holder.tv_name.setText(dockApp.getAppName());
|
||||||
holder.root.setOnClickListener(new View.OnClickListener() {
|
holder.root.setOnClickListener(new View.OnClickListener() {
|
||||||
@@ -124,6 +129,29 @@ public class DockAppGridAdapter extends BaseAdapter {
|
|||||||
return convertView;
|
return convertView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Drawable getIcon(String packageName) {
|
||||||
|
PackageManager pm = mContext.getPackageManager();
|
||||||
|
ApplicationInfo info = null;
|
||||||
|
try {
|
||||||
|
info = pm.getApplicationInfo(packageName, 0);
|
||||||
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
if (info == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
int i = IconUtils.appClassNameList.indexOf(packageName);
|
||||||
|
if (i != -1) {
|
||||||
|
String val = IconUtils.appIconList.get(i);
|
||||||
|
int resID = mContext.getResources().getIdentifier(val, "drawable", BuildConfig.APPLICATION_ID);
|
||||||
|
if (resID != 0) {
|
||||||
|
return mContext.getResources().getDrawable(resID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return info.loadIcon(pm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private int readMissCall() {
|
private int readMissCall() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
Cursor cursor = mContext.getContentResolver().query(CallLog.Calls.CONTENT_URI,
|
Cursor cursor = mContext.getContentResolver().query(CallLog.Calls.CONTENT_URI,
|
||||||
|
|||||||
@@ -48,6 +48,16 @@ public class DockAppSelectedAdapter extends RecyclerView.Adapter<DockAppSelected
|
|||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private AppSelectedCallback mAppSelectedCallback;
|
||||||
|
|
||||||
|
public void setAppSelectedCallback(AppSelectedCallback appSelectedCallback) {
|
||||||
|
mAppSelectedCallback = appSelectedCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface AppSelectedCallback {
|
||||||
|
void onAppSelected(List<DockApp> dockApps);
|
||||||
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
@@ -70,7 +80,7 @@ public class DockAppSelectedAdapter extends RecyclerView.Adapter<DockAppSelected
|
|||||||
holder.iv_icon.setImageDrawable(mContext.getDrawable(R.drawable.com_android_mms_ui));
|
holder.iv_icon.setImageDrawable(mContext.getDrawable(R.drawable.com_android_mms_ui));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
holder.iv_icon.setImageDrawable(getIcon(dockApp.getPackageName()));
|
holder.iv_icon.setImageDrawable(getIcon(pkg));
|
||||||
}
|
}
|
||||||
holder.tv_name.setText(dockApp.getAppName());
|
holder.tv_name.setText(dockApp.getAppName());
|
||||||
if (mSelectedPkgList.contains(dockApp)) {
|
if (mSelectedPkgList.contains(dockApp)) {
|
||||||
@@ -144,11 +154,17 @@ public class DockAppSelectedAdapter extends RecyclerView.Adapter<DockAppSelected
|
|||||||
Toaster.show("最多选择5个");
|
Toaster.show("最多选择5个");
|
||||||
} else {
|
} else {
|
||||||
mSelectedPkgList.add(dockApp);
|
mSelectedPkgList.add(dockApp);
|
||||||
|
if (mAppSelectedCallback != null) {
|
||||||
|
mAppSelectedCallback.onAppSelected(mSelectedPkgList);
|
||||||
|
}
|
||||||
iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_selected));
|
iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_selected));
|
||||||
root.setBackground(mContext.getDrawable(R.drawable.app_select_background));
|
root.setBackground(mContext.getDrawable(R.drawable.app_select_background));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mSelectedPkgList.remove(dockApp);
|
mSelectedPkgList.remove(dockApp);
|
||||||
|
if (mAppSelectedCallback != null) {
|
||||||
|
mAppSelectedCallback.onAppSelected(mSelectedPkgList);
|
||||||
|
}
|
||||||
iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_unselected));
|
iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_unselected));
|
||||||
root.setBackground(mContext.getDrawable(R.drawable.app_unselect_background));
|
root.setBackground(mContext.getDrawable(R.drawable.app_unselect_background));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class WeatherDayApdapterPort extends RecyclerView.Adapter<WeatherDayApdap
|
|||||||
try {
|
try {
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
Date date = sdf.parse(dailyBean.getFxDate());
|
Date date = sdf.parse(dailyBean.getFxDate());
|
||||||
SimpleDateFormat now = new SimpleDateFormat("MM月dd日");
|
SimpleDateFormat now = new SimpleDateFormat("dd日");
|
||||||
dateString = now.format(date);
|
dateString = now.format(date);
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
25
app/src/main/res/drawable/settings_app_card_bg.xml
Normal file
25
app/src/main/res/drawable/settings_app_card_bg.xml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
|
||||||
|
<!-- 填充的颜色:这里设置背景透明 -->
|
||||||
|
<solid android:color="#4DF3F3F3" />
|
||||||
|
<!-- 边框的颜色 :不能和窗口背景色一样 -->
|
||||||
|
|
||||||
|
<!-- 设置按钮的四个角为弧形 -->
|
||||||
|
<!-- android:radius 弧形的半径 -->
|
||||||
|
<corners
|
||||||
|
android:bottomLeftRadius="10dp"
|
||||||
|
android:bottomRightRadius="10dp"
|
||||||
|
android:topLeftRadius="10dp"
|
||||||
|
android:topRightRadius="10dp" />
|
||||||
|
|
||||||
|
|
||||||
|
<!-- padding:Button里面的文字与Button边界的间隔 -->
|
||||||
|
<!-- <padding-->
|
||||||
|
<!-- android:bottom="10dp"-->
|
||||||
|
<!-- android:left="10dp"-->
|
||||||
|
<!-- android:right="10dp"-->
|
||||||
|
<!-- android:top="10dp" />-->
|
||||||
|
|
||||||
|
</shape>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/constraintLayout"
|
android:id="@+id/cl_exit"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="48dp"
|
android:layout_height="48dp"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
@@ -57,6 +57,18 @@
|
|||||||
tools:text="@string/app_size" />
|
tools:text="@string/app_size" />
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rv_select"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="88dp"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:background="@drawable/settings_app_card_bg"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/cl_exit" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/recyclerView"
|
android:id="@+id/recyclerView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@@ -67,7 +79,7 @@
|
|||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/constraintLayout" />
|
app:layout_constraintTop_toBottomOf="@+id/rv_select" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</layout>
|
</layout>
|
||||||
Reference in New Issue
Block a user