diff --git a/app/build.gradle b/app/build.gradle index 74c8483..8528013 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.uiui.aios" minSdkVersion 24 targetSdkVersion 29 - versionCode 60 - versionName "6.9" + versionCode 62 + versionName "7.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -177,6 +177,7 @@ dependencies { implementation "androidx.viewpager2:viewpager2:1.0.0" // Java language implementation implementation "androidx.fragment:fragment:1.4.1" + implementation "androidx.viewpager2:viewpager2:1.0.0" implementation 'androidx.legacy:legacy-support-v4:1.0.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.3' @@ -184,7 +185,8 @@ dependencies { implementation "androidx.room:room-runtime:2.4.3" annotationProcessor "androidx.room:room-compiler:2.4.3" - + //内存泄漏检测 + debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.9.1' //磁盘缓存 implementation 'com.jakewharton:disklrucache:2.0.2' //glide diff --git a/app/src/main/java/com/uiui/aios/activity/QuickAppActivity.java b/app/src/main/java/com/uiui/aios/activity/QuickAppActivity.java index 13b59d5..887f076 100644 --- a/app/src/main/java/com/uiui/aios/activity/QuickAppActivity.java +++ b/app/src/main/java/com/uiui/aios/activity/QuickAppActivity.java @@ -22,7 +22,10 @@ import butterknife.BindView; import butterknife.ButterKnife; public class QuickAppActivity extends BaseActivity { - public static final String QUICK_APP_KEY = "QuickAppKey"; + public static final String QUICK_APP_KEY = "QuickAppPackageKey"; + public static final String QUICK_APP_REFRESH_KEY = "QuickAppRefreshKey"; + public static final String QUICK_APP_ENABLED_KEY = "QuickAppEnabledKey"; + private AppSelectedAdapter mAppSelectedAdapter; @BindView(R.id.recyclerView) diff --git a/app/src/main/java/com/uiui/aios/activity/main/MainActivity.java b/app/src/main/java/com/uiui/aios/activity/main/MainActivity.java index 94f0a42..4550b02 100644 --- a/app/src/main/java/com/uiui/aios/activity/main/MainActivity.java +++ b/app/src/main/java/com/uiui/aios/activity/main/MainActivity.java @@ -22,7 +22,6 @@ import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentTransaction; import androidx.viewpager.widget.ViewPager; import com.alarmclock.uiui.IAlarmAidlInterface; @@ -68,14 +67,17 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { @BindView(R.id.magicIndicator) MagicIndicator mMagicIndicator; - private FragmentManager mFragmentManager; - private FragmentTransaction mFragmentTransaction; private ScaleCircleNavigator scaleCircleNavigator; + + private FragmentManager mFragmentManager; + // private FragmentTransaction mFragmentTransaction; private BaseFragmentPagerAdapter mBaseFragmentPagerAdapter; + private List mFragments; private ControlFragment mControlFragment; private CustomFragment mCustomFragment; private SecondFragment mSecondFragment; + private boolean is_twoscreen = false; private int appListIndex = 2; private int defaultCurrent = 1; @@ -97,7 +99,6 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { mMainPresenter.attachView(this); mMainPresenter.setLifecycle(lifecycleSubject); - if (BuildConfig.DEBUG) { Log.e(TAG, "initView: " + this.getClass().getName()); // SystemClock.setCurrentTimeMillis(1662123600000L);//09-02 @@ -105,7 +106,7 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { } mFragmentManager = getSupportFragmentManager(); - mFragmentTransaction = mFragmentManager.beginTransaction(); +// mFragmentTransaction = mFragmentManager.beginTransaction(); mFragments = new ArrayList<>(); mBaseFragmentPagerAdapter = new BaseFragmentPagerAdapter(mFragmentManager, mFragments); // fragmentTransaction.add(R.id.viewPager, appListFragment); @@ -123,6 +124,7 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { mFragments.add(mCustomFragment); mMainPresenter.getSystemSettings(); ArrayList desktopIcons = ApkUtils.queryFilterAppInfo(this); + int x = 0; for (int i = 0; i <= desktopIcons.size(); i++) { if (i != 0 && i % APP_LIST_SIZE == 0) { @@ -290,7 +292,6 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { mBaseFragmentPagerAdapter.notifyItemChanged(); } - @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { @@ -531,13 +532,15 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { registerReceiver(sosNumberReceiver, filter); } - class SOSNumberReceiver extends BroadcastReceiver { + static class SOSNumberReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.e(TAG, "onReceive: " + intent.getAction()); String setting_sos = intent.getStringExtra("setting_sos"); - if (TextUtils.isEmpty(setting_sos)) return; - mCustomFragment.setSosNumber(); + if (TextUtils.isEmpty(setting_sos)) { + return; + } +// mCustomFragment.setSosNumber(); } } diff --git a/app/src/main/java/com/uiui/aios/adapter/AppSelectedAdapter.java b/app/src/main/java/com/uiui/aios/adapter/AppSelectedAdapter.java index 0e5d710..c7bcf3f 100644 --- a/app/src/main/java/com/uiui/aios/adapter/AppSelectedAdapter.java +++ b/app/src/main/java/com/uiui/aios/adapter/AppSelectedAdapter.java @@ -1,6 +1,7 @@ package com.uiui.aios.adapter; import android.content.Context; +import android.provider.Settings; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -24,7 +25,6 @@ public class AppSelectedAdapter extends RecyclerView.Adapter mAppSelectBeans; private int unselectedStatus = -1; private int selecedPosition = unselectedStatus; - private MMKV mMMKV = MMKV.defaultMMKV(); public void setAppSelectBeans(List appSelectBeanList) { this.mAppSelectBeans = appSelectBeanList; @@ -54,13 +54,13 @@ public class AppSelectedAdapter extends RecyclerView.Adapter(Arrays.asList(new DesktopIcon[12 - mDesktopIcons.size()]))); } gridLayout = rootView.findViewById(R.id.list); - if (getActivity().getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { + if (mContext.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { gridLayout.set(4, 3); } else { gridLayout.set(3, 4); @@ -123,8 +125,7 @@ public class AppListFragment extends BaseFragment { @Override public View getView(int index) { PackageManager pm = rootView.getContext().getPackageManager(); - View view = getLayoutInflater().inflate(R.layout.item_actions, - null); + View view = getLayoutInflater().inflate(R.layout.item_actions, null); ImageView iv = view.findViewById(R.id.iv); TextView tv = view.findViewById(R.id.tv); TextView bg = view.findViewById(R.id.bg); @@ -136,7 +137,7 @@ public class AppListFragment extends BaseFragment { int i = IconUtils.appClassNameList.indexOf(pkg); if (i != -1) { String val = IconUtils.appIconList.get(i); - int resID = getActivity().getResources().getIdentifier(val, "drawable", "com.uiui.aios"); + int resID = mContext.getResources().getIdentifier(val, "drawable", "com.uiui.aios"); int size = NotificationService.getNotificationLength(pkg); if (size == 0) { bg.setVisibility(View.GONE); @@ -151,7 +152,7 @@ public class AppListFragment extends BaseFragment { Log.e(TAG, "getView: not found src : " + pkg); iv.setImageDrawable(desktopIcon.getIcon()); } else { - iv.setImageDrawable(getActivity().getResources().getDrawable(resID)); + iv.setImageDrawable(mContext.getResources().getDrawable(resID)); } } else { iv.setImageBitmap(BitmapUtils.getIconBitmap(rootView.getContext(), desktopIcon.getIcon())); @@ -187,6 +188,9 @@ public class AppListFragment extends BaseFragment { showPassword(); } break; + case "aios.family": + startActivity(new Intent(mContext, HealthCodeActivity.class)); + break; case "com.android.dialer": int qch_call_forbid = Settings.System.getInt(mContext.getContentResolver(), "qch_call_forbid", 0); if (qch_call_forbid == 1) { @@ -196,14 +200,14 @@ public class AppListFragment extends BaseFragment { ApkUtils.openPackage(v.getContext(), desktopIcon.getPackageName(), desktopIcon.getClassName()); AppUsedTimeUtils.getInstance().setAppPackageName(desktopIcon.getPackageName()); AppUsedTimeUtils.getInstance().setStartTime(System.currentTimeMillis()); - SendRunningApp(getActivity()); + SendRunningApp(mContext); } break; default: ApkUtils.openPackage(v.getContext(), desktopIcon.getPackageName(), desktopIcon.getClassName()); AppUsedTimeUtils.getInstance().setAppPackageName(desktopIcon.getPackageName()); AppUsedTimeUtils.getInstance().setStartTime(System.currentTimeMillis()); - SendRunningApp(getActivity()); + SendRunningApp(mContext); } } } diff --git a/app/src/main/java/com/uiui/aios/fragment/ControlFragment.java b/app/src/main/java/com/uiui/aios/fragment/ControlFragment.java index 956f3ac..99524fb 100644 --- a/app/src/main/java/com/uiui/aios/fragment/ControlFragment.java +++ b/app/src/main/java/com/uiui/aios/fragment/ControlFragment.java @@ -8,6 +8,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; +import android.content.res.Configuration; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CameraManager; @@ -28,6 +29,7 @@ import android.view.ViewGroup; import android.widget.SeekBar; import android.widget.TextView; +import androidx.annotation.NonNull; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.fragment.app.Fragment; @@ -35,6 +37,7 @@ import com.baidu.location.BDAbstractLocationListener; import com.baidu.location.BDLocation; import com.baidu.location.LocationClient; import com.uiui.aios.R; +import com.uiui.aios.disklrucache.CacheHelper; import com.uiui.aios.manager.AmapManager; import com.uiui.aios.utils.BrightnessUtils; import com.uiui.aios.view.RulerSeekBar; @@ -112,7 +115,7 @@ public class ControlFragment extends Fragment { private View rootView; private Context mContext; private ContentResolver mCRv; - + private CacheHelper mCacheHelper; // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER @@ -154,6 +157,11 @@ public class ControlFragment extends Fragment { } } + @Override + public void onConfigurationChanged(@NonNull Configuration newConfig) { + super.onConfigurationChanged(newConfig); + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -161,6 +169,7 @@ public class ControlFragment extends Fragment { rootView = inflater.inflate(R.layout.fragment_control, container, false); mContext = rootView.getContext(); mCRv = mContext.getContentResolver(); + mCacheHelper = new CacheHelper(mContext); ButterKnife.bind(this, rootView); initView(); initData(); @@ -171,7 +180,7 @@ public class ControlFragment extends Fragment { tv_wifi_ssid.requestFocus(); getWifi(); - registerReceivers(); + registerWiFiReceiver(); getBluetooth(); registerBluetoothReceiver(); getBattery(); @@ -217,10 +226,6 @@ public class ControlFragment extends Fragment { private WifiReceiver mWifiReceiver; - private void registerReceivers() { - registerWiFiReceiver(); - } - private void registerWiFiReceiver() { if (mWifiReceiver == null) { mWifiReceiver = new WifiReceiver(); @@ -238,7 +243,7 @@ public class ControlFragment extends Fragment { mContext.registerReceiver(mWifiReceiver, filter); } - public class WifiReceiver extends BroadcastReceiver { + class WifiReceiver extends BroadcastReceiver { private static final String TAG = "wifiReceiver"; @Override @@ -279,6 +284,12 @@ public class ControlFragment extends Fragment { } } + @Override + public void onResume() { + super.onResume(); + setBrightness(); + } + /** * 获取当前连接WIFI的SSID */ @@ -452,7 +463,7 @@ public class ControlFragment extends Fragment { mContext.registerReceiver(this.bleListenerReceiver, intentFilter); } - public class BluetoothMonitorReceiver extends BroadcastReceiver { + class BluetoothMonitorReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); @@ -556,7 +567,7 @@ public class ControlFragment extends Fragment { } } - public class BatteryReceiver extends BroadcastReceiver { + class BatteryReceiver extends BroadcastReceiver { public static final String TAG = "BatteryReceiver"; @Override @@ -564,7 +575,7 @@ public class ControlFragment extends Fragment { // 获取广播事件 String action = intent.getAction(); if (TextUtils.isEmpty(action)) return; - Log.e(TAG, "onReceive: " + action); +// Log.e(TAG, "onReceive: " + action); switch (action) { case Intent.ACTION_POWER_CONNECTED: cl_battery.setBackground(mContext.getDrawable(R.drawable.control_background_item)); @@ -705,10 +716,10 @@ public class ControlFragment extends Fragment { String font_size; int index = Arrays.binarySearch(mValues, fontScale); Log.e(TAG, "getFontSize: index: " + index); - if (index == -1) { - font_size = "默认"; - } else { + if (index >= 0) { font_size = mEntries.get(index); + } else { + font_size = "默认"; } // tv_font_size.setText(font_size); seekBar.setProgress(index); @@ -740,17 +751,11 @@ public class ControlFragment extends Fragment { private LocationClient locationClient; private void getLocation() { - BDLocation bdLocation = AmapManager.getInstance().getNowMapLocation(); - if (bdLocation != null) { - if (bdLocation.getLocType() == BDLocation.TypeGpsLocation // GPS定位结果 - || bdLocation.getLocType() == BDLocation.TypeNetWorkLocation // 网络定位结果 - || bdLocation.getLocType() == BDLocation.TypeOffLineLocation) {// 离线定位结果 - tv_location.setText(bdLocation.getAddrStr()); - } else { - tv_location.setText("未知"); - } + String addr = mCacheHelper.getAsString(AmapManager.ADDRESS_KEY); + if (TextUtils.isEmpty(addr)) { + tv_location.setText("未知"); } else { - tv_location.setText("定位失败"); + tv_location.setText(addr); } startLocation(); cl_location.setOnClickListener(new View.OnClickListener() { @@ -786,25 +791,19 @@ public class ControlFragment extends Fragment { private void getBrightness() { seekbar_brightness.setMax(255); - //亮度 - int brightness = Settings.System.getInt(mCRv, Settings.System.SCREEN_BRIGHTNESS, 1); - seekbar_brightness.setProgress(brightness); - Log.e(TAG, "getBrightness: brightness = " + brightness); - int gamma = BrightnessUtils.convertLinearToGamma(brightness, 1, 255); - Log.e(TAG, "getBrightness: gamma = " + gamma); - long percentage = Math.round((((double) gamma / 65535) * 100f)); - tv_brightness.setText(percentage + "%"); - Log.e(TAG, "getBrightness: percentage = " + percentage); + setBrightness(); seekbar_brightness.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { Log.e(TAG, "onProgressChanged: i = " + i); Settings.System.putInt(mCRv, Settings.System.SCREEN_BRIGHTNESS, i); - int gamma = BrightnessUtils.convertLinearToGamma(i, 1, 255); + int gamma = BrightnessUtils.convertLinearToGamma(i, 0, 255); Log.e(TAG, "onProgressChanged: gamma = " + gamma); + int linear = BrightnessUtils.convertGammaToLinear(gamma, 0, 255); + Log.e(TAG, "onProgressChanged: linear = " + linear); long percentage = Math.round((((double) gamma / 65535) * 100f)); Log.e(TAG, "onProgressChanged: percentage = " + percentage); - tv_brightness.setText(percentage + "%"); +// tv_brightness.setText(percentage + "%"); } @Override @@ -819,6 +818,18 @@ public class ControlFragment extends Fragment { }); } + private void setBrightness() { + //亮度 + int brightness = Settings.System.getInt(mCRv, Settings.System.SCREEN_BRIGHTNESS, 0); + seekbar_brightness.setProgress(brightness); + Log.e(TAG, "getBrightness: brightness = " + brightness); + int gamma = BrightnessUtils.convertLinearToGamma(brightness, 0, 255); + Log.e(TAG, "getBrightness: gamma = " + gamma); + long percentage = Math.round((((double) gamma / 65535) * 100f)); +// tv_brightness.setText(percentage + "%"); + Log.e(TAG, "getBrightness: percentage = " + percentage); + } + private AudioManager mAudioManager; private void getSound() { diff --git a/app/src/main/java/com/uiui/aios/fragment/ViewPager2Adapter.java b/app/src/main/java/com/uiui/aios/fragment/ViewPager2Adapter.java deleted file mode 100644 index 7524fbd..0000000 --- a/app/src/main/java/com/uiui/aios/fragment/ViewPager2Adapter.java +++ /dev/null @@ -1,227 +0,0 @@ -package com.uiui.aios.fragment; - -import android.util.SparseArray; - -import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentPagerAdapter; -import androidx.fragment.app.FragmentTransaction; -import androidx.lifecycle.Lifecycle; -import androidx.viewpager2.adapter.FragmentStateAdapter; - -import java.util.List; - -/** - * 加载显示Fragment的ViewPagerAdapter基类 - * 提供可以刷新的方法 - * - * @author Fly - * @e-mail 1285760616@qq.com - * @time 2018/3/22 - */ -public class ViewPager2Adapter extends FragmentStateAdapter { - private List mFragmentList; - private FragmentManager mFragmentManager; - /** - * 下面两个值用来保存Fragment的位置信息,用以判断该位置是否需要更新 - */ - private SparseArray mFragmentPositionMap; - private SparseArray mFragmentPositionMapAfterUpdate; - - public ViewPager2Adapter(FragmentManager fm, List fragments, Lifecycle lifecycle) { - super(fm, lifecycle); - mFragmentList = fragments; - mFragmentManager = fm; - mFragmentList = fragments; - mFragmentPositionMap = new SparseArray<>(); - mFragmentPositionMapAfterUpdate = new SparseArray<>(); - setFragmentPositionMap(); - setFragmentPositionMapForUpdate(); - } - - /** - * 保存更新之前的位置信息,用的键值对结构来保存 - */ - private void setFragmentPositionMap() { - mFragmentPositionMap.clear(); - for (int i = 0; i < mFragmentList.size(); i++) { - mFragmentPositionMap.put(Long.valueOf(getItemId(i)).intValue(), String.valueOf(i)); - } - } - - /** - * 保存更新之后的位置信息,用的键值对结构来保存 - */ - private void setFragmentPositionMapForUpdate() { - mFragmentPositionMapAfterUpdate.clear(); - for (int i = 0; i < mFragmentList.size(); i++) { - mFragmentPositionMapAfterUpdate.put(Long.valueOf(getItemId(i)).intValue(), String.valueOf(i)); - } - } - -// /** -// * 在此方法中找到需要更新的位置返回POSITION_NONE,否则返回POSITION_UNCHANGED即可 -// */ -// @Override -// public int getItemPosition(Object object) { -// int hashCode = object.hashCode(); -// //查找object在更新后的列表中的位置 -// String position = mFragmentPositionMapAfterUpdate.get(hashCode); -// //更新后的列表中不存在该object的位置了 -// if (position == null) { -// return POSITION_NONE; -// } else { -// //如果更新后的列表中存在该object的位置, 查找该object之前的位置并判断位置是否发生了变化 -// int size = mFragmentPositionMap.size(); -// for (int i = 0; i < size ; i++) { -// int key = mFragmentPositionMap.keyAt(i); -// if (key == hashCode) { -// String index = mFragmentPositionMap.get(key); -// if (position.equals(index)) { -// //位置没变依然返回POSITION_UNCHANGED -// return POSITION_UNCHANGED; -// } else { -// //位置变了 -// return POSITION_NONE; -// } -// } -// } -// } -// return POSITION_UNCHANGED; -// } - - /** - * 将指定的Fragment替换/更新为新的Fragment - * - * @param oldFragment 旧Fragment - * @param newFragment 新Fragment - */ - public void replaceFragment(Fragment oldFragment, Fragment newFragment) { - int position = mFragmentList.indexOf(oldFragment); - if (position == -1) { - return; - } - //从Transaction移除旧的Fragment - removeFragmentInternal(oldFragment); - //替换List中对应的Fragment - mFragmentList.set(position, newFragment); - //刷新Adapter - notifyItemChanged(); - } - - /** - * 将指定位置的Fragment替换/更新为新的Fragment,同{@link #replaceFragment(Fragment oldFragment, Fragment newFragment)} - * - * @param position 旧Fragment的位置 - * @param newFragment 新Fragment - */ - public void replaceFragment(int position, Fragment newFragment) { - Fragment oldFragment = mFragmentList.get(position); - removeFragmentInternal(oldFragment); - mFragmentList.set(position, newFragment); - notifyItemChanged(); - } - - /** - * 移除指定的Fragment - * - * @param fragment 目标Fragment - */ - public void removeFragment(Fragment fragment) { - //先从List中移除 - mFragmentList.remove(fragment); - //然后从Transaction移除 - removeFragmentInternal(fragment); - //最后刷新Adapter - notifyItemChanged(); - } - - /** - * 移除指定位置的Fragment,同 {@link #removeFragment(Fragment fragment)} - * - * @param position - */ - public void removeFragment(int position) { - Fragment fragment = mFragmentList.get(position); - //然后从List中移除 - mFragmentList.remove(fragment); - //先从Transaction移除 - removeFragmentInternal(fragment); - //最后刷新Adapter - notifyItemChanged(); - } - - /** - * 添加Fragment - * - * @param fragment 目标Fragment - */ - public void addFragment(Fragment fragment) { - mFragmentList.add(fragment); - notifyItemChanged(); - } - - /** - * 在指定位置插入一个Fragment - * - * @param position 插入位置 - * @param fragment 目标Fragment - */ - public void insertFragment(int position, Fragment fragment) { - mFragmentList.add(position, fragment); - notifyItemChanged(); - } - - private void notifyItemChanged() { - //刷新之前重新收集位置信息 - setFragmentPositionMapForUpdate(); - notifyDataSetChanged(); - setFragmentPositionMap(); - } - - /** - * 从Transaction移除Fragment - * - * @param fragment 目标Fragment - */ - private void removeFragmentInternal(Fragment fragment) { - FragmentTransaction transaction = mFragmentManager.beginTransaction(); - transaction.remove(fragment); - transaction.commitNow(); - } - - @NonNull - @Override - public Fragment createFragment(int position) { - return mFragmentList.get(position); - } - -// @Override -// public Fragment getItem(int position) { -// return mFragmentList.get(position); -// } -// -// @Override -// public int getCount() { -// return mFragmentList.size(); -// } - - /** - * 此方法不用position做返回值即可破解fragment tag异常的错误 - */ - @Override - public long getItemId(int position) { - // 获取当前数据的hashCode,其实这里不用hashCode用自定义的可以关联当前Item对象的唯一值也可以,只要不是直接返回position - return mFragmentList.get(position).hashCode(); - } - - @Override - public int getItemCount() { - return mFragmentList.size(); - } - - public List getFragments() { - return mFragmentList; - } -} diff --git a/app/src/main/java/com/uiui/aios/fragment/custom/CustomFragment.java b/app/src/main/java/com/uiui/aios/fragment/custom/CustomFragment.java index 3640dcd..314d1d8 100644 --- a/app/src/main/java/com/uiui/aios/fragment/custom/CustomFragment.java +++ b/app/src/main/java/com/uiui/aios/fragment/custom/CustomFragment.java @@ -250,6 +250,26 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom return mWifiInfo.isConnected(); } + private RefreshBroadcastReceiver mRefreshBroadcastReceiver; + + private void registerRefreshReceiver() { + if (mRefreshBroadcastReceiver == null) { + mRefreshBroadcastReceiver = new RefreshBroadcastReceiver(); + } + IntentFilter filter = new IntentFilter(); + filter.addAction(QuickAppActivity.QUICK_APP_REFRESH_KEY); + mContext.registerReceiver(mRefreshBroadcastReceiver, filter); + } + + class RefreshBroadcastReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + Log.e(TAG, "onReceive: " + intent.getAction()); + setQuickApp(); + } + } + + private void registerAlarmClockReceiver() { if (null == mAlarmClockReceiver) { mAlarmClockReceiver = new AlarmClockReceiver(); @@ -356,6 +376,7 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom private void initView() { Log.e(TAG, "initView: " + Utils.getBatteryLevel(mContext)); + registerRefreshReceiver(); registerBatteryReceiver(); registerAlarmClockReceiver(); registTimeReceiver(); @@ -470,7 +491,10 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom @Override public void onClick(View view) { if (TextUtils.isEmpty(quickAppPackagesName)) { - startActivity(new Intent(mContext, QuickAppActivity.class)); + int is_quick = Settings.Global.getInt(mContext.getContentResolver(), QuickAppActivity.QUICK_APP_ENABLED_KEY, 0); + if (is_quick == 0) { + startActivity(new Intent(mContext, QuickAppActivity.class)); + } } else { ApkUtils.openPackage(mContext, quickAppPackagesName); } @@ -479,7 +503,12 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom cl_app.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { - startActivity(new Intent(mContext, QuickAppActivity.class)); + int is_quick = Settings.Global.getInt(mContext.getContentResolver(), QuickAppActivity.QUICK_APP_ENABLED_KEY, 0); + if (is_quick == 0) { + startActivity(new Intent(mContext, QuickAppActivity.class)); + } else { + ToastUtil.show("已在小程序设置"); + } return false; } }); @@ -629,7 +658,7 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom private String quickAppPackagesName; private void setQuickApp() { - quickAppPackagesName = mMMKV.decodeString(QuickAppActivity.QUICK_APP_KEY, ""); + quickAppPackagesName = Settings.Global.getString(mCRv, QuickAppActivity.QUICK_APP_KEY); Log.e(TAG, "setQuickApp: " + quickAppPackagesName); if (!TextUtils.isEmpty(quickAppPackagesName)) { ApplicationInfo applicationInfo = null; diff --git a/app/src/main/java/com/uiui/aios/manager/AmapManager.java b/app/src/main/java/com/uiui/aios/manager/AmapManager.java index 39f6e69..5115f0a 100644 --- a/app/src/main/java/com/uiui/aios/manager/AmapManager.java +++ b/app/src/main/java/com/uiui/aios/manager/AmapManager.java @@ -10,6 +10,7 @@ import com.baidu.location.BDAbstractLocationListener; import com.baidu.location.BDLocation; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; +import com.blankj.utilcode.util.SPUtils; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.tencent.mmkv.MMKV; @@ -28,7 +29,6 @@ public class AmapManager { private LocationClientOption mOption; private BDLocation mLocation; private CacheHelper mCacheHelper; - private MMKV mmkv = MMKV.defaultMMKV(); private static final String AMAPLOCATION_JSON_KEY = "MAPLOCATION_JSON_STRING"; public static final String LONGITUDE_KEY = "map_longitude_key"; @@ -80,7 +80,7 @@ public class AmapManager { public BDLocation getNowMapLocation() { if (mLocation == null) { - String aMapLocationjson = mmkv.decodeString(AMAPLOCATION_JSON_KEY); + String aMapLocationjson = SPUtils.getInstance().getString(AMAPLOCATION_JSON_KEY); if (TextUtils.isEmpty(aMapLocationjson)) { return null; } @@ -153,7 +153,7 @@ public class AmapManager { case BDLocation.TypeGpsLocation:// GPS定位结果 case BDLocation.TypeNetWorkLocation:// 网络定位结果 case BDLocation.TypeOffLineLocation:// 离线定位结果 - mmkv.encode(AMAPLOCATION_JSON_KEY, GsonUtils.toJsonString(location)); + SPUtils.getInstance().put(AMAPLOCATION_JSON_KEY, GsonUtils.toJsonString(location)); Log.e(TAG, "onLocationChanged: " + "定位成功"); Log.e(TAG, "onLocationChanged: longitude = " + location.getLongitude()); Log.e(TAG, "onLocationChanged: latitude = " + location.getLatitude()); diff --git a/app/src/main/java/com/uiui/aios/utils/ApkUtils.java b/app/src/main/java/com/uiui/aios/utils/ApkUtils.java index f5aa383..c19c3ea 100644 --- a/app/src/main/java/com/uiui/aios/utils/ApkUtils.java +++ b/app/src/main/java/com/uiui/aios/utils/ApkUtils.java @@ -57,6 +57,11 @@ public class ApkUtils { // this.add("com.tencent.android.qqdownloader"); // this.add("com.alldocube.store"); }}; + + private static HashSet excludeClassName = new HashSet() {{ + this.add("com.android.dialer.app.calllog.CallLogActivity"); + }}; + private static HashSet showPackageName = new HashSet() {{ this.add("com.uiui.sn"); this.add("com.android.dialer"); @@ -161,6 +166,7 @@ public class ApkUtils { Set allowPackages = new HashSet(); for (ResolveInfo resolveInfo : resolveinfoList) { Log.i(TAG, "queryFilterAppInfo: " + resolveInfo.activityInfo.packageName); + Log.i(TAG, "queryFilterAppInfo: " + resolveInfo.activityInfo.name); allowPackages.add(resolveInfo.activityInfo.packageName); } String appListString = Settings.System.getString(context.getContentResolver(), "only_jgy_shortcut_list"); @@ -220,8 +226,16 @@ public class ApkUtils { }); ArrayList desktopIcons = new ArrayList<>(); for (ResolveInfo applicationInfo : resolveInfos) { - desktopIcons.add(DesktopIcon.creatDesktopIcon(context, applicationInfo)); + if (!excludeClassName.contains(applicationInfo.activityInfo.name)) { + desktopIcons.add(DesktopIcon.creatDesktopIcon(context, applicationInfo)); + } } + DesktopIcon familyIcon = new DesktopIcon(); + familyIcon.setIcon(context.getDrawable(R.drawable.family_space)); + familyIcon.setLable("家庭空间"); + familyIcon.setPackageName("aios.family"); + desktopIcons.add(0, familyIcon); + DesktopIcon exitIcon = new DesktopIcon(); exitIcon.setIcon(context.getDrawable(R.drawable.exit_icon)); exitIcon.setLable("切换系统"); diff --git a/app/src/main/java/com/uiui/aios/utils/BitmapUtils.java b/app/src/main/java/com/uiui/aios/utils/BitmapUtils.java index b804413..f17546a 100644 --- a/app/src/main/java/com/uiui/aios/utils/BitmapUtils.java +++ b/app/src/main/java/com/uiui/aios/utils/BitmapUtils.java @@ -61,9 +61,9 @@ public class BitmapUtils { Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); drawable.draw(canvas); - return bitmap; + return Utils.getRoundedBitmap(bitmap, context); } else { - return ((BitmapDrawable) drawable).getBitmap(); + return Utils.getRoundedBitmap(((BitmapDrawable) drawable).getBitmap(), context); } } catch (Exception e) { return null; diff --git a/app/src/main/java/com/uiui/aios/utils/Utils.java b/app/src/main/java/com/uiui/aios/utils/Utils.java index 23095b0..0f98079 100644 --- a/app/src/main/java/com/uiui/aios/utils/Utils.java +++ b/app/src/main/java/com/uiui/aios/utils/Utils.java @@ -1,31 +1,28 @@ package com.uiui.aios.utils; import android.annotation.SuppressLint; -import android.app.role.RoleManager; -import android.content.ComponentName; import android.content.Context; import android.content.ContextWrapper; import android.content.Intent; import android.content.IntentFilter; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; import android.os.BatteryManager; import android.os.Build; import android.os.Environment; -import android.os.SystemProperties; -import android.os.UserHandle; -import android.text.TextUtils; import android.util.Log; import androidx.core.content.ContextCompat; import com.uiui.aios.BuildConfig; +import com.uiui.aios.R; import java.io.File; import java.lang.reflect.Method; -import java.util.List; -import java.util.concurrent.Executor; -import java.util.function.Consumer; public class Utils { private static final String TAG = Utils.class.getSimpleName(); @@ -95,5 +92,53 @@ public class Utils { return url.substring(position + 1); } + public static Bitmap getRoundedBitmap(Bitmap mBitmap, Context context) { + Bitmap bgBitmap = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), Bitmap.Config.ARGB_8888); + + Bitmap mask = BitmapFactory.decodeResource(context.getResources(), R.drawable.mask); + int width = mask.getWidth(); + int height = mask.getHeight(); + Bitmap bitmapScale = Bitmap.createScaledBitmap(mBitmap, width, height, true); + bitmapScale.setDensity(context.getResources().getDisplayMetrics().densityDpi); +// Palette p = Palette.from(mBitmap).generate(); +// Palette.Swatch vibrant = p.getVibrantSwatch();//有活力的 +// int color = vibrant.getRgb(); //样本中的像素数量 + + Bitmap result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(); + Paint paint = new Paint(); + + canvas.setBitmap(result); +// canvas.drawColor(color); + canvas.drawBitmap(mask, 0, 0, paint); +// paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); + canvas.drawBitmap(bitmapScale, 0, 0, paint); +// return result; + + Bitmap result2 = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); + Canvas canvas2 = new Canvas(); + Paint paint2 = new Paint(); + canvas2.setBitmap(result2); + canvas2.drawBitmap(mask, 0, 0, paint2); + paint2.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); + canvas2.drawBitmap(result, 0, 0, paint2); + return result2; + + +// Canvas mCanvas = new Canvas(); +// mCanvas.setBitmap(bgBitmap); +// Paint mPaint = new Paint(); +// RectF mRectM = new RectF(scaleM, scaleM, mBitmap.getWidth() - scaleM, mBitmap.getHeight() - scaleM); //设置剪裁圆角的区域 +// Rect mRect = new Rect(0, 0, mBitmap.getWidth(), mBitmap.getHeight()); +// RectF mRectF = mRectM; +// +// float roundPx = 15; //圆角半径 +// mPaint.setAntiAlias(true); +// //Log.d("wy"+TAG,"mBitmap.getWidth()="+mBitmap.getWidth()+", mBitmap.getHeight()="+mBitmap.getHeight()); +// mCanvas.drawRoundRect(mRectF, roundPx, roundPx, mPaint); +// mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); +// mCanvas.drawBitmap(mBitmap, mRect, mRect, mPaint); +// return bgBitmap; + } } diff --git a/app/src/main/java/com/uiui/aios/viewpager2/ViewPager2Helper.java b/app/src/main/java/com/uiui/aios/viewpager2/ViewPager2Helper.java new file mode 100644 index 0000000..1d95a29 --- /dev/null +++ b/app/src/main/java/com/uiui/aios/viewpager2/ViewPager2Helper.java @@ -0,0 +1,32 @@ +package com.uiui.aios.viewpager2; + +import androidx.viewpager.widget.ViewPager; +import androidx.viewpager2.widget.ViewPager2; + +import net.lucode.hackware.magicindicator.MagicIndicator; + +/** + * 简化和ViewPager绑定 + * Created by hackware on 2016/8/17. + */ + +public class ViewPager2Helper { + public static void bind(final MagicIndicator magicIndicator, ViewPager2 viewPager) { + viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels); + } + + @Override + public void onPageSelected(int position) { + magicIndicator.onPageSelected(position); + } + + @Override + public void onPageScrollStateChanged(int state) { + magicIndicator.onPageScrollStateChanged(state); + } + }); + } +} diff --git a/app/src/main/java/com/uiui/aios/viewpager2/Viewpager2Adapter.java b/app/src/main/java/com/uiui/aios/viewpager2/Viewpager2Adapter.java new file mode 100644 index 0000000..946225f --- /dev/null +++ b/app/src/main/java/com/uiui/aios/viewpager2/Viewpager2Adapter.java @@ -0,0 +1,51 @@ +package com.uiui.aios.viewpager2; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; +import androidx.viewpager2.adapter.FragmentStateAdapter; + +import java.util.List; + +public class Viewpager2Adapter extends FragmentStateAdapter { + + private FragmentManager mFragmentManager; + private List fragmentList; + + + public Viewpager2Adapter(@NonNull FragmentActivity fragmentActivity, FragmentManager fragmentManager, List fragmentList) { + super(fragmentActivity); + this.mFragmentManager = fragmentManager; + this.fragmentList = fragmentList; + } + + public void replaceFragment(int position, Fragment fragment) { + + } + + public void addFragment(Fragment fragment) { + + } + + @NonNull + @Override + public Fragment createFragment(int position) { + return fragmentList.get(position); + } + + @Override + public long getItemId(int position) { + return super.getItemId(position); + } + + @Override + public int getItemCount() { + return fragmentList == null ? 0 : fragmentList.size(); + } + + @Override + public boolean containsItem(long itemId) { + return super.containsItem(itemId); + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/com_android_appstore.png b/app/src/main/res/drawable-hdpi/com_android_appstore.png index 03443fa..9b06c7c 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_appstore.png and b/app/src/main/res/drawable-hdpi/com_android_appstore.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_browser.png b/app/src/main/res/drawable-hdpi/com_android_browser.png index 405eb59..c569613 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_browser.png and b/app/src/main/res/drawable-hdpi/com_android_browser.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_calculator2.png b/app/src/main/res/drawable-hdpi/com_android_calculator2.png index 9bb3287..31402e7 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_calculator2.png and b/app/src/main/res/drawable-hdpi/com_android_calculator2.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_calendar.png b/app/src/main/res/drawable-hdpi/com_android_calendar.png index e70be32..0065e28 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_calendar.png and b/app/src/main/res/drawable-hdpi/com_android_calendar.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_camera.png b/app/src/main/res/drawable-hdpi/com_android_camera.png index 85ad259..bbeb62c 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_camera.png and b/app/src/main/res/drawable-hdpi/com_android_camera.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_clean.png b/app/src/main/res/drawable-hdpi/com_android_clean.png index 02a2238..be7eae1 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_clean.png and b/app/src/main/res/drawable-hdpi/com_android_clean.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_contacts.png b/app/src/main/res/drawable-hdpi/com_android_contacts.png index ed2d5e2..b204ea0 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_contacts.png and b/app/src/main/res/drawable-hdpi/com_android_contacts.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_deskclock.png b/app/src/main/res/drawable-hdpi/com_android_deskclock.png index 986e8e5..81bf96f 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_deskclock.png and b/app/src/main/res/drawable-hdpi/com_android_deskclock.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_dialer.png b/app/src/main/res/drawable-hdpi/com_android_dialer.png index 48775aa..5bf5306 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_dialer.png and b/app/src/main/res/drawable-hdpi/com_android_dialer.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_gallery3d_app.png b/app/src/main/res/drawable-hdpi/com_android_gallery3d_app.png index e9da7c3..a5177c3 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_gallery3d_app.png and b/app/src/main/res/drawable-hdpi/com_android_gallery3d_app.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_mms_ui.png b/app/src/main/res/drawable-hdpi/com_android_mms_ui.png index c6c5af5..1ac19f2 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_mms_ui.png and b/app/src/main/res/drawable-hdpi/com_android_mms_ui.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_music.png b/app/src/main/res/drawable-hdpi/com_android_music.png index 9c898d3..d0b55a9 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_music.png and b/app/src/main/res/drawable-hdpi/com_android_music.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_settings.png b/app/src/main/res/drawable-hdpi/com_android_settings.png index 1a258a7..ad4e3a7 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_settings.png and b/app/src/main/res/drawable-hdpi/com_android_settings.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_soundrecorder.png b/app/src/main/res/drawable-hdpi/com_android_soundrecorder.png index 915c773..538075f 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_soundrecorder.png and b/app/src/main/res/drawable-hdpi/com_android_soundrecorder.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_stk_stkmain.png b/app/src/main/res/drawable-hdpi/com_android_stk_stkmain.png index efefc92..1af7e9e 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_stk_stkmain.png and b/app/src/main/res/drawable-hdpi/com_android_stk_stkmain.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_vdieo.png b/app/src/main/res/drawable-hdpi/com_android_vdieo.png index 09e158c..a031a22 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_vdieo.png and b/app/src/main/res/drawable-hdpi/com_android_vdieo.png differ diff --git a/app/src/main/res/drawable-hdpi/com_mediatek_filemanager.png b/app/src/main/res/drawable-hdpi/com_mediatek_filemanager.png index deec7e2..2c5128a 100644 Binary files a/app/src/main/res/drawable-hdpi/com_mediatek_filemanager.png and b/app/src/main/res/drawable-hdpi/com_mediatek_filemanager.png differ diff --git a/app/src/main/res/drawable-hdpi/com_mediatek_fmradio.png b/app/src/main/res/drawable-hdpi/com_mediatek_fmradio.png index 0bc578f..f62afdf 100644 Binary files a/app/src/main/res/drawable-hdpi/com_mediatek_fmradio.png and b/app/src/main/res/drawable-hdpi/com_mediatek_fmradio.png differ diff --git a/app/src/main/res/drawable-hdpi/family_space.png b/app/src/main/res/drawable-hdpi/family_space.png new file mode 100644 index 0000000..4f47639 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/family_space.png differ diff --git a/app/src/main/res/drawable-hdpi/home_health_code.png b/app/src/main/res/drawable-hdpi/home_health_code.png index df8ba69..4f47639 100644 Binary files a/app/src/main/res/drawable-hdpi/home_health_code.png and b/app/src/main/res/drawable-hdpi/home_health_code.png differ diff --git a/app/src/main/res/drawable-hdpi/mask.png b/app/src/main/res/drawable-hdpi/mask.png new file mode 100644 index 0000000..1facd94 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/mask.png differ diff --git a/app/src/main/res/layout-land/fragment_control.xml b/app/src/main/res/layout-land/fragment_control.xml index cf5e2c4..60e2364 100644 --- a/app/src/main/res/layout-land/fragment_control.xml +++ b/app/src/main/res/layout-land/fragment_control.xml @@ -426,9 +426,9 @@ android:layout_marginStart="@dimen/dp_16" android:maxLines="1" android:singleLine="true" - android:text="100%" + android:text="亮度" android:textColor="@color/white" - android:textSize="@dimen/sp_24" + android:textSize="@dimen/sp_20" app:layout_constraintBottom_toBottomOf="@+id/iv_brightness" app:layout_constraintStart_toEndOf="@+id/iv_brightness" app:layout_constraintTop_toTopOf="@+id/iv_brightness" /> diff --git a/app/src/main/res/layout-port/fragment_control.xml b/app/src/main/res/layout-port/fragment_control.xml index b062c12..20e9c42 100644 --- a/app/src/main/res/layout-port/fragment_control.xml +++ b/app/src/main/res/layout-port/fragment_control.xml @@ -312,9 +312,9 @@ android:layout_marginStart="@dimen/dp_16" android:maxLines="1" android:singleLine="true" - android:text="100%" + android:text="亮度" android:textColor="@color/white" - android:textSize="@dimen/sp_24" + android:textSize="@dimen/sp_20" app:layout_constraintBottom_toBottomOf="@+id/iv_brightness" app:layout_constraintStart_toEndOf="@+id/iv_brightness" app:layout_constraintTop_toTopOf="@+id/iv_brightness" /> diff --git a/app/src/main/res/layout/dialog_privacy_policy.xml b/app/src/main/res/layout/dialog_privacy_policy.xml index b262df4..bfa90c4 100644 --- a/app/src/main/res/layout/dialog_privacy_policy.xml +++ b/app/src/main/res/layout/dialog_privacy_policy.xml @@ -5,8 +5,8 @@ android:layout_height="match_parent"> @@ -28,10 +29,10 @@ + android:textSize="@dimen/sp_10" /> @@ -61,8 +62,9 @@ android:layout_weight="1" android:gravity="center" android:text="暂不使用" + android:textStyle="bold" android:textColor="@color/black" - android:textSize="@dimen/sp_14" + android:textSize="@dimen/sp_12" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tv_content" /> @@ -74,8 +76,9 @@ android:layout_weight="1" android:gravity="center" android:text="同意" + android:textStyle="bold" android:textColor="@color/notice_blue" - android:textSize="@dimen/sp_14" + android:textSize="@dimen/sp_12" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="@+id/tv_content" app:layout_constraintTop_toBottomOf="@+id/tv_content" /> diff --git a/app/src/main/res/raw/user_agreement.txt b/app/src/main/res/raw/user_agreement.txt index f42831d..87b9dbb 100644 --- a/app/src/main/res/raw/user_agreement.txt +++ b/app/src/main/res/raw/user_agreement.txt @@ -35,7 +35,11 @@ SOS守护:紧急状态下老人点击平板电脑的SOS呼叫功能,自动 应用远程安装和删除:远程发送指令安装应用和删除应用。 -应用版本默认更新:软件会自动更新,修复运行的bug。 +应用版本默认更新:软件会自动更新,提供新的服务和修复运行的bug。 + +应用默认下载问题:用户在小程序推送软件可以在平板端直接下载安装。 + +设备激活后的问题:用户激活关怀系统后,会自动下载浏览器、应用商城、服务商城等为平板提供服务的应用。。 应用配套软件的下载:关怀守护系统功能要实现需要默认下载配套应用。